lout-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Many error msgs for all user-documents in lout 3.38 (MS Vista + Cygw


From: KHMan
Subject: Re: Many error msgs for all user-documents in lout 3.38 (MS Vista + Cygwin)
Date: Tue, 27 Jan 2009 03:05:24 +0800
User-agent: Thunderbird 2.0.0.16 (Windows/20080708)

Jeff Kingston wrote:
Could you explain what the issue is?  What is wrong, or ambiguous,
about %f in a scanf format?  It seems totally normal and unambiguous.

It appears that in Cygwin, the sscanf works in a slightly different manner. Possibly, it's a Cygwin newlib bug -- but I'll study the newlib sources etc first before risking being flamed on the Cygwin list...

When Lout sees "0i":

(1) On gnulibc, since 'i' is not a valid %f character, only '0' is converted because conversion stops before the 'i'. "man scanf" gives this interpretation. (2) On newlib (Cygwin), sscanf grabs in a greedy manner, I think, and sees '0i', and conversion fails.

Behaviour (2) seems likely wrong versus the man page. I'll look at the newlib sources and the POSIX specifications later...

On Mon, Jan 26, 2009 at 09:17:01PM +0800, KHMan wrote:
I'm not really sure if newlib's sscanf is really at fault, because its behaviour sounds wrong if we use "man scanf", but sounds right if we use the ISO C draft standard n1256. So it seems all very ambiguous...

-  if( sscanf((char *) str, "%f", &num) != 1 )
+  if( sscanf((char *) str, "%31[0-9.]", &conv) != 1)

--
Cheers,
Kein-Hong Man (esq.)
Kuala Lumpur, Malaysia


reply via email to

[Prev in Thread] Current Thread [Next in Thread]