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

Diff for /src/usr.bin/ftp/domacro.c between version 1.21 and 1.22

version 1.21, 2019/05/16 12:44:17 version 1.22, 2019/11/18 04:37:35
Line 70 
Line 70 
                 }                  }
                 cp2 = line;                  cp2 = line;
                 while (*cp1 != '\0') {                  while (*cp1 != '\0') {
                       switch(*cp1) {                          switch(*cp1) {
                             case '\\':                          case '\\':
                                  *cp2++ = *++cp1;                                  *cp2++ = *++cp1;
                                  break;                                  break;
                             case '$':                          case '$':
                                  if (isdigit((unsigned char)*(cp1 + 1))) {                                  if (isdigit((unsigned char)*(cp1 + 1))) {
                                     j = 0;                                          j = 0;
                                     while (isdigit((unsigned char)*++cp1)) {                                          while (isdigit((unsigned char)*++cp1)) {
                                           j = 10*j +  *cp1 - '0';                                                  j = 10*j +  *cp1 - '0';
                                     }                                          }
                                     cp1--;                                          cp1--;
                                     if (argc - 2 >= j) {                                          if (argc - 2 >= j) {
                                         (void)strlcpy(cp2, argv[j+1],                                                  (void)strlcpy(cp2, argv[j+1],
                                             sizeof(line) - (cp2 - line));                                                      sizeof(line) - (cp2 - line));
                                         cp2 += strlen(argv[j+1]);                                                  cp2 += strlen(argv[j+1]);
                                     }                                          }
                                     break;                                          break;
                                  }                                  }
                                  if (*(cp1+1) == 'i') {                                  if (*(cp1+1) == 'i') {
                                         loopflg = 1;                                          loopflg = 1;
                                         cp1++;                                          cp1++;
                                         if (count < argc) {                                          if (count < argc) {
                                            (void)strlcpy(cp2, argv[count],                                                  (void)strlcpy(cp2, argv[count],
                                                sizeof(line) - (cp2 - line));                                                      sizeof(line) - (cp2 - line));
                                            cp2 += strlen(argv[count]);                                                  cp2 += strlen(argv[count]);
                                         }                                          }
                                         break;                                          break;
                                 }                                  }
                                 /* FALLTHROUGH */                                  /* FALLTHROUGH */
                             default:                          default:
                                 *cp2++ = *cp1;                                  *cp2++ = *cp1;
                                 break;                                  break;
                       }                          }
                       if (*cp1 != '\0') {                          if (*cp1 != '\0') {
                          cp1++;                                  cp1++;
                       }                          }
                 }                  }
                 *cp2 = '\0';                  *cp2 = '\0';
                 makeargv();                  makeargv();
Line 113 
Line 113 
                 if (c == (struct cmd *)-1) {                  if (c == (struct cmd *)-1) {
                         fputs("?Ambiguous command.\n", ttyout);                          fputs("?Ambiguous command.\n", ttyout);
                         code = -1;                          code = -1;
                 }                  } else if (c == 0) {
                 else if (c == 0) {  
                         fputs("?Invalid command.\n", ttyout);                          fputs("?Invalid command.\n", ttyout);
                         code = -1;                          code = -1;
                 }                  } else if (c->c_conn && !connected) {
                 else if (c->c_conn && !connected) {  
                         fputs("Not connected.\n", ttyout);                          fputs("Not connected.\n", ttyout);
                         code = -1;                          code = -1;
                 }                  } else {
                 else {  
                         if (verbose) {                          if (verbose) {
                                 fputs(line, ttyout);                                  fputs(line, ttyout);
                                 fputc('\n', ttyout);                                  fputc('\n', ttyout);

Legend:
Removed from v.1.21  
changed lines
  Added in v.1.22