]> Pileus Git - ~andy/fetchmail/blob - trio/CHANGES
Remove comment that confuses splint.
[~andy/fetchmail] / trio / CHANGES
1 CHANGES -- trio
2
3
4 The changes listed without a name attributed to them were most likely done by
5 Bjorn Reese and/or Daniel Stenberg.
6
7 Version 1.14 - 2010/01/26
8 -------------------------
9 * David Byron
10   Added trio_xstring_append_max.
11
12 * Fixed compilation problem on Cygwin due to lack of long double math
13   (reported by Matthias Andree).
14
15 * David Boyce
16   Added #undef of standard stdio function names before assigning trio functions
17   to them.
18
19 * Matthias Andree
20   Upgraded configure.in to use new macros instead of obsoleted macros.
21
22 * Matthias Andree
23   Added VPATH to Makefile.in
24
25 * Tom Honermann
26   Fixed problem with subnormal numbers which caused an infinite loop outputting
27   leading spaces.
28
29 * Adam McLaurin
30   Improved parsing performance by avoiding memset() and memcpy() on character
31   arrays.
32
33 * Gideon Smeding
34   Fixed %u scanning of signed numbers.
35
36 * Gideon Smeding
37   Fixed group scanning for non-matching input.
38
39 * Fixed missing undo of look-ahead reading for scanf functions. This does only
40   work for the scanf* and fscanf* functions, not dscanf* and cscanf* functions
41   (reported by Gideon Smeding).
42
43 * If the format string is empty, scanf does not attempt to read any input.
44
45 * Ralf Junker
46   Fixed Borland compilation for user-defined specifiers.
47
48
49 Version 1.13 - 2008/11/09
50 -------------------------
51 * Ives Aerts
52   Added the $<format|skip> format for user-defined specifiers, which is
53   compatible with compiler warnings about mismatches between specifiers and
54   arguments.
55
56 * Added TRIO_DEPRECATED flag (reported by David Boyce)
57
58 * Fixed rounding adjustment for long double (reported as bug item #2136686).
59
60 * Added Makefile dependency for test target (reported as bug item #2136636).
61
62 * David Boyce
63   Fixed long long support for MSVC.
64
65 * Fixed potential problem with read after buffer end for non-zero terminated
66   strings (reported as bug item #1828465).
67
68 * Andreas Stricker
69   Added WinCE support.
70
71 * Fixed number of significant digits for %g.
72
73
74 Version 1.12 - 2006/10/22
75 -------------------------
76 * Fixed scanning of floats (reported by Bernd Ahlers).
77
78 * Fixed configure.in for GCC on Tru64 and MIPSpro on IRIX (reported by Andreas
79   Maus).
80
81 * Olli Savia
82   Added support for LynxOS.
83
84
85 Version 1.11 - 2006/04/08
86 -------------------------
87 * Mark Pickelmann
88   Fixed trio_unregister. If the first element was removed, the remaining
89   list would be removed as well.
90
91 * Fixed unintended formatting of %e that would result in non-zero numbers
92   starting with zero (reported by Mark Pickelmann and Gisli Ottarsson).
93
94 * Fixed compilation with Sun Workshop 6 (reported by Matthias Andree).
95
96 * Fixed accuracy for denormalized numbers (bug item #758327).
97
98 * Glen Davidson
99   Fixed scanning of floating-point numbers without a decimal-point (bug item
100   #1370427).
101
102 * David Byron
103   Fixed more compiler warnings.
104
105 * Fixed compilation of trio_to_long_double and TRIO_FEATURE_FLOAT (reported by
106   David Byron).
107
108 * Fixed precision of large floating-point numbers (bug item #1314524).
109
110 * Karl Bochert
111   Fixed trio_fpclassify_and_signbit to only restore the floating-point
112   precision.
113
114 * Fixed detection of need for ieee option on FreeBSD/Alpha.
115
116 * Added TRIO_SNPRINTF_ONLY compilation.
117
118 * Fixed trio_to_double by not using strtod() on Tru64/DECC because it does not
119   support hex-floats.
120
121 * Fixed crash on 64 bits machines related to a previous workaround in version
122   1.9 for uninitialized va_list (reported by Nicolai Tufar, suggestion by
123   Douglas Gwyn).
124
125 * Patrick Jessee
126   Fixed width calculation for %g.
127
128 * Added macros for internal features.
129
130 * Jon Foster
131   Added macros for conditional compilation of many features. Documented all
132   the features.
133
134 * Karl Bochert
135   Fixed problem with Borland C++, which changes the floating-point precision
136   for certain math functions (log10() and _fpclass()).
137
138 * Karl Bochert
139   Fixed compilation warnings on Borland C++.
140
141 * Removed any occurrence of #elif because Borland C++ reports wrong line
142   numbers when they are present (reported by Karl Bochert).
143
144 * David Byron
145   Added trio_asprintfv.
146
147 * Brian Chapman
148   Fixed Mac OS X compilation.
149
150 * David Byron
151   Fixed several compiler warnings.
152
153 * Fixed printing of out-of-range arguments for %hhd and %hd. These arguments
154   can be out of range because of default integer promotion.
155
156 * Bob Friesenhahn
157   Fixed installation of header files.
158
159 * Joe Orton
160   Added SHELL to Makefile.in to avoid problems with CShells.
161
162 * Shaun Tancheff
163   Fixed regresion tests for MSVC.
164
165 * Craig Berry
166   Fixed the VMS C99 workaround.
167
168
169 Version 1.10 - 2003/03/06
170 -------------------------
171 * Rearranged some include files to accommodate large file support (reported by
172   Albert Chin-A-Young).
173
174 * Added support for SunOS 4.1.x lack of strerror, tolower, and toupper
175   (reported by Peter McCluskey).
176
177 * Fixed pedantic compilation with TRIO_MINIMAL.
178
179 * Jose Kahan
180   Moved <limits.h> to avoid redefinition problems.
181
182 * Fixed hex-float exponents (reported by Matthias Clasen).
183
184 * Fixed handling of negative width and precision via paramters (reported by
185   Jacob Navia).
186
187 * Nigel Hall
188   Fixed TRIO_VA_START for VMS.
189
190 * Rune Enggaard Lausen
191   Fixed compilation for Borland C++ Builder.
192
193 * Fixed precision of hex-float numbers (reported by James Antill).
194
195 * Fixed plus sign only to be added for signed numbers.
196
197 * Fixed printing of integers with value and precision of zero (reported by
198   James Antill).
199
200 * Fixed %#.o to only print one zero if the value is zero (reported by James
201   Antill).
202
203 * Rewrote check for IEEE compilation option to remove dependency on additional
204   scripts.
205
206 * Mehdi Lavasani
207   Makefile install target fixed to work with older install programs.
208
209 * Collapsed the DECC, MSVC, HP-UX, and AIX code for trio_fpclassify_and_sign()
210   with further preprocessing.
211
212
213 Version 1.9 - 2002/10/13
214 ------------------------
215 * Fixed trio_fpclassify_and_signbit on AIX 3.2
216
217 * Added configure check for -ieee/-mieee compilation option for Alpha machines.
218
219 * Craig Berry
220   Fixed compilation on VMS.
221
222 * Albert Chin-A-Young
223   Fixed incorrect conditional expression in trio_isinf.
224
225 * Fixed the warnings about uninitialized va_list in the printfv and scanfv
226   family without the use of compiler specific pragmas (suggested by Ian
227   Pilcher).
228
229 * Fixed space flag for floating-point numbers (reported by Ian Main).
230
231
232 Version 1.8 - 2002/07/10
233 ------------------------
234 * Fixed infinite loop in multibyte handling (reported by Gisli Ottarsson).
235
236 * Added the customizable cprintf/cscanf family which enables to user to specify
237   input and output stream functions (suggested by Florian Schulze).
238
239 * Fixed trio_isinf by removing the HP-UX workaround, and instead making sure
240   that the C99 macro will adhere to the trio return values (reported by Luke
241   Dunstan).
242
243 * Alexander Lukyanov
244   Fixed boundary case for scanning and EOF.
245
246 * Jacob Navia
247   Enabled the L modifier for formatting.
248
249 * Added TRIO_MINIMAL to build trio without the string functions.
250
251 * Added the R modifier to print rounded floating-point numbers.
252
253 * Added trio_to_long_double and long double scanning (the L modifier).
254
255 * Added trio_locale_decimal_point, trio_locale_thousand_separator,
256   trio_locale_grouping to overwrite locale settings.
257
258 * Rewrote TrioWriteDouble to avoid temporary buffers and thus the danger of
259   buffer overflows (for instance %.5000f).
260
261 * Improved floating-point formatting accuracy.
262
263 * Fixed formatting of non-decimal exponents.
264
265 * Fixed thousand separator checking.
266
267 * Fixed %f scanning to get a float and %lf to get a double.
268
269 * Fixed WIN32 compilation (reported by Emmanuel Mogenet)
270
271 * Fixed regression test cases to exclude disabled features.
272
273
274 Version 1.7 - 2002/05/07
275 ------------------------
276 * Fixed trio_to_double to handle hex-floats properly.
277
278 * Fixed printing of %a-format to be like %e, not like %g.
279
280 * Fixed floating-point printing of values beyond the machine accuracy.
281
282 * Fixed %f for printing with large precision.
283
284 * Fixed the usage of C99 nan(), which caused a crash on OSF/1 (reported by
285   Georg Bolz)
286
287 * Joe Orton
288   Fixed %p on 64-bit platforms.
289
290 * Made trio compile with K&R compilers.
291
292 * Emmanuel Mogenet
293   Fixed bug in trio_asprintf.
294
295 * Emmanuel Mogenet
296   Various WIN32 fixes.
297
298 * Joe Orton
299   Fixed trio_isinf() on HP-UX, and added test cases.
300
301 * Joe Orton
302   Fixed non-portable use of $^ in Makefile.
303
304 * Joe Orton
305   Added autoconf.
306
307 * Alexander Lukyanov
308   Fixed a number of bugs in the scanning of EOF and the count specifier.
309
310 * Richard Jinks
311   Added trio_nzero
312
313 * Fixed incorrect handling of return code from TrioReadChar (reported by
314   Henrik Löf)
315
316 * Fixed parsing of character class expressions.
317
318 * Fixed trio_to_double which did not work with long fractions.
319
320 * Fixed %f for printing of large numbers.
321
322 * Fixed %#s to handle whitespaces as non-printable characters.
323
324 * Added trio_isfinite, trio_signbit, and trio_fpclassify.
325
326 * Added new test cases.
327
328
329 Version 1.6 - 2002/01/13
330 ------------------------
331 * Added dynamic string functions.
332
333 * Rewrote and extended documentation in JavaDoc (using Doxygen).
334
335 * Moved and renamed strio functions to triostr.
336
337 * Robert Collins
338   Added definition for Cygwin.
339
340 * Markus Henke
341   Added long double workaround for the HP C/iX compiler.
342
343 * Marc Verwerft
344   Improved error handling for dynamically allocated strings.
345
346 * John Fotheringham
347   Made trionan compile on OpenVMS.
348
349 * Added 'd' and 'D' as exponent letters when using TRIO_MICROSOFT.
350
351 * Fixed uninitial memory read for the parameter modifiers.
352
353
354 Version 1.5 - 2001/09/08
355 ------------------------
356 * Merged with libxml changes.
357
358 * Moved NaN and Inf handling to separate file to enable reuse in other
359   projects.
360
361 * Igor Zlatkovic
362   Fixed TrioGenerateNan for MSVC.
363
364 * Fixed lots of preprocessor macros and internal data structure names.
365
366
367 Version 1.4 - 2001/06/03
368 ------------------------
369 * Added hex-float (%a and %A) for scanning.
370
371 * Added wide character arguments (%ls, %ws, %S, %lc, %wc, and %C) for both
372   printf and scanf.
373
374 * Added mutex callbacks for user-specified specifiers to enable applications to
375   add thread-safety. These are registered with trio_register, where the
376   namespace is set to either ":enter" to lock a mutex, or ":leave" to unlock a
377   mutex.
378
379 * Added equivalence class expressions for scanning. For example, %[[=a=]] scans
380   for all letters in the same equivalence class as the letter 'a' as defined
381   by the locale.
382
383 * Changed character class expressions for scanning. The expressions must now
384   be embedded withing an extra set of brackets, e.g. %[[:alpha:]]. This was
385   done to adhere to the syntax of UNIX98 regular expressions.
386
387 * Added the possibility to specify standard support (TRIO_C99 etc.) as compiler
388   options.
389
390 * Fixed conversion of hex-float in StrToDouble.
391
392 * Fixed formatting of hex-float numbers.
393
394 * Stan Boehm
395   Fixed crash on QNX, which happend because some buffers on the stack were too
396   big.
397
398 * Fixed default precision for %f and %g (reported by Jose Ortiz)
399
400 * Howard Kapustein
401   Added the I8, I16, I32, and I64 modifiers.
402
403 * Jose Ortiz
404   Fixed rounding problem for %e.
405
406 * Jose Ortiz
407   Fixed various problems with the xlC and Sun C++ compilers.
408
409
410 Version 1.3 - 2001/05/16
411 ------------------------
412 * trio's treatment of the field width when the %e code was used was not
413   correct (reported by Gisli Ottarsson). It turns out the fraction part should
414   be zero-padded by default and the exponent part should be zero-prefixed if
415   it is only one digit. At least that's how the GNU and Sun libc's work. The
416   trio floating point output looks identical to them now.
417
418 * Fixed group scanning with modifiers.
419
420 * Fixed compilation for 64-bit Digital Unix.
421
422 * Igor Zlatkovic
423   Fixed compilation of dprintf, which uses read/write, for MSVC.
424
425 * Fixed various compilation problems on Digital Unix (mainly associated with
426   va_list).
427
428
429 Version 1.2 - 2001/04/11
430 ------------------------
431 * Added autoconf integration. If compiled with HAVE_CONFIG_H the following
432   happens. Firstly, <config.h> is included. Secondly, trio will only be
433   compiled if WITH_TRIO is defined herein. Thirdly, if TRIO_REPLACE_STDIO is
434   defined, only stdio functions that have not been detected by autoconf, i.e.
435   those not defined by HAVE_PRINTF or similar, will be replaced by trio
436   functions (suggested by Daniel Veillard).
437
438 * Fixed '%m.nf' output. Previously trio did not treat the width properly
439   in all cases (reported by Gisli Ottarsson).
440
441 * Added explicit promotion for the scanfv family.
442
443 * Fixed more C++ compilation warnings.
444
445
446 Version 1.1 - 2001/02/25
447 ------------------------
448 * Added explicit promotion for the printfv familiy. A float must be specified
449   by %hf.
450
451 * Fixed positionals for printfv (reported by Gisli Ottarsson).
452
453 * Fixed an integer to pointer conversion problem on the SGI MIPS C compiler
454   (reported by Gisli Ottarsson).
455
456 * Fixed ANSI C++ warnings (type casting, and namespace is a reserved keyword).
457
458 * Added \n to all examples in the documentation to prevent confusion.
459
460 * Fixed StrSubstringMax
461
462
463 Version 1.0 - 2000/12/10
464 ------------------------
465 * Bumped Version number.
466
467
468 Version 0.25 - 2000/12/09
469 -------------------------
470 * Wrote more documentation.
471
472 * Improved NaN support and added NaN to regression test.
473
474 * Fixed C99 support.
475
476 * Added missing getter/setter functions.
477
478
479 Version 0.24 - 2000/12/02
480 -------------------------
481 * Added callback functionality for the user-defined specifier (<>). All
482   the necessary functions are defined in triop.h header file. See the
483   documentation for trio_register for further detail.
484
485 * Wrote initial documentation on the callback functionality.
486
487 * Added the printfv and scanfv family of functions, which takes a pointer
488   array rather than variadic arguments. Each pointer in the array must point
489   to the associated data (requested by Bruce Korb).
490
491 * As indicated in version 0.21 the extension modifiers (<>) have now been
492   completely removed.
493
494 * Added skipping of thousand-separators in floating-point number scanning.
495
496
497 Version 0.23 - 2000/10/21
498 -------------------------
499 * Added width to scanning of floating-point numbers.
500
501 * Wrote more documentation on trio_printf.
502
503 * Fixed problem with trailing zeroes after decimal-point.
504
505
506 Version 0.22 - 2000/08/06
507 -------------------------
508 * Added LC_CTYPE locale dependent character class expressions to scan lists.
509   Included are [:alnum:], [:alpha:], [:cntrl:], [:digit:], [:graph:],
510   [:lower:], [:print:], [:punct:], [:space:], [:upper:], [:xdigit:]
511
512 * Added C escapes to alternative string formatting and scanning.
513
514 * Added StrSubstringMax.
515
516 * Wrote a little more documentation.
517
518 * Fixed scanf return values.
519
520 * Fixed a sign error for non-ascii characters.
521
522
523 Version 0.21 - 2000/07/19
524 -------------------------
525 * Converted the documentation to TeX. With latex2man the documentation can
526   automatically be converted into man pages.
527
528 * Added trio_scanf, trio_vscanf, trio_fscanf, and trio_vfscanf.
529
530 * Added trio_dprintf, trio_vdprintf, trio_dscanf, and trio_vdscanf. These
531   functions can be used to write and read directly to pipes and sockets (the
532   assume blocking sockets). Stdio buffering is surpassed, so the functions are
533   async-safe. However, reading from stdin (STDIN_FILENO) or writing to stdout
534   (STDOUT_FILENO) reintroduces the buffering.
535
536 * Paul Janzen
537   Added trio_asprintf and trio_vasprintf, which are compatible with the GNU
538   and BSD interfaces.
539
540 * Added scanlist ranges for group scanning (%[]).
541
542 * Added width for scanning (missing for floating-point numbers though).
543
544 * Added variable size modifier (&) to handle system defined types of unknown
545   size. This modifier makes certain assumptions about the integer sizes, which
546   may not be valid on any machine. Consequently, the modifier will remain
547   undocumented, as it may be removed later.
548
549 * Added \777 and \xFF to alternative string scanning (%#s)
550
551 * Added the TRIO_REPLACE_STDIO check in the header.
552
553 * Improved performance of the multibyte character parsing.
554
555 * Fixed positionals (%n$) which had stopped working.
556
557 * Fixed hh and ll modifiers to allow exactly two letters and no more.
558
559 * Fixed ANSI C++ warnings. Also fixed the compiler warning about casting
560   between integer and pointer (this has been annoying me for ages). 
561
562 * Fixed snprintf and vsnprintf with zero buffer size.
563
564 * Fixed NAN problems (reported by Keith Briggs).
565
566 * Fixed parsing of multibyte characters. The format string was not correctly
567   advanced in case of a multibyte character.
568
569 * Renamed many of the internal functions to have more consistant names.
570
571 * Removed the <quote=c> and <fill=c> modifiers. They are not really worth
572   including. The other <> modifiers may disappear as well.
573
574
575 Version 0.20 - 2000/06/05
576 -------------------------
577 * Added intmax_t and ptrdiff_t support.
578
579 * Added support for LC_NUMERIC grouping.
580
581 * Added double-dot notation for the conversion base. The style is now
582   %width.precision.base, where any argument can be a number, an asterix
583   indicating a parameter, or be omitted entirely. For example, %*..2i is
584   to specify binary numbers without precision, and with width as a parameter
585   on the va_list.
586
587 * Added sticky modifier (!), which makes subsequent specifiers of the same
588   type reuse the current modifiers. Inspired by a suggestion from Gary Porter.
589
590 * Added group scanning (%[]). Scanlist ranges and multibyte sequences are not
591   supported yet.
592
593 * Added count scanning (%n).
594
595 * Changed the number scanning to accept thousand separators and any base.
596
597 * Fixed positional for parameters. It is possible to write something like
598   %3$*1$.*2$d (which happens to be the same as %*.*d).
599
600 * Fixed precision of integers.
601
602 * Fixed parameter flags. Before trio could only handle one parameter flag per
603   specifier, although two (three with double-dot base) were possible.
604
605 * Fixed isinf() for those platforms where it is unimplemented.
606
607
608 Version 0.18 - 2000/05/27
609 -------------------------
610 * Rewrote the entire floating-point formatting function (Danny Dulai had
611   reported several errors and even supplied some patches, which unfortunately
612   were lost due to the refactoring).
613
614 * Removed the use of strlen() in the declaration of a stack array. This
615   caused problems on some compilers (besides it isn't really ANSI C compliant
616   anyways). Using some arbitrarily chosen maximum value; should examine if
617   some standard defines an upper limit on the length of decimal-point and
618   thousands-separator (sizeof(wchar_t) perhaps?)
619
620 * Changed the parsing of the format string to be multibyte aware.
621
622
623 Version 0.17 - 2000/05/19
624 -------------------------
625 * Added INF, -INF, and NAN for floating-point numbers.
626
627 * Fixed %#.9g -- alternative with precision.
628
629 * Ken Gibson
630   Fixed printing of negative hex numbers
631
632 * Joerg (last name unknown)
633   Fixed convertion of non-ASCII characters
634
635
636 Version 0.16 - 1999/08/06
637 -------------------------
638 * Changed the constness of the second argument of StrFloat and StrDouble. The
639   lack of parameter overloading in C is the reason for the strange use of
640   constness in strtof and strtod.
641
642 * Cleaned up constness.
643
644
645 Version 0.15 - 1999/07/23
646 -------------------------
647 * Fixed the internal representation of numbers from signed to unsigned. Signed
648   numbers posed a problem for large unsigned numbers (reported by Tero)
649
650 * Fixed a tiny bug in trio_vsprintfcat
651
652 * Changed the meaning of the max argument of StrAppendMax to be consistant
653   with StrFormatAppendMax. Now it is the maximal size of the entire target
654   buffer, not just the appended size. This makes it easier to avoid buffer
655   overflows (requested by Tero)
656
657
658 Version 0.14 - 1999/05/16
659 -------------------------
660 * Added size_t support (just waiting for a C99 compliant compiler to add
661   ptrdiff_t and intmax_t)
662
663 * Rewrote TrioOutStreamDouble so it does not use the libc sprintf to emulate
664   floating-point anylonger.
665
666 * Fixed width, precision, and adjustment for numbers and doubles.
667
668
669 Version 0.13 - 1999/05/06
670 -------------------------
671 * Fixed zero padding for %d. Now %d will only zero pad if explicitly requested
672   to do so with the 0 flag (reported by Tero).
673
674 * Fixed an incorrect while() condition in TrioGetString (reported by Tero).
675
676
677 Version 0.12 - 1999/04/19
678 -------------------------
679 * Fixed incorrect zero padding of pointers
680
681 * Added StrHash with STRIO_HASH_PLAIN
682
683 * Added StrFormatDateMax
684
685
686 Version 0.11 - 1999/03/25
687 -------------------------
688 * Made it compile under cygwin
689
690 * Fixed a bug were TrioPreprocess would return an error if no formatting chars
691   were found (reported by Tero).
692
693
694 Version - 1999/03/19
695 --------------------
696 * Added trio_strerror and TRIO_ERROR_NAME.
697
698 * Changed the error codes to be positive (as errno)
699
700 * Fixed two reads of uninitialized memory reported by Purify
701
702 * Added binary specifiers 'b' and 'B' (like SCO.) ThousandSeparator can be
703   used to separate nibbles (4 bit)
704
705 * Renamed all Internal* functions to Trio*, which seems like a better
706   namespace (even though it is of no practical interest because these
707   functions are not visible beyond the scope of this file.)
708
709
710 Version - 1999/03/12
711 --------------------
712 * Added hex-float format for StrToDouble
713
714 * Double references and gaps in the arguments are not allowed (for the %n$
715   format) and in both cases an error code is returned.
716
717 * Added StrToDouble (and StrToFloat)
718
719
720 Version - 1999/03/08
721 --------------------
722 * Added InStream and OutStream to the trio_T structure.
723
724 * Started work on TrioScan.
725
726 * Return values for errors changed. Two macros to unpack the error code has
727   been added to the header.
728
729 * Shortshort (hh) flag added.
730
731 * %#s also quotes the quote-char now.
732
733 * Removed the 'errorInFormat' boolean, which isn't used anymore after the
734   functions bail out with an error instead.
735
736
737 Version - 1999/03/04
738 --------------------
739 * More than MAX_PARAMETERS parametes will now cause the TrioPreprocess()
740   function to return error.
741
742 * Unknown flags and/or specifiers cause errors too.
743
744 * Added trio_snprintfcat and trio_vsnprintfcat and the defined name
745   StrFormatAppendMax. They append a formatted string to the end of a string.
746
747 * Define MAX_PARAMETERS to 128 at all times instead of using NL_ARGMAX when
748   that exists.
749
750 * Added platform fixes for Amiga as suggested by Tero Jänkä <tesaja@utu.fi>
751
752
753 Version - 1999/01/31
754 --------------------
755 * vaprintf did add a zero byte even when it had failed.
756
757 * Cleaned up the code for locale handling and thousand separator
758
759 * Added trio_aprintf() and trio_vaprintf(). They return an allocated string.
760
761 * Added thousands separator for numbers
762
763 * Added floating point support for *printf
764
765
766 Version - 1998/10/20
767 --------------------
768 * StrMatchCase() called StrMatch() instead of itself recursively
769
770 * Rewrote the implementation of *printf and *scanf and put all the code in
771   this file. Extended qualifiers and qualifiers from other standards were
772   added.
773
774 * Added StrSpanFunction, StrToLong, and StrToUnsignedLong
775
776
777 Version - 1998/05/23
778 --------------------
779 * Made the StrEqual* functions resistant to NULL pointers
780
781 * Turns out strdup() is no standard at all, and some platforms (I seem to
782   recall HP-UX) has problems with it. Made our own StrDuplicate() instead.
783
784 * Added StrFormat() and StrFormatMax() to serve as sprintf() and snprintf()
785   respectively.