version 1.24, 2020/06/10 21:03:56 |
version 1.25, 2020/06/10 21:04:40 |
|
|
rlengthloc = setsymtab("RLENGTH", "", 0.0, NUM, symtab); |
rlengthloc = setsymtab("RLENGTH", "", 0.0, NUM, symtab); |
RLENGTH = &rlengthloc->fval; |
RLENGTH = &rlengthloc->fval; |
symtabloc = setsymtab("SYMTAB", "", 0.0, ARR, symtab); |
symtabloc = setsymtab("SYMTAB", "", 0.0, ARR, symtab); |
|
free(symtabloc->sval); |
symtabloc->sval = (char *) symtab; |
symtabloc->sval = (char *) symtab; |
} |
} |
|
|
|
|
ARGC = &setsymtab("ARGC", "", (Awkfloat) ac, NUM, symtab)->fval; |
ARGC = &setsymtab("ARGC", "", (Awkfloat) ac, NUM, symtab)->fval; |
cp = setsymtab("ARGV", "", 0.0, ARR, symtab); |
cp = setsymtab("ARGV", "", 0.0, ARR, symtab); |
ARGVtab = makesymtab(NSYMTAB); /* could be (int) ARGC as well */ |
ARGVtab = makesymtab(NSYMTAB); /* could be (int) ARGC as well */ |
|
free(cp->sval); |
cp->sval = (char *) ARGVtab; |
cp->sval = (char *) ARGVtab; |
for (i = 0; i < ac; i++) { |
for (i = 0; i < ac; i++) { |
snprintf(temp, sizeof temp, "%d", i); |
snprintf(temp, sizeof temp, "%d", i); |
|
|
|
|
cp = setsymtab("ENVIRON", "", 0.0, ARR, symtab); |
cp = setsymtab("ENVIRON", "", 0.0, ARR, symtab); |
ENVtab = makesymtab(NSYMTAB); |
ENVtab = makesymtab(NSYMTAB); |
|
free(cp->sval); |
cp->sval = (char *) ENVtab; |
cp->sval = (char *) ENVtab; |
for ( ; *envp; envp++) { |
for ( ; *envp; envp++) { |
if ((p = strchr(*envp, '=')) == NULL) |
if ((p = strchr(*envp, '=')) == NULL) |
|
|
if (p == NULL) |
if (p == NULL) |
FATAL("out of space concatenating %s and %s", sa, sb); |
FATAL("out of space concatenating %s and %s", sa, sb); |
snprintf(p, l, "%s%s", sa, sb); |
snprintf(p, l, "%s%s", sa, sb); |
c = setsymtab(p, p, 0.0, CON|STR|DONTFREE, symtab); |
char *newbuf = malloc(strlen(p) + 2); |
|
if (newbuf == NULL) |
|
FATAL("out of space concatenating %s and %s", sa, sb); |
|
// See string() in lex.c; a string "xx" is stored in the symbol |
|
// table as "xx ". |
|
sprintf(newbuf, "%s ", p); |
|
c = setsymtab(newbuf, p, 0.0, CON|STR|DONTFREE, symtab); |
free(p); |
free(p); |
|
free(newbuf); |
return c; |
return c; |
} |
} |
|
|