Re: *printf: support of the 0 flag with inf and NaN

2007-05-18 Thread Bruno Haible
There was a bug in this patch from 2007-05-06: when padding was requested and the snprintf result did not fit into the initially allocated buffer, the function could return a truncated result instead of calling snprintf once again with a larger buffer. This fixes it. 2007-05-18 Bruno Haible <[EM

Re: *printf: support for 'long double' number output

2007-05-18 Thread Bruno Haible
Daniel Jacobowitz wrote: > When is it O(N*2) - only with high precision? O(N^2) where N = max(abs(exponent of x), precision). When N = 3000, and the elementary operation is a division instruction which takes a few nanoseconds, the result is in the range of several milliseconds. Bruno

Re: *printf: support for 'long double' number output

2007-05-18 Thread Daniel Jacobowitz
On Fri, May 18, 2007 at 10:23:45PM +0200, Bruno Haible wrote: > > Shouldn't you at least write in the documentation that the conversion > > may be unusably slow? I know I wouldn't use this in GDB with user > > input if it might take all year; that's hardly more useful. > > I wouldn't say that is

Re: *printf: support for 'long double' number output

2007-05-18 Thread Bruno Haible
Daniel Jacobowitz wrote: > Gosh, that's a huge amount of scary code You are welcome to proofread it. I would be delighted. > (actually from GMP?) Only the naming of the base type comes from GMP. The 'divide' function is taken from CLN. The other functions are straightforward coding. > Shouldn't

Re: *printf: support for 'long double' number output

2007-05-18 Thread Daniel Jacobowitz
On Fri, May 18, 2007 at 08:24:53PM +0200, Bruno Haible wrote: > On mingw and BeOS, the native *printf functions don't support 'long double' > arguments. This works around it. > > Conversion of floating-point numbers to decimal requires intermediate numbers > arbitrary length, either multiprecision

Re: *printf: support for 'long long' on mingw

2007-05-18 Thread Daniel Jacobowitz
On Fri, May 18, 2007 at 07:34:55PM +0200, Bruno Haible wrote: > On mingw, the native printf does not support directives like "%lld". This > works around it. > > 2007-05-18 Bruno Haible <[EMAIL PROTECTED]> > > * lib/vasnprintf.m4 (VASNPRINTF) [WIN32]: Use %I64d instead of %lld > for

*printf: fix for BeOS

2007-05-18 Thread Bruno Haible
The snprintf function on BeOS produces no output if the specified size is >= 0x300. Since gnulib's sprintf.c passed a size of 0x7fff, it fully hits this bug. The workaround is to use the native sprintf instead. 2007-05-18 Bruno Haible <[EMAIL PROTECTED]> * lib/vasnprintf.c (US

*printf: support for 'long long' on mingw

2007-05-18 Thread Bruno Haible
On mingw, the native printf does not support directives like "%lld". This works around it. 2007-05-18 Bruno Haible <[EMAIL PROTECTED]> * lib/vasnprintf.m4 (VASNPRINTF) [WIN32]: Use %I64d instead of %lld for printing 64-bit integers. Needed for mingw. *** lib/vasnprintf.c6 M

update the printf-frexpl module

2007-05-18 Thread Bruno Haible
On AIX 5.1, frexpl is in libc (not libm) and doesn't work (see frexpl.m4). The printf-frexpl module needs to know that it cannot use this function. 2007-05-18 Bruno Haible <[EMAIL PROTECTED]> * m4/printf-frexpl.m4 (gl_FUNC_PRINTF_FREXPL): Invoke gl_FUNC_FREXPL_WORKS. *

new module frexpl-nolibm

2007-05-18 Thread Bruno Haible
For purposes of *printf correction, one needs an implementation of frexpl() without access to libm. This new module does it. 2007-05-18 Bruno Haible <[EMAIL PROTECTED]> * modules/frexpl-nolibm: New file. * m4/frexpl.m4 (gl_FUNC_FREXPL_NO_LIBM): New macro. ==

Re: Glibc-2.6 (was Re: Error from coreutils CVS version)

2007-05-18 Thread James Youngman
On 5/18/07, Greg Schafer <[EMAIL PROTECTED]> wrote: Alexander Kahl wrote: > gcc -std=gnu99 -I. -march=pentium4 -O2 -pipe -fomit-frame-pointer -s -fgnu89-inline -c utimecmp.c > In file included from utimecmp.c:33: > utimens.h:2: error: conflicting types for 'futimens' > /tools/include/sys/

Re: Error from coreutils CVS version

2007-05-18 Thread Jim Meyering
Alexander Kahl <[EMAIL PROTECTED]> wrote: > gcc -std=gnu99 -I. -march=pentium4 -O2 -pipe -fomit-frame-pointer -s > -fgnu89-inline -c utimecmp.c > In file included from utimecmp.c:33: > utimens.h:2: error: conflicting types for 'futimens' > /tools/include/sys/stat.h:370: error: previous decla