[BACK]Return to strfmon.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / lib / libc / stdlib

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/lib/libc/stdlib/strfmon.c between version 1.7 and 1.8

version 1.7, 2009/01/30 23:46:03 version 1.8, 2011/08/14 09:07:15
Line 505  __format_grouped_double(double value, in
Line 505  __format_grouped_double(double value, in
         char            *rslt;          char            *rslt;
         char            *avalue;          char            *avalue;
         int             avalue_size;          int             avalue_size;
         char            fmt[32];  
   
         size_t          bufsize;          size_t          bufsize;
         char            *bufend;          char            *bufend;
Line 546  __format_grouped_double(double value, in
Line 545  __format_grouped_double(double value, in
                 left_prec += get_groups(left_prec, grouping);                  left_prec += get_groups(left_prec, grouping);
   
         /* convert to string */          /* convert to string */
         snprintf(fmt, sizeof(fmt), "%%%d.%df", left_prec + right_prec + 1,          avalue_size = asprintf(&avalue, "%*.*f", left_prec + right_prec + 1,
             right_prec);              right_prec, value);
         avalue_size = asprintf(&avalue, fmt, value);  
         if (avalue_size < 0)          if (avalue_size < 0)
                 return (NULL);                  return (NULL);
   
         /* make sure that we've enough space for result string */          /* make sure that we've enough space for result string */
         bufsize = strlen(avalue)*2+1;          bufsize = avalue_size * 2 + 1;
         rslt = malloc(bufsize);          rslt = malloc(bufsize);
         if (rslt == NULL) {          if (rslt == NULL) {
                 free(avalue);                  free(avalue);
Line 577  __format_grouped_double(double value, in
Line 575  __format_grouped_double(double value, in
                 avalue_size -= (right_prec + 1);                  avalue_size -= (right_prec + 1);
         }          }
   
           /* XXX: Why not use %' instead? */
         if ((*flags & NEED_GROUPING) &&          if ((*flags & NEED_GROUPING) &&
             thousands_sep != '\0' &&    /* XXX: need investigation */              thousands_sep != '\0' &&    /* XXX: need investigation */
             *grouping != CHAR_MAX &&              *grouping != CHAR_MAX &&

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.8

CVSweb <webmaster@jp.NetBSD.org>