This adds formatted input/output of binary integer numbers to the printf(), scanf(), and strtol() families, including their wide-character counterparts.
Reviewed by: imp, emaste
Differential Revision: https://reviews.freebsd.org/D41511
(cherry picked from commit d9dc1603d6e48cca84cad3ebe859129131b8387c)
libc: Add unit tests for N2630 and possible collateral damage.
Reviewed by: imp, emaste
Differential Revision: https://reviews.freebsd.org/D41512
(cherry picked from commit b9385720f34b536ef2568a642e8b1fad0450056f)
libc: Document support for binary integers.
Reviewed by: debdrup, emaste
Differential Revision: https://reviews.freebsd.org/D41522
(cherry picked from commit 76edfabbecdec686a570b8e009d5ea4112f943e0)
libc: Fix fixed-width case in the new integer parser.
Fixes: d9dc1603d6e4
Differential Revision: https://reviews.freebsd.org/D41622
(cherry picked from commit aca3bd1602577591e5cd237c4bb0bb71b3be0c75)
libc: Add a wide version of snprintf_test.
Reviewed by: imp, emaste
Differential Revision: https://reviews.freebsd.org/D41726
(cherry picked from commit 4ec9ee9912765ac4ca57353999caa92a23283d8e)
libc: Suppress format checks on printf() / scanf() tests.
Reviewed by: jrtc27, markj, emaste
Differential Revision: https://reviews.freebsd.org/D41727
(cherry picked from commit 294bd2827e61a78041f6613f4b82235fcc454157)
Approved by: re (gjb)
definitions of the functions that convert strings to numbers
and are defined by IEEE Std 1003-1.2001.
- Use ANSI-C function definitions for all of the functions
mentioned above plus strtouq and strtoq.
- Update the prototypes in the manual pages.
'locale not used' statement from comments and BUGS section of manpage.
strtol(): fix non-portable 'cutoff' calculation using the same method as
in strtoll().
Cleanup 'cutoff' calculation, remove unneded casts. Misc. cleanup to
make all functions looks the same.
Implement EINVAL reaction per POSIX, document it in manpage, corresponding
POSIX example quotes here:
------------------------------------------------
If the subject sequence is empty or does not have the expected form, no
conversion is performed; the value of str is stored in the object pointed
to by endptr, provided that endptr is not a null pointer.
If no conversion could be performed, 0 shall be returned and errno may be
set to [EINVAL].
[EINVAL] The value of base is not supported.
Since 0, {LONG_MIN} or {LLONG_MIN}, and {LONG_MAX} or {LLONG_MAX} are
returned on error and are also valid returns on success, an application
wishing to check for error situations should set errno to 0, then call
strtol( ) or strtoll ( ), then check errno.
-----------------------------------------------------
track.
The $Id$ line is normally at the bottom of the main comment block in the
man page, separated from the rest of the manpage by an empty comment,
like so;
.\" $Id$
.\"
If the immediately preceding comment is a @(#) format ID marker than the
the $Id$ will line up underneath it with no intervening blank lines.
Otherwise, an additional blank line is inserted.
Approved by: bde