Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 7 Apr 2003 11:03:02 +1000
From:      Tim Robbins <tjr@FreeBSD.ORG>
To:        src-committers@freebsd.org, cvs-src@freebsd.org, cvs-all@freebsd.org
Subject:   Re: cvs commit: src/lib/libc/stdio floatio.h vfprintf.c
Message-ID:  <20030407110302.A72014@dilbert.robbins.dropbear.id.au>
In-Reply-To: <20030407004537.GA50755@HAL9000.homeunix.com>; from das@freebsd.org on Sun, Apr 06, 2003 at 05:45:37PM -0700
References:  <200304052211.h35MBglG027473@repoman.freebsd.org> <20030406174843.A44495@dilbert.robbins.dropbear.id.au> <20030407004537.GA50755@HAL9000.homeunix.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Apr 06, 2003 at 05:45:37PM -0700, David Schultz wrote:

> On Sun, Apr 06, 2003, Tim Robbins wrote:
> > On Sat, Apr 05, 2003 at 02:11:42PM -0800, David Schultz wrote:
> > 
> > > das         2003/04/05 14:11:42 PST
> > > 
> > >   FreeBSD src repository
> > > 
> > >   Modified files:
> > >     lib/libc/stdio       floatio.h vfprintf.c 
> > >   Log:
> > >   Rework the floating point code in printf().  Significant changes:
> > >   
> > >   - We used to round long double arguments to double.  Now we print
> > >     them properly.
> > >   
> > >   - Bugs involving '%F', corner cases of '#' and 'g' format
> > >     specifiers, and the '.*' precision specifier have been
> > >     fixed.
> > >   
> > >   - Added support for the "'" specifier to print thousands' grouping
> > >     characters in a locale-dependent manner.
> > >   
> > >   - Implement the __vfprintf() side of hexadecimal floating point
> > >     support.  All that is still needed is a routine to convert the
> > >     mantissa to hex digits one nibble at a time in the style of ultoa().
> > 
> > I think there is a bug here. I've attached a small test program that mimics
> > the behaviour of top's "CPU states" display. Here are the results on 4.x:
> [...]
> > 	for (i = 0; i < 150; i += 10)
> > 		printf(i >= 100 ? "CPU states: %4.0f%%\n" :
> > 		    "CPU states: %4.1f%% user\n", (double)i);
> 
> Oops!  I have just checked in a fix for the problem.  It was a
> little bit tricky due to the handling of thousands' grouping.
> Thanks for pointing this out.

Thanks. As soon as the p4 depot syncs with CVS again, I'll merge vfprintf.c
1.55 into vfwprintf.c and commit it. I had already merged 1.54, but decided
not to commit it until it was fixed.


Tim



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030407110302.A72014>