=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/awk/run.c,v retrieving revision 1.13 retrieving revision 1.14 diff -c -r1.13 -r1.14 *** src/usr.bin/awk/run.c 1997/08/25 16:17:14 1.13 --- src/usr.bin/awk/run.c 1999/04/18 17:06:31 1.14 *************** *** 1,4 **** ! /* $OpenBSD: run.c,v 1.13 1997/08/25 16:17:14 kstailey Exp $ */ /**************************************************************** Copyright (C) Lucent Technologies 1997 All Rights Reserved --- 1,4 ---- ! /* $OpenBSD: run.c,v 1.14 1999/04/18 17:06:31 millert Exp $ */ /**************************************************************** Copyright (C) Lucent Technologies 1997 All Rights Reserved *************** *** 283,288 **** --- 283,289 ---- if (i >= ncall) { freesymtab(t); t->csub = CTEMP; + tempfree(t); } else { oargs[i]->tval = t->tval; oargs[i]->tval &= ~(STR|NUM|DONTFREE); *************** *** 338,344 **** case EXIT: if (a[0] != NULL) { y = execute(a[0]); ! errorflag = getfval(y); tempfree(y); } longjmp(env, 1); --- 339,345 ---- case EXIT: if (a[0] != NULL) { y = execute(a[0]); ! errorflag = (int) getfval(y); tempfree(y); } longjmp(env, 1); *************** *** 405,411 **** tempfree(x); } else { /* getline sval)) { fldtab[0]->fval = atof(fldtab[0]->sval); fldtab[0]->tval |= NUM; } --- 406,412 ---- tempfree(x); } else { /* getline sval)) { fldtab[0]->fval = atof(fldtab[0]->sval); fldtab[0]->tval |= NUM; } *************** *** 472,478 **** return(z); } ! Cell *adelete(Node **a, int n) /* a[0] is symtab, a[1] is list of subscripts */ { Cell *x, *y; Node *np; --- 473,479 ---- return(z); } ! Cell *awkdelete(Node **a, int n) /* a[0] is symtab, a[1] is list of subscripts */ { Cell *x, *y; Node *np; *************** *** 697,704 **** char *s; x = execute(a[0]); ! m = getfval(x); ! if (m == 0 && !isnumber(s = getsval(x))) /* suspicion! */ ERROR "illegal field $(%s), name \"%s\"", s, x->nval FATAL; /* BUG: can x->nval ever be null??? */ tempfree(x); --- 698,705 ---- char *s; x = execute(a[0]); ! m = (int) getfval(x); ! if (m == 0 && !is_number(s = getsval(x))) /* suspicion! */ ERROR "illegal field $(%s), name \"%s\"", s, x->nval FATAL; /* BUG: can x->nval ever be null??? */ tempfree(x); *************** *** 730,743 **** setsval(x, ""); return(x); } ! m = getfval(y); if (m <= 0) m = 1; else if (m > k) m = k; tempfree(y); if (a[2] != 0) { ! n = getfval(z); tempfree(z); } else n = k - 1; --- 731,744 ---- setsval(x, ""); return(x); } ! m = (int) getfval(y); if (m <= 0) m = 1; else if (m > k) m = k; tempfree(y); if (a[2] != 0) { ! n = (int) getfval(z); tempfree(z); } else n = k - 1; *************** *** 1223,1229 **** sprintf(num, "%d", n); temp = *patbeg; *patbeg = '\0'; ! if (isnumber(s)) setsymtab(num, s, atof(s), STR|NUM, (Array *) ap->sval); else setsymtab(num, s, 0.0, STR, (Array *) ap->sval); --- 1224,1230 ---- sprintf(num, "%d", n); temp = *patbeg; *patbeg = '\0'; ! if (is_number(s)) setsymtab(num, s, atof(s), STR|NUM, (Array *) ap->sval); else setsymtab(num, s, 0.0, STR, (Array *) ap->sval); *************** *** 1240,1246 **** } n++; sprintf(num, "%d", n); ! if (isnumber(s)) setsymtab(num, s, atof(s), STR|NUM, (Array *) ap->sval); else setsymtab(num, s, 0.0, STR, (Array *) ap->sval); --- 1241,1247 ---- } n++; sprintf(num, "%d", n); ! if (is_number(s)) setsymtab(num, s, atof(s), STR|NUM, (Array *) ap->sval); else setsymtab(num, s, 0.0, STR, (Array *) ap->sval); *************** *** 1260,1266 **** temp = *s; *s = '\0'; sprintf(num, "%d", n); ! if (isnumber(t)) setsymtab(num, t, atof(t), STR|NUM, (Array *) ap->sval); else setsymtab(num, t, 0.0, STR, (Array *) ap->sval); --- 1261,1267 ---- temp = *s; *s = '\0'; sprintf(num, "%d", n); ! if (is_number(t)) setsymtab(num, t, atof(t), STR|NUM, (Array *) ap->sval); else setsymtab(num, t, 0.0, STR, (Array *) ap->sval); *************** *** 1289,1295 **** temp = *s; *s = '\0'; sprintf(num, "%d", n); ! if (isnumber(t)) setsymtab(num, t, atof(t), STR|NUM, (Array *) ap->sval); else setsymtab(num, t, 0.0, STR, (Array *) ap->sval); --- 1290,1296 ---- temp = *s; *s = '\0'; sprintf(num, "%d", n); ! if (is_number(t)) setsymtab(num, t, atof(t), STR|NUM, (Array *) ap->sval); else setsymtab(num, t, 0.0, STR, (Array *) ap->sval); *************** *** 1482,1488 **** u = time((time_t *)0); else u = getfval(x); ! srand((int) u); u = (int) u; break; case FTOUPPER: case FTOLOWER: --- 1483,1489 ---- u = time((time_t *)0); else u = getfval(x); ! srand((unsigned int) u); break; case FTOUPPER: case FTOLOWER: