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

Diff for /src/usr.bin/awk/tran.c between version 1.3 and 1.4

version 1.3, 1997/08/25 16:17:14 version 1.4, 1999/04/18 17:06:31
Line 108 
Line 108 
         cp->sval = (char *) ARGVtab;          cp->sval = (char *) ARGVtab;
         for (i = 0; i < ac; i++) {          for (i = 0; i < ac; i++) {
                 sprintf(temp, "%d", i);                  sprintf(temp, "%d", i);
                 if (isnumber(*av))                  if (is_number(*av))
                         setsymtab(temp, *av, atof(*av), STR|NUM, ARGVtab);                          setsymtab(temp, *av, atof(*av), STR|NUM, ARGVtab);
                 else                  else
                         setsymtab(temp, *av, 0.0, STR, ARGVtab);                          setsymtab(temp, *av, 0.0, STR, ARGVtab);
Line 128 
Line 128 
                 if ((p = strchr(*envp, '=')) == NULL)                  if ((p = strchr(*envp, '=')) == NULL)
                         continue;                          continue;
                 *p++ = 0;       /* split into two strings at = */                  *p++ = 0;       /* split into two strings at = */
                 if (isnumber(p))                  if (is_number(p))
                         setsymtab(*envp, p, atof(p), STR|NUM, ENVtab);                          setsymtab(*envp, p, atof(p), STR|NUM, ENVtab);
                 else                  else
                         setsymtab(*envp, p, 0.0, STR, ENVtab);                          setsymtab(*envp, p, 0.0, STR, ENVtab);
Line 288 
Line 288 
                 donefld = 0;    /* mark $1... invalid */                  donefld = 0;    /* mark $1... invalid */
                 donerec = 1;                  donerec = 1;
         }          }
           if (freeable(vp))
                   xfree(vp->sval); /* free any previous string */
         vp->tval &= ~STR;       /* mark string invalid */          vp->tval &= ~STR;       /* mark string invalid */
         vp->tval |= NUM;        /* mark number ok */          vp->tval |= NUM;        /* mark number ok */
            dprintf( ("setfval %p: %s = %g, t=%o\n", vp, vp->nval, f, vp->tval) );             dprintf( ("setfval %p: %s = %g, t=%o\n", vp, vp->nval, f, vp->tval) );
Line 342 
Line 344 
                 recbld();                  recbld();
         if (!isnum(vp)) {       /* not a number */          if (!isnum(vp)) {       /* not a number */
                 vp->fval = atof(vp->sval);      /* best guess */                  vp->fval = atof(vp->sval);      /* best guess */
                 if (isnumber(vp->sval) && !(vp->tval&CON))                  if (is_number(vp->sval) && !(vp->tval&CON))
                         vp->tval |= NUM;        /* make NUM only sparingly */                          vp->tval |= NUM;        /* make NUM only sparingly */
         }          }
            dprintf( ("getfval %p: %s = %g, t=%o\n", vp, vp->nval, vp->fval, vp->tval) );             dprintf( ("getfval %p: %s = %g, t=%o\n", vp, vp->nval, vp->fval, vp->tval) );

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4