aboutsummaryrefslogtreecommitdiffstats
path: root/getopt.c
Commit message (Expand)AuthorAgeFilesLines
* Some configuration cleanup.Eric S. Raymond1997-07-011-1/+1
* Cleanup for PL3.Eric S. Raymond1996-10-281-0/+1
* Initial revisionEric S. Raymond1996-10-281-0/+762
a id='n43' href='#n43'>43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785
CHANGES -- trio


The changes listed without a name attributed to them were most likely done by
Bjorn Reese and/or Daniel Stenberg.

Version 1.14 - 2010/01/26
-------------------------
* David Byron
  Added trio_xstring_append_max.

* Fixed compilation problem on Cygwin due to lack of long double math
  (reported by Matthias Andree).

* David Boyce
  Added #undef of standard stdio function names before assigning trio functions
  to them.

* Matthias Andree
  Upgraded configure.in to use new macros instead of obsoleted macros.

* Matthias Andree
  Added VPATH to Makefile.in

* Tom Honermann
  Fixed problem with subnormal numbers which caused an infinite loop outputting
  leading spaces.

* Adam McLaurin
  Improved parsing performance by avoiding memset() and memcpy() on character
  arrays.

* Gideon Smeding
  Fixed %u scanning of signed numbers.

* Gideon Smeding
  Fixed group scanning for non-matching input.

* Fixed missing undo of look-ahead reading for scanf functions. This does only
  work for the scanf* and fscanf* functions, not dscanf* and cscanf* functions
  (reported by Gideon Smeding).

* If the format string is empty, scanf does not attempt to read any input.

* Ralf Junker
  Fixed Borland compilation for user-defined specifiers.


Version 1.13 - 2008/11/09
-------------------------
* Ives Aerts
  Added the $<format|skip> format for user-defined specifiers, which is
  compatible with compiler warnings about mismatches between specifiers and
  arguments.

* Added TRIO_DEPRECATED flag (reported by David Boyce)

* Fixed rounding adjustment for long double (reported as bug item #2136686).

* Added Makefile dependency for test target (reported as bug item #2136636).

* David Boyce
  Fixed long long support for MSVC.

* Fixed potential problem with read after buffer end for non-zero terminated
  strings (reported as bug item #1828465).

* Andreas Stricker
  Added WinCE support.

* Fixed number of significant digits for %g.


Version 1.12 - 2006/10/22
-------------------------
* Fixed scanning of floats (reported by Bernd Ahlers).

* Fixed configure.in for GCC on Tru64 and MIPSpro on IRIX (reported by Andreas
  Maus).

* Olli Savia
  Added support for LynxOS.


Version 1.11 - 2006/04/08
-------------------------
* Mark Pickelmann
  Fixed trio_unregister. If the first element was removed, the remaining
  list would be removed as well.

* Fixed unintended formatting of %e that would result in non-zero numbers
  starting with zero (reported by Mark Pickelmann and Gisli Ottarsson).

* Fixed compilation with Sun Workshop 6 (reported by Matthias Andree).

* Fixed accuracy for denormalized numbers (bug item #758327).

* Glen Davidson
  Fixed scanning of floating-point numbers without a decimal-point (bug item
  #1370427).

* David Byron
  Fixed more compiler warnings.

* Fixed compilation of trio_to_long_double and TRIO_FEATURE_FLOAT (reported by
  David Byron).

* Fixed precision of large floating-point numbers (bug item #1314524).

* Karl Bochert
  Fixed trio_fpclassify_and_signbit to only restore the floating-point
  precision.

* Fixed detection of need for ieee option on FreeBSD/Alpha.

* Added TRIO_SNPRINTF_ONLY compilation.

* Fixed trio_to_double by not using strtod() on Tru64/DECC because it does not
  support hex-floats.

* Fixed crash on 64 bits machines related to a previous workaround in version
  1.9 for uninitialized va_list (reported by Nicolai Tufar, suggestion by
  Douglas Gwyn).

* Patrick Jessee
  Fixed width calculation for %g.

* Added macros for internal features.

* Jon Foster
  Added macros for conditional compilation of many features. Documented all
  the features.

* Karl Bochert
  Fixed problem with Borland C++, which changes the floating-point precision
  for certain math functions (log10() and _fpclass()).

* Karl Bochert
  Fixed compilation warnings on Borland C++.

* Removed any occurrence of #elif because Borland C++ reports wrong line
  numbers when they are present (reported by Karl Bochert).

* David Byron
  Added trio_asprintfv.

* Brian Chapman
  Fixed Mac OS X compilation.

* David Byron
  Fixed several compiler warnings.

* Fixed printing of out-of-range arguments for %hhd and %hd. These arguments
  can be out of range because of default integer promotion.

* Bob Friesenhahn
  Fixed installation of header files.

* Joe Orton
  Added SHELL to Makefile.in to avoid problems with CShells.

* Shaun Tancheff
  Fixed regresion tests for MSVC.

* Craig Berry
  Fixed the VMS C99 workaround.


Version 1.10 - 2003/03/06
-------------------------
* Rearranged some include files to accommodate large file support (reported by
  Albert Chin-A-Young).

* Added support for SunOS 4.1.x lack of strerror, tolower, and toupper
  (reported by Peter McCluskey).

* Fixed pedantic compilation with TRIO_MINIMAL.

* Jose Kahan
  Moved <limits.h> to avoid redefinition problems.

* Fixed hex-float exponents (reported by Matthias Clasen).

* Fixed handling of negative width and precision via paramters (reported by
  Jacob Navia).

* Nigel Hall
  Fixed TRIO_VA_START for VMS.

* Rune Enggaard Lausen
  Fixed compilation for Borland C++ Builder.

* Fixed precision of hex-float numbers (reported by James Antill).

* Fixed plus sign only to be added for signed numbers.

* Fixed printing of integers with value and precision of zero (reported by
  James Antill).

* Fixed %#.o to only print one zero if the value is zero (reported by James
  Antill).

* Rewrote check for IEEE compilation option to remove dependency on additional
  scripts.

* Mehdi Lavasani
  Makefile install target fixed to work with older install programs.

* Collapsed the DECC, MSVC, HP-UX, and AIX code for trio_fpclassify_and_sign()
  with further preprocessing.


Version 1.9 - 2002/10/13
------------------------
* Fixed trio_fpclassify_and_signbit on AIX 3.2

* Added configure check for -ieee/-mieee compilation option for Alpha machines.

* Craig Berry
  Fixed compilation on VMS.

* Albert Chin-A-Young
  Fixed incorrect conditional expression in trio_isinf.

* Fixed the warnings about uninitialized va_list in the printfv and scanfv
  family without the use of compiler specific pragmas (suggested by Ian
  Pilcher).

* Fixed space flag for floating-point numbers (reported by Ian Main).


Version 1.8 - 2002/07/10
------------------------
* Fixed infinite loop in multibyte handling (reported by Gisli Ottarsson).

* Added the customizable cprintf/cscanf family which enables to user to specify
  input and output stream functions (suggested by Florian Schulze).

* Fixed trio_isinf by removing the HP-UX workaround, and instead making sure
  that the C99 macro will adhere to the trio return values (reported by Luke
  Dunstan).

* Alexander Lukyanov
  Fixed boundary case for scanning and EOF.

* Jacob Navia
  Enabled the L modifier for formatting.

* Added TRIO_MINIMAL to build trio without the string functions.

* Added the R modifier to print rounded floating-point numbers.

* Added trio_to_long_double and long double scanning (the L modifier).

* Added trio_locale_decimal_point, trio_locale_thousand_separator,
  trio_locale_grouping to overwrite locale settings.

* Rewrote TrioWriteDouble to avoid temporary buffers and thus the danger of
  buffer overflows (for instance %.5000f).

* Improved floating-point formatting accuracy.

* Fixed formatting of non-decimal exponents.

* Fixed thousand separator checking.

* Fixed %f scanning to get a float and %lf to get a double.

* Fixed WIN32 compilation (reported by Emmanuel Mogenet)

* Fixed regression test cases to exclude disabled features.


Version 1.7 - 2002/05/07
------------------------
* Fixed trio_to_double to handle hex-floats properly.

* Fixed printing of %a-format to be like %e, not like %g.

* Fixed floating-point printing of values beyond the machine accuracy.

* Fixed %f for printing with large precision.

* Fixed the usage of C99 nan(), which caused a crash on OSF/1 (reported by
  Georg Bolz)

* Joe Orton
  Fixed %p on 64-bit platforms.

* Made trio compile with K&R compilers.

* Emmanuel Mogenet
  Fixed bug in trio_asprintf.

* Emmanuel Mogenet
  Various WIN32 fixes.

* Joe Orton
  Fixed trio_isinf() on HP-UX, and added test cases.

* Joe Orton
  Fixed non-portable use of $^ in Makefile.

* Joe Orton
  Added autoconf.

* Alexander Lukyanov
  Fixed a number of bugs in the scanning of EOF and the count specifier.

* Richard Jinks
  Added trio_nzero

* Fixed incorrect handling of return code from TrioReadChar (reported by
  Henrik L�f)

* Fixed parsing of character class expressions.

* Fixed trio_to_double which did not work with long fractions.

* Fixed %f for printing of large numbers.

* Fixed %#s to handle whitespaces as non-printable characters.

* Added trio_isfinite, trio_signbit, and trio_fpclassify.

* Added new test cases.


Version 1.6 - 2002/01/13
------------------------
* Added dynamic string functions.

* Rewrote and extended documentation in JavaDoc (using Doxygen).

* Moved and renamed strio functions to triostr.

* Robert Collins
  Added definition for Cygwin.

* Markus Henke
  Added long double workaround for the HP C/iX compiler.

* Marc Verwerft
  Improved error handling for dynamically allocated strings.

* John Fotheringham
  Made trionan compile on OpenVMS.

* Added 'd' and 'D' as exponent letters when using TRIO_MICROSOFT.

* Fixed uninitial memory read for the parameter modifiers.


Version 1.5 - 2001/09/08
------------------------
* Merged with libxml changes.

* Moved NaN and Inf handling to separate file to enable reuse in other
  projects.

* Igor Zlatkovic
  Fixed TrioGenerateNan for MSVC.

* Fixed lots of preprocessor macros and internal data structure names.


Version 1.4 - 2001/06/03
------------------------
* Added hex-float (%a and %A) for scanning.

* Added wide character arguments (%ls, %ws, %S, %lc, %wc, and %C) for both
  printf and scanf.

* Added mutex callbacks for user-specified specifiers to enable applications to
  add thread-safety. These are registered with trio_register, where the
  namespace is set to either ":enter" to lock a mutex, or ":leave" to unlock a
  mutex.

* Added equivalence class expressions for scanning. For example, %[[=a=]] scans
  for all letters in the same equivalence class as the letter 'a' as defined
  by the locale.

* Changed character class expressions for scanning. The expressions must now
  be embedded withing an extra set of brackets, e.g. %[[:alpha:]]. This was
  done to adhere to the syntax of UNIX98 regular expressions.

* Added the possibility to specify standard support (TRIO_C99 etc.) as compiler
  options.

* Fixed conversion of hex-float in StrToDouble.

* Fixed formatting of hex-float numbers.

* Stan Boehm
  Fixed crash on QNX, which happend because some buffers on the stack were too
  big.

* Fixed default precision for %f and %g (reported by Jose Ortiz)

* Howard Kapustein
  Added the I8, I16, I32, and I64 modifiers.

* Jose Ortiz
  Fixed rounding problem for %e.

* Jose Ortiz
  Fixed various problems with the xlC and Sun C++ compilers.


Version 1.3 - 2001/05/16
------------------------
* trio's treatment of the field width when the %e code was used was not
  correct (reported by Gisli Ottarsson). It turns out the fraction part should
  be zero-padded by default and the exponent part should be zero-prefixed if
  it is only one digit. At least that's how the GNU and Sun libc's work. The
  trio floating point output looks identical to them now.

* Fixed group scanning with modifiers.

* Fixed compilation for 64-bit Digital Unix.

* Igor Zlatkovic
  Fixed compilation of dprintf, which uses read/write, for MSVC.

* Fixed various compilation problems on Digital Unix (mainly associated with
  va_list).


Version 1.2 - 2001/04/11
------------------------
* Added autoconf integration. If compiled with HAVE_CONFIG_H the following
  happens. Firstly, <config.h> is included. Secondly, trio will only be
  compiled if WITH_TRIO is defined herein. Thirdly, if TRIO_REPLACE_STDIO is
  defined, only stdio functions that have not been detected by autoconf, i.e.
  those not defined by HAVE_PRINTF or similar, will be replaced by trio
  functions (suggested by Daniel Veillard).

* Fixed '%m.nf' output. Previously trio did not treat the width properly
  in all cases (reported by Gisli Ottarsson).

* Added explicit promotion for the scanfv family.

* Fixed more C++ compilation warnings.


Version 1.1 - 2001/02/25
------------------------
* Added explicit promotion for the printfv familiy. A float must be specified
  by %hf.

* Fixed positionals for printfv (reported by Gisli Ottarsson).

* Fixed an integer to pointer conversion problem on the SGI MIPS C compiler
  (reported by Gisli Ottarsson).

* Fixed ANSI C++ warnings (type casting, and namespace is a reserved keyword).

* Added \n to all examples in the documentation to prevent confusion.

* Fixed StrSubstringMax


Version 1.0 - 2000/12/10
------------------------
* Bumped Version number.


Version 0.25 - 2000/12/09
-------------------------
* Wrote more documentation.

* Improved NaN support and added NaN to regression test.

* Fixed C99 support.

* Added missing getter/setter functions.


Version 0.24 - 2000/12/02
-------------------------
* Added callback functionality for the user-defined specifier (<>). All
  the necessary functions are defined in triop.h header file. See the
  documentation for trio_register for further detail.

* Wrote initial documentation on the callback functionality.

* Added the printfv and scanfv family of functions, which takes a pointer
  array rather than variadic arguments. Each pointer in the array must point
  to the associated data (requested by Bruce Korb).

* As indicated in version 0.21 the extension modifiers (<>) have now been
  completely removed.

* Added skipping of thousand-separators in floating-point number scanning.


Version 0.23 - 2000/10/21
-------------------------
* Added width to scanning of floating-point numbers.

* Wrote more documentation on trio_printf.

* Fixed problem with trailing zeroes after decimal-point.


Version 0.22 - 2000/08/06
-------------------------
* Added LC_CTYPE locale dependent character class expressions to scan lists.
  Included are [:alnum:], [:alpha:], [:cntrl:], [:digit:], [:graph:],
  [:lower:], [:print:], [:punct:], [:space:], [:upper:], [:xdigit:]

* Added C escapes to alternative string formatting and scanning.

* Added StrSubstringMax.

* Wrote a little more documentation.

* Fixed scanf return values.

* Fixed a sign error for non-ascii characters.


Version 0.21 - 2000/07/19
-------------------------
* Converted the documentation to TeX. With latex2man the documentation can
  automatically be converted into man pages.

* Added trio_scanf, trio_vscanf, trio_fscanf, and trio_vfscanf.

* Added trio_dprintf, trio_vdprintf, trio_dscanf, and trio_vdscanf. These
  functions can be used to write and read directly to pipes and sockets (the
  assume blocking sockets). Stdio buffering is surpassed, so the functions are
  async-safe. However, reading from stdin (STDIN_FILENO) or writing to stdout
  (STDOUT_FILENO) reintroduces the buffering.

* Paul Janzen
  Added trio_asprintf and trio_vasprintf, which are compatible with the GNU
  and BSD interfaces.

* Added scanlist ranges for group scanning (%[]).

* Added width for scanning (missing for floating-point numbers though).

* Added variable size modifier (&) to handle system defined types of unknown
  size. This modifier makes certain assumptions about the integer sizes, which
  may not be valid on any machine. Consequently, the modifier will remain
  undocumented, as it may be removed later.

* Added \777 and \xFF to alternative string scanning (%#s)

* Added the TRIO_REPLACE_STDIO check in the header.

* Improved performance of the multibyte character parsing.

* Fixed positionals (%n$) which had stopped working.

* Fixed hh and ll modifiers to allow exactly two letters and no more.

* Fixed ANSI C++ warnings. Also fixed the compiler warning about casting
  between integer and pointer (this has been annoying me for ages). 

* Fixed snprintf and vsnprintf with zero buffer size.

* Fixed NAN problems (reported by Keith Briggs).

* Fixed parsing of multibyte characters. The format string was not correctly
  advanced in case of a multibyte character.

* Renamed many of the internal functions to have more consistant names.

* Removed the <quote=c> and <fill=c> modifiers. They are not really worth
  including. The other <> modifiers may disappear as well.


Version 0.20 - 2000/06/05
-------------------------
* Added intmax_t and ptrdiff_t support.

* Added support for LC_NUMERIC grouping.

* Added double-dot notation for the conversion base. The style is now
  %width.precision.base, where any argument can be a number, an asterix
  indicating a parameter, or be omitted entirely. For example, %*..2i is
  to specify binary numbers without precision, and with width as a parameter
  on the va_list.

* Added sticky modifier (!), which makes subsequent specifiers of the same
  type reuse the current modifiers. Inspired by a suggestion from Gary Porter.

* Added group scanning (%[]). Scanlist ranges and multibyte sequences are not
  supported yet.

* Added count scanning (%n).

* Changed the number scanning to accept thousand separators and any base.

* Fixed positional for parameters. It is possible to write something like
  %3$*1$.*2$d (which happens to be the same as %*.*d).

* Fixed precision of integers.

* Fixed parameter flags. Before trio could only handle one parameter flag per
  specifier, although two (three with double-dot base) were possible.

* Fixed isinf() for those platforms where it is unimplemented.


Version 0.18 - 2000/05/27
-------------------------
* Rewrote the entire floating-point formatting function (Danny Dulai had
  reported several errors and even supplied some patches, which unfortunately
  were lost due to the refactoring).

* Removed the use of strlen() in the declaration of a stack array. This
  caused problems on some compilers (besides it isn't really ANSI C compliant
  anyways). Using some arbitrarily chosen maximum value; should examine if
  some standard defines an upper limit on the length of decimal-point and
  thousands-separator (sizeof(wchar_t) perhaps?)

* Changed the parsing of the format string to be multibyte aware.


Version 0.17 - 2000/05/19
-------------------------
* Added INF, -INF, and NAN for floating-point numbers.

* Fixed %#.9g -- alternative with precision.

* Ken Gibson
  Fixed printing of negative hex numbers

* Joerg (last name unknown)
  Fixed convertion of non-ASCII characters


Version 0.16 - 1999/08/06
-------------------------
* Changed the constness of the second argument of StrFloat and StrDouble. The
  lack of parameter overloading in C is the reason for the strange use of
  constness in strtof and strtod.

* Cleaned up constness.


Version 0.15 - 1999/07/23
-------------------------
* Fixed the internal representation of numbers from signed to unsigned. Signed
  numbers posed a problem for large unsigned numbers (reported by Tero)

* Fixed a tiny bug in trio_vsprintfcat

* Changed the meaning of the max argument of StrAppendMax to be consistant
  with StrFormatAppendMax. Now it is the maximal size of the entire target
  buffer, not just the appended size. This makes it easier to avoid buffer
  overflows (requested by Tero)


Version 0.14 - 1999/05/16
-------------------------
* Added size_t support (just waiting for a C99 compliant compiler to add
  ptrdiff_t and intmax_t)

* Rewrote TrioOutStreamDouble so it does not use the libc sprintf to emulate
  floating-point anylonger.

* Fixed width, precision, and adjustment for numbers and doubles.


Version 0.13 - 1999/05/06
-------------------------
* Fixed zero padding for %d. Now %d will only zero pad if explicitly requested
  to do so with the 0 flag (reported by Tero).

* Fixed an incorrect while() condition in TrioGetString (reported by Tero).


Version 0.12 - 1999/04/19
-------------------------
* Fixed incorrect zero padding of pointers

* Added StrHash with STRIO_HASH_PLAIN

* Added StrFormatDateMax


Version 0.11 - 1999/03/25
-------------------------
* Made it compile under cygwin

* Fixed a bug were TrioPreprocess would return an error if no formatting chars
  were found (reported by Tero).


Version - 1999/03/19
--------------------
* Added trio_strerror and TRIO_ERROR_NAME.

* Changed the error codes to be positive (as errno)

* Fixed two reads of uninitialized memory reported by Purify

* Added binary specifiers 'b' and 'B' (like SCO.) ThousandSeparator can be
  used to separate nibbles (4 bit)

* Renamed all Internal* functions to Trio*, which seems like a better
  namespace (even though it is of no practical interest because these
  functions are not visible beyond the scope of this file.)


Version - 1999/03/12
--------------------
* Added hex-float format for StrToDouble

* Double references and gaps in the arguments are not allowed (for the %n$
  format) and in both cases an error code is returned.

* Added StrToDouble (and StrToFloat)


Version - 1999/03/08
--------------------
* Added InStream and OutStream to the trio_T structure.

* Started work on TrioScan.

* Return values for errors changed. Two macros to unpack the error code has
  been added to the header.

* Shortshort (hh) flag added.

* %#s also quotes the quote-char now.

* Removed the 'errorInFormat' boolean, which isn't used anymore after the
  functions bail out with an error instead.


Version - 1999/03/04
--------------------
* More than MAX_PARAMETERS parametes will now cause the TrioPreprocess()
  function to return error.

* Unknown flags and/or specifiers cause errors too.

* Added trio_snprintfcat and trio_vsnprintfcat and the defined name
  StrFormatAppendMax. They append a formatted string to the end of a string.

* Define MAX_PARAMETERS to 128 at all times instead of using NL_ARGMAX when
  that exists.

* Added platform fixes for Amiga as suggested by Tero J�nk� <tesaja@utu.fi>


Version - 1999/01/31
--------------------
* vaprintf did add a zero byte even when it had failed.

* Cleaned up the code for locale handling and thousand separator

* Added trio_aprintf() and trio_vaprintf(). They return an allocated string.

* Added thousands separator for numbers

* Added floating point support for *printf


Version - 1998/10/20
--------------------
* StrMatchCase() called StrMatch() instead of itself recursively

* Rewrote the implementation of *printf and *scanf and put all the code in
  this file. Extended qualifiers and qualifiers from other standards were
  added.

* Added StrSpanFunction, StrToLong, and StrToUnsignedLong


Version - 1998/05/23
--------------------
* Made the StrEqual* functions resistant to NULL pointers

* Turns out strdup() is no standard at all, and some platforms (I seem to
  recall HP-UX) has problems with it. Made our own StrDuplicate() instead.

* Added StrFormat() and StrFormatMax() to serve as sprintf() and snprintf()
  respectively.