[BACK]Return to cmds.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / tip

Diff for /src/usr.bin/tip/Attic/cmds.c between version 1.39 and 1.40

version 1.39, 2010/07/01 20:30:05 version 1.40, 2010/07/01 21:28:01
Line 89 
Line 89 
                 unlink(copyname);                  unlink(copyname);
                 return;                  return;
         }          }
         transfer(buf, sfd, value(EOFREAD));          transfer(buf, sfd, vgetstr(EOFREAD));
 }  }
   
 /*  /*
Line 136 
Line 136 
         sig_t f;          sig_t f;
         char r;          char r;
   
         if (number(value(FRAMESIZE)) > BUFSIZ || number(value(FRAMESIZE)) < 1) {          if (vgetnum(FRAMESIZE) > BUFSIZ || vgetnum(FRAMESIZE) < 1) {
                 printf("framesize must be >= 1 and <= %d\r\n", BUFSIZ);                  printf("framesize must be >= 1 and <= %d\r\n", BUFSIZ);
                 close(fd);                  close(fd);
                 return;                  return;
Line 173 
Line 173 
                         continue;                          continue;
                 *p++ = c;                  *p++ = c;
   
                 if (c == '\n' && boolean(value(VERBOSE)))                  if (c == '\n' && vgetnum(VERBOSE))
                         printf("\r%d", ++ct);                          printf("\r%d", ++ct);
                 if ((cnt = (p-buffer)) == number(value(FRAMESIZE))) {                  if ((cnt = (p-buffer)) == vgetnum(FRAMESIZE)) {
                         if (write(fd, buffer, cnt) != cnt) {                          if (write(fd, buffer, cnt) != cnt) {
                                 printf("\r\nwrite error\r\n");                                  printf("\r\nwrite error\r\n");
                                 quit = 1;                                  quit = 1;
Line 187 
Line 187 
                 if (write(fd, buffer, cnt) != cnt)                  if (write(fd, buffer, cnt) != cnt)
                         printf("\r\nwrite error\r\n");                          printf("\r\nwrite error\r\n");
   
         if (boolean(value(VERBOSE)))          if (vgetnum(VERBOSE))
                 prtime(" lines transferred in ", time(0)-start);                  prtime(" lines transferred in ", time(0)-start);
         tcsetattr(0, TCSAFLUSH, &term);          tcsetattr(0, TCSAFLUSH, &term);
         write(tipout_fd, (char *)&ccc, 1);          write(tipout_fd, (char *)&ccc, 1);
Line 226 
Line 226 
                 } else {                  } else {
                         close(pdes[0]);                          close(pdes[0]);
                         signal(SIGPIPE, intcopy);                          signal(SIGPIPE, intcopy);
                         transfer(buf, pdes[1], value(EOFREAD));                          transfer(buf, pdes[1], vgetstr(EOFREAD));
                         signal(SIGPIPE, SIG_DFL);                          signal(SIGPIPE, SIG_DFL);
                         while ((p = wait(&status)) > 0 && p != cpid)                          while ((p = wait(&status)) > 0 && p != cpid)
                                 ;                                  ;
Line 281 
Line 281 
                 printf("%s: cannot open\r\n", fname);                  printf("%s: cannot open\r\n", fname);
                 return;                  return;
         }          }
         transmit(fp, value(EOFWRITE), NULL);          transmit(fp, vgetstr(EOFWRITE), NULL);
         if (!boolean(value(ECHOCHECK)))          if (!vgetnum(ECHOCHECK))
                 tcdrain(FD);                  tcdrain(FD);
 }  }
   
Line 306 
Line 306 
         if (command != NULL) {          if (command != NULL) {
                 for (pc = command; *pc; pc++)                  for (pc = command; *pc; pc++)
                         send(*pc);                          send(*pc);
                 if (boolean(value(ECHOCHECK)))                  if (vgetnum(ECHOCHECK))
                         read(FD, (char *)&c, 1);        /* trailing \n */                          read(FD, (char *)&c, 1);        /* trailing \n */
                 else {                  else {
                         tcdrain(FD);                          tcdrain(FD);
Line 324 
Line 324 
                                 goto out;                                  goto out;
                         if (c == EOF)                          if (c == EOF)
                                 goto out;                                  goto out;
                         if (c == 0177 && !boolean(value(RAWFTP)))                          if (c == 0177 && !vgetnum(RAWFTP))
                                 continue;                                  continue;
                         lastc = c;                          lastc = c;
                         if (c < 040) {                          if (c < 040) {
                                 if (c == '\n') {                                  if (c == '\n') {
                                         if (!boolean(value(RAWFTP)))                                          if (!vgetnum(RAWFTP))
                                                 c = '\r';                                                  c = '\r';
                                 } else if (c == '\t') {                                  } else if (c == '\t') {
                                         if (!boolean(value(RAWFTP))) {                                          if (!vgetnum(RAWFTP)) {
                                                 if (boolean(value(TABEXPAND))) {                                                  if (vgetnum(TABEXPAND)) {
                                                         send(' ');                                                          send(' ');
                                                         while ((++ccount % 8) != 0)                                                          while ((++ccount % 8) != 0)
                                                                 send(' ');                                                                  send(' ');
Line 341 
Line 341 
                                                 }                                                  }
                                         }                                          }
                                 } else                                  } else
                                         if (!boolean(value(RAWFTP)))                                          if (!vgetnum(RAWFTP))
                                                 continue;                                                  continue;
                         }                          }
                         send(c);                          send(c);
                 } while (c != '\r' && !boolean(value(RAWFTP)));                  } while (c != '\r' && !vgetnum(RAWFTP));
                 if (boolean(value(VERBOSE)))                  if (vgetnum(VERBOSE))
                         printf("\r%d", ++lcount);                          printf("\r%d", ++lcount);
                 if (boolean(value(ECHOCHECK))) {                  if (vgetnum(ECHOCHECK)) {
                         timedout = 0;                          timedout = 0;
                         alarm((unsigned int)number(value(ETIMEOUT)));                          alarm((unsigned int)vgetnum(ETIMEOUT));
                         do {    /* wait for prompt */                          do {    /* wait for prompt */
                                 read(FD, (char *)&c, 1);                                  read(FD, (char *)&c, 1);
                                 if (timedout || stop) {                                  if (timedout || stop) {
Line 359 
Line 359 
                                         alarm(0);                                          alarm(0);
                                         goto out;                                          goto out;
                                 }                                  }
                         } while ((c&STRIP_PAR) != character(value(PROMPT)));                          } while ((c&STRIP_PAR) != vgetnum(PROMPT));
                         alarm(0);                          alarm(0);
                 }                  }
         }          }
 out:  out:
         if (lastc != '\n' && !boolean(value(RAWFTP)))          if (lastc != '\n' && !vgetnum(RAWFTP))
                 send('\r');                  send('\r');
         if (eofchars) {          if (eofchars) {
                 for (pc = eofchars; *pc; pc++)                  for (pc = eofchars; *pc; pc++)
Line 373 
Line 373 
         stop_t = time(0);          stop_t = time(0);
         fclose(fp);          fclose(fp);
         signal(SIGINT, f);          signal(SIGINT, f);
         if (boolean(value(VERBOSE))) {          if (vgetnum(VERBOSE)) {
                 if (boolean(value(RAWFTP)))                  if (vgetnum(RAWFTP))
                         prtime(" chars transferred in ", stop_t-start_t);                          prtime(" chars transferred in ", stop_t-start_t);
                 else                  else
                         prtime(" lines transferred in ", stop_t-start_t);                          prtime(" lines transferred in ", stop_t-start_t);
Line 409 
Line 409 
                 printf("%s: cannot open\r\n", copynamex);                  printf("%s: cannot open\r\n", copynamex);
                 return;                  return;
         }          }
         if (boolean(value(ECHOCHECK)))          if (vgetnum(ECHOCHECK))
                 (void)snprintf(line, sizeof(line), "cat>%s\r", argv[1]);                  (void)snprintf(line, sizeof(line), "cat>%s\r", argv[1]);
         else          else
                 (void)snprintf(line, sizeof(line),                  (void)snprintf(line, sizeof(line),
Line 429 
Line 429 
   
         cc = c;          cc = c;
         parwrite(FD, &cc, 1);          parwrite(FD, &cc, 1);
         if (number(value(CDELAY)) > 0 && c != '\r')          if (vgetnum(CDELAY) > 0 && c != '\r')
                 usleep(number(value(CDELAY)));                  usleep(vgetnum(CDELAY));
         if (!boolean(value(ECHOCHECK))) {          if (!vgetnum(ECHOCHECK)) {
                 if (number(value(LDELAY)) > 0 && c == '\r')                  if (vgetnum(LDELAY) > 0 && c == '\r')
                         usleep(number(value(LDELAY)));                          usleep(vgetnum(LDELAY));
                 return;                  return;
         }          }
 tryagain:  tryagain:
         timedout = 0;          timedout = 0;
         alarm((unsigned int)number(value(ETIMEOUT)));          alarm((unsigned int)vgetnum(ETIMEOUT));
         read(FD, &cc, 1);          read(FD, &cc, 1);
         alarm(0);          alarm(0);
         if (timedout) {          if (timedout) {
Line 504 
Line 504 
                 printf("can't find `%s'\r\n", buf);                  printf("can't find `%s'\r\n", buf);
                 exit(0);                  exit(0);
         }          }
         if (boolean(value(VERBOSE)))          if (vgetnum(VERBOSE))
                 prtime("away for ", time(0)-start);                  prtime("away for ", time(0)-start);
         write(tipout_fd, (char *)&ccc, 1);          write(tipout_fd, (char *)&ccc, 1);
         tcsetattr(0, TCSAFLUSH, &term);          tcsetattr(0, TCSAFLUSH, &term);
Line 554 
Line 554 
                 printf("can't find `%s'\r\n", buf);                  printf("can't find `%s'\r\n", buf);
                 exit(0);                  exit(0);
         }          }
         if (boolean(value(VERBOSE)))          if (vgetnum(VERBOSE))
                 prtime("away for ", time(0)-start);                  prtime("away for ", time(0)-start);
         write(tipout_fd, (char *)&ccc, 1);          write(tipout_fd, (char *)&ccc, 1);
         tcsetattr(0, TCSAFLUSH, &term);          tcsetattr(0, TCSAFLUSH, &term);
Line 587 
Line 587 
         } else {          } else {
                 signal(SIGQUIT, SIG_DFL);                  signal(SIGQUIT, SIG_DFL);
                 signal(SIGINT, SIG_DFL);                  signal(SIGINT, SIG_DFL);
                 if ((cp = strrchr(value(SHELL), '/')) == NULL)                  if ((cp = strrchr(vgetstr(SHELL), '/')) == NULL)
                         cp = value(SHELL);                          cp = vgetstr(SHELL);
                 else                  else
                         cp++;                          cp++;
                 execl(value(SHELL), cp, (char *)NULL);                  execl(vgetstr(SHELL), cp, (char *)NULL);
                 printf("\r\ncan't execl!\r\n");                  printf("\r\ncan't execl!\r\n");
                 exit(1);                  exit(1);
         }          }
Line 610 
Line 610 
          * enable TIPOUT side for dialogue           * enable TIPOUT side for dialogue
          */           */
         write(tipout_fd, "S", 1);          write(tipout_fd, "S", 1);
         if (boolean(value(SCRIPT)))          if (vgetnum(SCRIPT))
                 write(tipout_fd, value(RECORD), size(value(RECORD)));                  write(tipout_fd, vgetstr(RECORD), size(vgetstr(RECORD)));
         write(tipout_fd, "\n", 1);          write(tipout_fd, "\n", 1);
         /*          /*
          * wait for TIPOUT to finish           * wait for TIPOUT to finish
          */           */
         read(tipout_fd, &c, 1);          read(tipout_fd, &c, 1);
         if (c == 'n')          if (c == 'n')
                 printf("can't create %s\r\n", value(RECORD));                  printf("can't create %s\r\n", vgetstr(RECORD));
 }  }
   
 /*  /*
Line 635 
Line 635 
         if (prompt("[cd] ", dirname, sizeof(dirname))) {          if (prompt("[cd] ", dirname, sizeof(dirname))) {
                 if (stoprompt)                  if (stoprompt)
                         return;                          return;
                 cp = value(HOME);                  cp = vgetstr(HOME);
         }          }
         if (chdir(cp) < 0)          if (chdir(cp) < 0)
                 printf("%s: bad directory\r\n", cp);                  printf("%s: bad directory\r\n", cp);
Line 647 
Line 647 
 {  {
         signal(SIGTERM, SIG_IGN);          signal(SIGTERM, SIG_IGN);
         kill(tipout_pid, SIGTERM);          kill(tipout_pid, SIGTERM);
         logent(value(HOST), value(DEVICE), "call terminated");          logent(vgetstr(HOST), vgetstr(DEVICE), "call terminated");
         if (msg != NULL)          if (msg != NULL)
                 printf("\r\n%s", msg);                  printf("\r\n%s", msg);
         printf("\r\n[EOT]\r\n");          printf("\r\n[EOT]\r\n");
Line 662 
Line 662 
 {  {
         char *dismsg;          char *dismsg;
   
         if ((dismsg = value(DISCONNECT)) != NULL) {          if ((dismsg = vgetstr(DISCONNECT)) != NULL) {
                 write(FD, dismsg, strlen(dismsg));                  write(FD, dismsg, strlen(dismsg));
                 sleep(5);                  sleep(5);
         }          }
Line 683 
Line 683 
 {  {
         char *cp;          char *cp;
   
         if ((cp = strrchr(value(SHELL), '/')) == NULL)          if ((cp = strrchr(vgetstr(SHELL), '/')) == NULL)
                 cp = value(SHELL);                  cp = vgetstr(SHELL);
         else          else
                 cp++;                  cp++;
         execl(value(SHELL), cp, "-c", s, (char *)NULL);          execl(vgetstr(SHELL), cp, "-c", s, (char *)NULL);
 }  }
   
 static int  static int
Line 757 
Line 757 
         }          }
         if (vtable[RECORD].v_flags & V_CHANGED) {          if (vtable[RECORD].v_flags & V_CHANGED) {
                 vtable[RECORD].v_flags &= ~V_CHANGED;                  vtable[RECORD].v_flags &= ~V_CHANGED;
                 if (boolean(value(SCRIPT)))                  if (vgetnum(SCRIPT))
                         setscript();                          setscript();
         }          }
         if (vtable[TAND].v_flags & V_CHANGED) {          if (vtable[TAND].v_flags & V_CHANGED) {
                 vtable[TAND].v_flags &= ~V_CHANGED;                  vtable[TAND].v_flags &= ~V_CHANGED;
                 if (boolean(value(TAND)))                  if (vgetnum(TAND))
                         tandem("on");                          tandem("on");
                 else                  else
                         tandem("off");                          tandem("off");
         }          }
         if (vtable[LECHO].v_flags & V_CHANGED) {          if (vtable[LECHO].v_flags & V_CHANGED) {
                 vtable[LECHO].v_flags &= ~V_CHANGED;                  vtable[LECHO].v_flags &= ~V_CHANGED;
                 setboolean(value(HALFDUPLEX), boolean(value(LECHO)));                  vsetnum(HALFDUPLEX, vgetnum(LECHO));
         }          }
         if (vtable[PARITY].v_flags & V_CHANGED) {          if (vtable[PARITY].v_flags & V_CHANGED) {
                 vtable[PARITY].v_flags &= ~V_CHANGED;                  vtable[PARITY].v_flags &= ~V_CHANGED;
Line 777 
Line 777 
         }          }
         if (vtable[HARDWAREFLOW].v_flags & V_CHANGED) {          if (vtable[HARDWAREFLOW].v_flags & V_CHANGED) {
                 vtable[HARDWAREFLOW].v_flags &= ~V_CHANGED;                  vtable[HARDWAREFLOW].v_flags &= ~V_CHANGED;
                 if (boolean(value(HARDWAREFLOW)))                  if (vgetnum(HARDWAREFLOW))
                         hardwareflow("on");                          hardwareflow("on");
                 else                  else
                         hardwareflow("off");                          hardwareflow("off");
Line 809 
Line 809 
                         putchar('\n');                          putchar('\n');
                         break;                          break;
                 case V_NUMBER:                  case V_NUMBER:
                         printf(" %ld\r\n", number(p->v_value));                          printf(" %ld\r\n", (long)p->v_value);
                         break;                          break;
                 case V_BOOL:                  case V_BOOL:
                         printf(" %s\r\n",                          printf(" %s\r\n", p->v_value ? "true" : "false");
                             !boolean(p->v_value) ? "false" : "true");  
                         break;                          break;
                 case V_CHAR:                  case V_CHAR:
                         vis(buf, character(p->v_value), VIS_WHITE|VIS_OCTAL, 0);                          vis(buf, (int)(long)p->v_value, VIS_WHITE|VIS_OCTAL, 0);
                         printf(" %s\r\n", buf);                          printf(" %s\r\n", buf);
                         break;                          break;
                 }                  }
Line 865 
Line 864 
 void  void
 linedisc(char *option)  linedisc(char *option)
 {  {
         int ld = (int)value(LINEDISC);          int ld = (int)vgetnum(LINEDISC);
   
         ioctl(FD, TIOCSETD, &ld);          ioctl(FD, TIOCSETD, &ld);
 }  }
Line 916 
Line 915 
         }          }
         (void)snprintf(cmdbuf, sizeof(cmdbuf), "echo %s", name);          (void)snprintf(cmdbuf, sizeof(cmdbuf), "echo %s", name);
         if ((pid = vfork()) == 0) {          if ((pid = vfork()) == 0) {
                 Shell = value(SHELL);                  Shell = vgetstr(SHELL);
                 if (Shell == NULL)                  if (Shell == NULL)
                         Shell = _PATH_BSHELL;                          Shell = _PATH_BSHELL;
                 close(pivec[0]);                  close(pivec[0]);

Legend:
Removed from v.1.39  
changed lines
  Added in v.1.40