[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.32 and 1.33

version 1.32, 2020/12/09 20:00:11 version 1.33, 2020/12/18 21:36:24
Line 419 
Line 419 
         return(vp->fval);          return(vp->fval);
 }  }
   
   static char *get_inf_nan(double d)
   {
           if (isinf(d)) {
                   return (d < 0 ? "-inf" : "+inf");
           } else if (isnan(d)) {
                   return (signbit(d) != 0 ? "-nan" : "+nan");
           } else
                   return NULL;
   }
   
 static char *get_str_val(Cell *vp, char **fmt)        /* get string val of a Cell */  static char *get_str_val(Cell *vp, char **fmt)        /* get string val of a Cell */
 {  {
         int n;          int n;
         double dtemp;          double dtemp;
           char *p;
   
         if ((vp->tval & (NUM | STR)) == 0)          if ((vp->tval & (NUM | STR)) == 0)
                 funnyvar(vp, "read value of");                  funnyvar(vp, "read value of");
Line 459 
Line 470 
         { \          { \
                 if (freeable(vp)) \                  if (freeable(vp)) \
                         xfree(vp->sval); \                          xfree(vp->sval); \
                 if (modf(vp->fval, &dtemp) == 0)        /* it's integral */ \                  if ((p = get_inf_nan(vp->fval)) != NULL) \
                           n = (vp->sval = strdup(p)) ? 0 : -1; \
                   else if (modf(vp->fval, &dtemp) == 0)   /* it's integral */ \
                         n = asprintf(&vp->sval, "%.30g", vp->fval); \                          n = asprintf(&vp->sval, "%.30g", vp->fval); \
                 else \                  else \
                         n = asprintf(&vp->sval, *fmt, vp->fval); \                          n = asprintf(&vp->sval, *fmt, vp->fval); \

Legend:
Removed from v.1.32  
changed lines
  Added in v.1.33