X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-1.2 required=5.0 tests=AWL,BAYES_00,SARE_SUB_PCT_LETTER,SPF_PASS X-Spam-Check-By: sourceware.org Message-ID: <4980776B.50601@gmail.com> Date: Wed, 28 Jan 2009 23:19:07 +0800 From: KHMan User-Agent: Thunderbird 2.0.0.16 (Windows/20080708) MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Possible sscanf %f conversion glitch Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Hi all, Someone ran into a problem with sscanf %f conversion on the Lout list. It appeared that one specific case fails. I am running cygwin-1.5.25-15. Test cases: #include int main() { char *foo1 = "10i"; char *foo2 = "0i"; char *foo3 = "0.0i"; char *foo4 = "1.0i"; char *foo5 = "0.1i"; float f; printf("%d ", sscanf(foo1, "%f", &f)); printf("%f\n", f); printf("%d ", sscanf(foo2, "%f", &f)); printf("%f\n", f); printf("%d ", sscanf(foo3, "%f", &f)); printf("%f\n", f); printf("%d ", sscanf(foo4, "%f", &f)); printf("%f\n", f); printf("%d ", sscanf(foo5, "%f", &f)); printf("%f\n", f); } As the scanf man page specifies, 'i' is not supposed to be converted, only the number part is supposed to be recognized. On Cygwin: $ ./test 1 10.000000 0 10.000000 1 0.000000 1 1.000000 1 0.100000 On Linux (Ubuntu 8.04) and MinGW, the second case succeeds, the result being the same as the third case. I've done some googling, and haven't found anything related to this behaviour. -- Cheers, Kein-Hong Man (esq.) Kuala Lumpur, Malaysia -- 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/