• Home
  • Raw
  • Download

Lines Matching refs:vp

281 Awkfloat setfval(Cell *vp, Awkfloat f)	/* set float val of a Cell */  in setfval()  argument
285 if ((vp->tval & (NUM | STR)) == 0) in setfval()
286 funnyvar(vp, "assign to"); in setfval()
287 if (isfld(vp)) { in setfval()
289 fldno = atoi(vp->nval); in setfval()
293 } else if (isrec(vp)) { in setfval()
297 if (freeable(vp)) in setfval()
298 xfree(vp->sval); /* free any previous string */ in setfval()
299 vp->tval &= ~STR; /* mark string invalid */ in setfval()
300 vp->tval |= NUM; /* mark number ok */ in setfval()
301 dprintf( ("setfval %p: %s = %g, t=%o\n", vp, NN(vp->nval), f, vp->tval) ); in setfval()
302 return vp->fval = f; in setfval()
305 void funnyvar(Cell *vp, const char *rw) in funnyvar() argument
307 if (isarr(vp)) in funnyvar()
308 FATAL("can't %s %s; it's an array name.", rw, vp->nval); in funnyvar()
309 if (vp->tval & FCN) in funnyvar()
310 FATAL("can't %s %s; it's a function.", rw, vp->nval); in funnyvar()
312 vp, vp->nval, vp->sval, vp->fval, vp->tval); in funnyvar()
315 char *setsval(Cell *vp, const char *s) /* set string val of a Cell */ in setsval() argument
321 vp, NN(vp->nval), s, vp->tval, donerec, donefld) ); in setsval()
322 if ((vp->tval & (NUM | STR)) == 0) in setsval()
323 funnyvar(vp, "assign to"); in setsval()
324 if (isfld(vp)) { in setsval()
326 fldno = atoi(vp->nval); in setsval()
330 } else if (isrec(vp)) { in setsval()
335 if (freeable(vp)) in setsval()
336 xfree(vp->sval); in setsval()
337 vp->tval &= ~NUM; in setsval()
338 vp->tval |= STR; in setsval()
339 vp->tval &= ~DONTFREE; in setsval()
341 vp, NN(vp->nval), t,t, vp->tval, donerec, donefld) ); in setsval()
342 return(vp->sval = t); in setsval()
345 Awkfloat getfval(Cell *vp) /* get float val of a Cell */ in getfval() argument
347 if ((vp->tval & (NUM | STR)) == 0) in getfval()
348 funnyvar(vp, "read value of"); in getfval()
349 if (isfld(vp) && donefld == 0) in getfval()
351 else if (isrec(vp) && donerec == 0) in getfval()
353 if (!isnum(vp)) { /* not a number */ in getfval()
354 vp->fval = atof(vp->sval); /* best guess */ in getfval()
355 if (is_number(vp->sval) && !(vp->tval&CON)) in getfval()
356 vp->tval |= NUM; /* make NUM only sparingly */ in getfval()
358 dprintf( ("getfval %p: %s = %g, t=%o\n", vp, NN(vp->nval), vp->fval, vp->tval) ); in getfval()
359 return(vp->fval); in getfval()
362 static char *get_str_val(Cell *vp, char **fmt) /* get string val of a Cell */ in get_str_val() argument
367 if ((vp->tval & (NUM | STR)) == 0) in get_str_val()
368 funnyvar(vp, "read value of"); in get_str_val()
369 if (isfld(vp) && donefld == 0) in get_str_val()
371 else if (isrec(vp) && donerec == 0) in get_str_val()
373 if (isstr(vp) == 0) { in get_str_val()
374 if (freeable(vp)) in get_str_val()
375 xfree(vp->sval); in get_str_val()
376 if (modf(vp->fval, &dtemp) == 0) /* it's integral */ in get_str_val()
377 sprintf(s, "%.30g", vp->fval); in get_str_val()
379 sprintf(s, *fmt, vp->fval); in get_str_val()
380 vp->sval = tostring(s); in get_str_val()
381 vp->tval &= ~DONTFREE; in get_str_val()
382 vp->tval |= STR; in get_str_val()
384 …dprintf( ("getsval %p: %s = \"%s (%p)\", t=%o\n", vp, NN(vp->nval), vp->sval, vp->sval, vp->tval) … in get_str_val()
385 return(vp->sval); in get_str_val()
388 char *getsval(Cell *vp) /* get string val of a Cell */ in getsval() argument
390 return get_str_val(vp, CONVFMT); in getsval()
393 char *getpssval(Cell *vp) /* get string val of a Cell for print */ in getpssval() argument
395 return get_str_val(vp, OFMT); in getpssval()