[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.20 and 1.21

version 1.20, 2020/06/10 21:00:31 version 1.21, 2020/06/10 21:01:32
Line 56 
Line 56 
 Cell    *nrloc;         /* NR */  Cell    *nrloc;         /* NR */
 Cell    *nfloc;         /* NF */  Cell    *nfloc;         /* NF */
 Cell    *fnrloc;        /* FNR */  Cell    *fnrloc;        /* FNR */
   Cell    *ofsloc;        /* OFS */
   Cell    *orsloc;        /* ORS */
   Cell    *rsloc;         /* RS */
 Array   *ARGVtab;       /* symbol table containing ARGV[...] */  Array   *ARGVtab;       /* symbol table containing ARGV[...] */
 Array   *ENVtab;        /* symbol table containing ENVIRON[...] */  Array   *ENVtab;        /* symbol table containing ENVIRON[...] */
 Cell    *rstartloc;     /* RSTART */  Cell    *rstartloc;     /* RSTART */
 Cell    *rlengthloc;    /* RLENGTH */  Cell    *rlengthloc;    /* RLENGTH */
   Cell    *subseploc;     /* SUBSEP */
 Cell    *symtabloc;     /* SYMTAB */  Cell    *symtabloc;     /* SYMTAB */
   
 Cell    *nullloc;       /* a guaranteed empty cell */  Cell    *nullloc;       /* a guaranteed empty cell */
Line 89 
Line 93 
   
         fsloc = setsymtab("FS", " ", 0.0, STR|DONTFREE, symtab);          fsloc = setsymtab("FS", " ", 0.0, STR|DONTFREE, symtab);
         FS = &fsloc->sval;          FS = &fsloc->sval;
         RS = &setsymtab("RS", "\n", 0.0, STR|DONTFREE, symtab)->sval;          rsloc = setsymtab("RS", "\n", 0.0, STR|DONTFREE, symtab);
         OFS = &setsymtab("OFS", " ", 0.0, STR|DONTFREE, symtab)->sval;          RS = &rsloc->sval;
         ORS = &setsymtab("ORS", "\n", 0.0, STR|DONTFREE, symtab)->sval;          ofsloc = setsymtab("OFS", " ", 0.0, STR|DONTFREE, symtab);
           OFS = &ofsloc->sval;
           orsloc = setsymtab("ORS", "\n", 0.0, STR|DONTFREE, symtab);
           ORS = &orsloc->sval;
         OFMT = &setsymtab("OFMT", "%.6g", 0.0, STR|DONTFREE, symtab)->sval;          OFMT = &setsymtab("OFMT", "%.6g", 0.0, STR|DONTFREE, symtab)->sval;
         CONVFMT = &setsymtab("CONVFMT", "%.6g", 0.0, STR|DONTFREE, symtab)->sval;          CONVFMT = &setsymtab("CONVFMT", "%.6g", 0.0, STR|DONTFREE, symtab)->sval;
         FILENAME = &setsymtab("FILENAME", "", 0.0, STR|DONTFREE, symtab)->sval;          FILENAME = &setsymtab("FILENAME", "", 0.0, STR|DONTFREE, symtab)->sval;
Line 101 
Line 108 
         NR = &nrloc->fval;          NR = &nrloc->fval;
         fnrloc = setsymtab("FNR", "", 0.0, NUM, symtab);          fnrloc = setsymtab("FNR", "", 0.0, NUM, symtab);
         FNR = &fnrloc->fval;          FNR = &fnrloc->fval;
         SUBSEP = &setsymtab("SUBSEP", "\034", 0.0, STR|DONTFREE, symtab)->sval;          subseploc = setsymtab("SUBSEP", "\034", 0.0, STR|DONTFREE, symtab);
           SUBSEP = &subseploc->sval;
         rstartloc = setsymtab("RSTART", "", 0.0, NUM, symtab);          rstartloc = setsymtab("RSTART", "", 0.0, NUM, symtab);
         RSTART = &rstartloc->fval;          RSTART = &rstartloc->fval;
         rlengthloc = setsymtab("RLENGTH", "", 0.0, NUM, symtab);          rlengthloc = setsymtab("RLENGTH", "", 0.0, NUM, symtab);
Line 311 
Line 319 
         } else if (isrec(vp)) {          } else if (isrec(vp)) {
                 donefld = 0;    /* mark $1... invalid */                  donefld = 0;    /* mark $1... invalid */
                 donerec = 1;                  donerec = 1;
           } else if (vp == ofsloc) {
                   if (donerec == 0)
                           recbld();
         }          }
         if (freeable(vp))          if (freeable(vp))
                 xfree(vp->sval); /* free any previous string */                  xfree(vp->sval); /* free any previous string */
Line 352 
Line 363 
         } else if (isrec(vp)) {          } else if (isrec(vp)) {
                 donefld = 0;    /* mark $1... invalid */                  donefld = 0;    /* mark $1... invalid */
                 donerec = 1;                  donerec = 1;
         } else if (&vp->sval == OFS) {          } else if (vp == ofsloc) {
                 if (donerec == 0)                  if (donerec == 0)
                         recbld();                          recbld();
         }          }

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