version 1.3, 1997/08/25 16:17:14 |
version 1.4, 1999/04/18 17:06:31 |
|
|
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); |
|
|
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); |
|
|
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) ); |
|
|
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) ); |