[snprintf-announce] Portable snprintf version 2.2 available - a %c bug fixed

Mark Martinec Mark.Martinec@ijs.si
Wed, 18 Oct 2000 19:04:24 +0200


A new release 2.2 of portable snprintf routine is now available.
Most importantly it fixes a (possible) problem with %c conversion.

Available at:  http://www.ijs.si/software/snprintf/


A new mailing list snprintf-announce@ijs.si is also now available.
This is a very low-traffic mailing list where announcements about
new versions will be posted, as well as warnings about threatening bugs
if discovered. The posting is restricted to snprintf developer(s). 

To subscribe to (or unsubscribe from) the mailing list please visit
the list server's web page http://mailman.ijs.si/listinfo/snprintf-announce 

You can also subscribe to the list by mailing the command SUBSCRIBE
either in the subject or in the message body to the address
snprintf-announce-request@ijs.si . You will be asked for confirmation
before subscription will be effective. 

The list of members is only accessible to the list administrator,
so there is no need for concern about automatic e-mail address gatherers. 



Here are the release notes for version 2.2:

  + BUG FIX: the %c conversion used a temporary variable that was
    no longer in scope when referenced, possibly causing
    incorrect resulting character;
  + BUG FIX: make precision and minimal field width unsigned to
    handle huge values (2^31 <= n < 2^32) correctly; also be more
    careful in the use of signed/unsigned/size_t internal
    variables -- probably more careful than many vendor
    implementations, but there may still be a case where huge
    values of str_m, precision or minimal field could cause
    incorrect behaviour;
  + use separate variables for signed/unsigned arguments, and for
    short/int, long, and long long argument lengths to avoid
    possible incompatibilities on certain computer architectures.
    Also use separate variable arg_sign to hold sign of a numeric
    argument, to make code more transparent;
  + some fiddling with zero padding and "0x" to make it Linux
    compatible;
  + systematically use macros fast_memcpy and fast_memset instead
    of case-by-case hand optimization; determine some breakeven
    string lengths for different architectures;
  + terminology change: format -> conversion specifier, C9x ->
    ISO/IEC 9899:1999 ("ISO C99"), alternative form -> alternate
    form, data type modifier -> length modifier;
  + several comments rephrased and new ones added;
  + make compiler not complain about 'credits' defined but not used;

Regards
   Mark Martinec

-- 
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  !!  Mark Martinec (system manager)     tel  +386 1 4773-575 !!
  !!  J. Stefan Institute, Jamova 39     fax  +386 1 2519-385 !!
  !!  SI-1000 Ljubljana, Slovenia        mark.martinec@ijs.si !!
  !!!!!!!!!!!!!!!!!!!!!!!!!! http://www.ijs.si/people/mark/ !!!!