bug-gnulib
[Top][All Lists]
Advanced

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

Re: Feature request: c-snprintf


From: John Darrington
Subject: Re: Feature request: c-snprintf
Date: Wed, 25 Mar 2009 18:03:29 +0900
User-agent: Mutt/1.5.18 (2008-05-17)

On Tue, Mar 24, 2009 at 11:18:12PM +0100, Bruno Haible wrote:
     
     So, for numbers to strings, there are four ways to proceed:
     
       1) Use the snprintf_l function available on MacOS X 10.5.
          Drawback: Unportable, and gnulib cannot provide an easy replacement 
for
          locale_t on other systems.
     
       2) Switch the locale to "C" temporarily for the duration of the 
conversion.
          Like done in gnulib/lib/c-strtod.c.
          Drawbacks: Will be slow on many systems. Not multi-thread safe.
     
       3) Split the format string into individual format directives, and for 
those
          that convert numbers, call the snprintf function for the current 
locale,
          change decimal_point_char() occurrences to '.', and remove grouping
          characters.
          Drawback: Some code to write yourself.
     
       4) Use code extracted from gnulib/lib/vasnprintf.c, modified to use '.'
          instead of decimal_point_char().
          Drawback: Code duplicatiion.
     
     Opinions?
     
I would have thought option 4 was the best way.  Code duplication
could be minimised by refactoring and wrapping the existing vasnprintf
in a function which calls decimal_point_char and the new one uses '.'
     
J'

-- 
PGP Public key ID: 1024D/2DE827B3 
fingerprint = 8797 A26D 0854 2EAB 0285  A290 8A67 719C 2DE8 27B3
See http://pgp.mit.edu or any PGP keyserver for public key.


Attachment: signature.asc
Description: Digital signature


reply via email to

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