~ari-tczew/ubuntu/dapper/fetchmail/fix-CVE-2008-2711

« back to all changes in this revision

Viewing changes to trio/CHANGES

  • Committer: Bazaar Package Importer
  • Author(s): Martin Pitt
  • Date: 2006-02-07 12:12:13 UTC
  • mfrom: (1.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20060207121213-onurwfrzdlzlzxnt
Tags: 6.3.2-2ubuntu1
* Resynchronise with Debian. This brings the new upstream version to dapper
  since upstream support for 6.2 was dropped.
* Drop debian/patches/CVE-2005-4348.dpatch, upstream now.

Show diffs side-by-side

added added

removed removed

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