----Original Message---- >From: Dave Korn >Sent: 04 April 2005 19:07 > ----Original Message---- >> From: Dave Korn >> Sent: 04 April 2005 18:51 > >> ----Original Message---- >>> From: Michael Hines >>> Sent: 04 April 2005 19:43 >> >>> The following program prints >>> i=1 x=0 >>> instead of >>> i=0 x=10 >>> when using the latest version of cygwin1.dll.
> No, hang on, on checking the newlib-l archive that seems to have been > something to do with a zero exponent. This is a separate bug: it accepts > the first one or two characters of 'nan' and says "ok, everything's still > good", and then because it's reached the end of the string it treats that > as a successful parse; it forgets to verify that it doesn't have an > outstanding half-formed NaN. I'll post a (provisional) patch shortly. Ok, this is only provisional, because as I point out I'm not quite sure about the corner case where we've refilled the buffer. It also has minor formatting issues (slightly long lines in the comment, IMO). However, it fixes the testcase, and I've got to go home for the evening, so here's my work-in-progress; comments welcomed. ---------------------------<snip!>--------------------------- [EMAIL PROTECTED] /test/sscanf> cat ss.c #include <stdio.h> int main() { int i; double x; x = 10; i = sscanf("n", "%lf", &x); printf("i=%d x=%g\n", i, x); i = sscanf("nan", "%lf", &x); printf("i=%d x=%g\n", i, x); return 0; } [EMAIL PROTECTED] /test/sscanf> gcc -O0 -g ss.c -o ss.exe [EMAIL PROTECTED] /test/sscanf> ./ss.exe i=0 x=10 i=1 x=NaN [EMAIL PROTECTED] /test/sscanf> ---------------------------<snip!>--------------------------- cheers, DaveK -- Can't think of a witty .sigline today....
newlib-sscanf-nan-bug-patch.diff
Description: Binary data
-- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/