Initial import
Release 1.0.
Don't force strict C89, as we want to test "long long" support, for
example.
Setting *overflow to 1 in cast() was redundant as returning INTMAX_MAX
signals overflow already (a regular conversion to INTMAX_MAX is not
supported).
Minor comment fixes.
Fix the infinity detection on IRIX (and possibly other systems).
In printsep(), make sure that lc->thousands_sep is not a NULL pointer
before using it.  Also, if it points to a multi-character separator,
simply call OUTCHAR() for each character; using fmtstr() in this case
(as we did before) doesn't gain anything.
Make sure the value returned by getexponent() will be in the range of
-99 to 99 under all circumstances and omit the now completely redundant
checks for overflow of the econvert buffer (which holds the exponent).
If lc->thousands_sep is a NULL pointer, use ",".
Fix typo (INTMAX_MAX vs. UINTMAX_MAX).
Release 1.1.
Within rpl_vsnprintf(), let all floating point conversion specifiers
fall into a single switch case in order to remove some code duplication.
If the number of bytes required to hold the output string (excluding the
nul-termination) is larger than INT_MAX, return -1 and set errno to
EOVERFLOW (if available).  Before, we used ERANGE in this case and we
also did that if the number of required bytes was equal to INT_MAX.  The
latter behaviour had the advantage that users could safely increment any
positive return value by one (in order to calculate the required buffer
size) even without converting it to a larger or unsigned integer type.
However, as other implementations may return INT_MAX, users should
handle this case anyway.  The new behaviour is defined by an XSI
extension to POSIX (IEEE Std 1003.1, 2004 Edition), though this
extension also mandates to fail with EOVERFLOW if the buffer size
specified by the user is greater than INT_MAX; which we won't do, as
this alone is not a problem whatsoever.  Note that C99 doesn't specify
the error handling.