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

Diff for /src/usr.bin/awk/run.c between version 1.9 and 1.10

version 1.9, 1997/01/25 03:24:52 version 1.10, 1997/01/29 18:33:56
Line 728 
Line 728 
         char fmt[RECSIZE];          char fmt[RECSIZE];
         char *p, *t, *os;          char *p, *t, *os;
         Cell *x;          Cell *x;
         int flag = 0, len = 0, n;          int flag = 0, n;
   
         os = s;          os = s;
         p = buf;          p = buf;
Line 736 
Line 736 
                 if (p - buf >= bufsize)                  if (p - buf >= bufsize)
                         return -1;                          return -1;
                 if (*s != '%') {                  if (*s != '%') {
                         len++;  
                         *p++ = *s++;                          *p++ = *s++;
                         continue;                          continue;
                 }                  }
                 if (*(s+1) == '%') {                  if (*(s+1) == '%') {
                         len++;  
                         *p++ = '%';                          *p++ = '%';
                         s += 2;                          s += 2;
                         continue;                          continue;
Line 791 
Line 789 
                 a = a->nnext;                  a = a->nnext;
                 switch (flag) {                  switch (flag) {
                 case 0: sprintf((char *)p, "%s", fmt);  /* unknown, so dump it too */                  case 0: sprintf((char *)p, "%s", fmt);  /* unknown, so dump it too */
                         len += strlen(p);  
                         p += strlen(p);                          p += strlen(p);
                         sprintf((char *)p, "%s", getsval(x));                          sprintf((char *)p, "%s", getsval(x));
                         break;                          break;
Line 810 
Line 807 
                         isnum(x) ?                          isnum(x) ?
                           (getfval(x) ?                            (getfval(x) ?
                             sprintf((char *)p, (char *)fmt, (int) getfval(x))                              sprintf((char *)p, (char *)fmt, (int) getfval(x))
                                       : (*p++ = '\0', len++))                                        : (*p++ = '\0'))
                                  : sprintf((char *)p, (char *)fmt, getsval(x)[0]);                                   : sprintf((char *)p, (char *)fmt, getsval(x)[0]);
                         break;                          break;
                 }                  }
                 tempfree(x);                  tempfree(x);
                 len += strlen(p);  
                 p += strlen(p);                  p += strlen(p);
                 s++;                  s++;
         }          }
         *p = '\0';          *p = '\0';
         for ( ; a; a = a->nnext)                /* evaluate any remaining args */          for ( ; a; a = a->nnext)                /* evaluate any remaining args */
                 execute(a);                  execute(a);
         return (len);          return ((int)(p - buf));
 }  }
   
 Cell *awksprintf(Node **a, int n)               /* sprintf(a[0]) */  Cell *awksprintf(Node **a, int n)               /* sprintf(a[0]) */

Legend:
Removed from v.1.9  
changed lines
  Added in v.1.10