freebsd-src/lib/libc/stdlib
Jose Luis Duran 02a810d9b4
Some checks failed
Cross-build Kernel / amd64 ubuntu-20.04 (clang-12) (push) Has been cancelled
Cross-build Kernel / aarch64 ubuntu-20.04 (clang-12) (push) Has been cancelled
Cross-build Kernel / amd64 macos-latest (clang-13) (push) Has been cancelled
Cross-build Kernel / aarch64 macos-latest (clang-13) (push) Has been cancelled
Cross-build Kernel / amd64 ubuntu-22.04 (clang-14) (push) Has been cancelled
Cross-build Kernel / aarch64 ubuntu-22.04 (clang-14) (push) Has been cancelled
strfmon: Fix negative sign handling for C locale
If the locale's positive_sign and negative_sign values would both be
returned by localeconv() as empty strings, strfmon() shall behave as if
the negative_sign value was the string "-".

This occurs with the C locale.  The implementation previously assigned
"0" to sign_posn (parentheses around the entire string); now it assigns
it to "1" (sign before the string) when it is undefined (CHAR_MAX).

Austin Group Defect 1199[1] is applied, changing the requirements for
the '+' and '(' flags.

[1]: https://www.austingroupbugs.net/view.php?id=1199

Reviewed by:	kib
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D53913

(cherry picked from commit cf85e7034a)
2025-12-03 02:35:56 +00:00
..
jemalloc Remove $FreeBSD$: one-line sh pattern 2023-08-23 11:43:30 -06:00
_Exit.c Remove $FreeBSD$: two-line .h pattern 2023-08-23 11:43:21 -06:00
a64l.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-23 11:43:31 -06:00
a64l.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
abort.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-23 11:43:32 -06:00
abort.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
abs.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-23 11:43:32 -06:00
abs.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
alloca.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-23 11:43:32 -06:00
at_quick_exit.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-23 11:43:31 -06:00
atexit.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-23 11:43:32 -06:00
atexit.c libc: allow __cxa_atexit handlers to be added during __cxa_finalize 2025-04-16 20:02:12 -05:00
atexit.h Remove $FreeBSD$: one-line .h pattern 2023-08-23 11:43:22 -06:00
atof.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-23 11:43:32 -06:00
atof.c Remove "All Rights Reserved" from Foundation copyrights 2023-09-25 09:49:25 -04:00
atoi.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-23 11:43:32 -06:00
atoi.c Remove "All Rights Reserved" from Foundation copyrights 2023-09-25 09:49:25 -04:00
atol.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-23 11:43:32 -06:00
atol.c Remove "All Rights Reserved" from Foundation copyrights 2023-09-25 09:49:25 -04:00
atoll.c Remove "All Rights Reserved" from Foundation copyrights 2023-09-25 09:49:25 -04:00
bsearch.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-23 11:43:32 -06:00
bsearch.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
bsearch_b.c Remove $FreeBSD$: two-line .h pattern 2023-08-23 11:43:21 -06:00
cxa_thread_atexit.c Remove "All Rights Reserved" from Foundation copyrights 2023-09-25 09:49:25 -04:00
cxa_thread_atexit_impl.c __cxa_thread_call_dtors(3): fix dtor pointer validity check 2024-05-10 10:49:36 +03:00
div.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-23 11:43:32 -06:00
div.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
exit.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-23 11:43:32 -06:00
exit.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
getenv.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-23 11:43:32 -06:00
getenv.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
getopt.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-23 11:43:32 -06:00
getopt.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
getopt_long.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-23 11:43:32 -06:00
getopt_long.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
getsubopt.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-23 11:43:32 -06:00
getsubopt.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
hcreate.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-23 11:43:31 -06:00
hcreate.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
hcreate_r.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
hdestroy_r.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
heapsort.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
heapsort_b.c Remove $FreeBSD$: two-line .h pattern 2023-08-23 11:43:21 -06:00
hsearch.h Remove $FreeBSD$: two-line .h pattern 2023-08-23 11:43:21 -06:00
hsearch_r.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
imaxabs.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-23 11:43:31 -06:00
imaxabs.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
imaxdiv.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-23 11:43:31 -06:00
imaxdiv.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
insque.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-23 11:43:31 -06:00
insque.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
l64a.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
labs.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-23 11:43:32 -06:00
labs.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
ldiv.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-23 11:43:32 -06:00
ldiv.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
llabs.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-23 11:43:31 -06:00
llabs.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
lldiv.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-23 11:43:31 -06:00
lldiv.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
lsearch.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-23 11:43:31 -06:00
lsearch.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
Makefile.inc Remove $FreeBSD$: one-line sh pattern 2023-08-23 11:43:30 -06:00
memory.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-23 11:43:32 -06:00
merge.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
mergesort_b.c Remove $FreeBSD$: two-line .h pattern 2023-08-23 11:43:21 -06:00
ptsname.3 ptsname.3: accommodate upcoming POSIX Issue 8 ptsname_r 2023-10-16 13:52:57 -04:00
ptsname.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
qsort.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-23 11:43:32 -06:00
qsort.c libc: Drop incorrect qsort optimization 2025-08-27 18:50:57 +00:00
qsort_r.c Remove $FreeBSD$: two-line .h pattern 2023-08-23 11:43:21 -06:00
qsort_s.c Remove $FreeBSD$: two-line .h pattern 2023-08-23 11:43:21 -06:00
quick_exit.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-23 11:43:31 -06:00
quick_exit.c libc: Rewrite quick_exit() and at_quick_exit() using C11 atomics. 2023-10-05 17:55:29 +02:00
radixsort.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-23 11:43:32 -06:00
radixsort.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
rand.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-23 11:43:32 -06:00
rand.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
random.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-23 11:43:32 -06:00
random.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
random.h Remove $FreeBSD$: two-line .h pattern 2023-08-23 11:43:21 -06:00
reallocarray.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-23 11:43:31 -06:00
reallocarray.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
reallocf.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-23 11:43:32 -06:00
reallocf.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
realpath.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-23 11:43:32 -06:00
realpath.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
remque.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
set_constraint_handler_s.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-23 11:43:31 -06:00
set_constraint_handler_s.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
strfmon.3 strfmon: EINVAL if the '+' flag and both signs are empty 2025-12-03 02:35:42 +00:00
strfmon.c strfmon: Fix negative sign handling for C locale 2025-12-03 02:35:56 +00:00
strtod.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-23 11:43:32 -06:00
strtoimax.c Remove "All Rights Reserved" from Foundation copyrights 2023-09-25 09:49:25 -04:00
strtol.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-23 11:43:32 -06:00
strtol.c Remove "All Rights Reserved" from Foundation copyrights 2023-09-25 09:49:25 -04:00
strtold.c Remove "All Rights Reserved" from Foundation copyrights 2023-09-25 09:49:25 -04:00
strtoll.c Remove "All Rights Reserved" from Foundation copyrights 2023-09-25 09:49:25 -04:00
strtonum.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-23 11:43:32 -06:00
strtonum.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
strtoq.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
strtoul.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-23 11:43:32 -06:00
strtoul.c Remove "All Rights Reserved" from Foundation copyrights 2023-09-25 09:49:25 -04:00
strtoull.c Remove "All Rights Reserved" from Foundation copyrights 2023-09-25 09:49:25 -04:00
strtoumax.c Remove "All Rights Reserved" from Foundation copyrights 2023-09-25 09:49:25 -04:00
strtouq.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
Symbol.map Remove $FreeBSD$: one-line .h pattern 2023-08-23 11:43:22 -06:00
system.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-23 11:43:32 -06:00
system.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
tdelete.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
tfind.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
tsearch.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-23 11:43:32 -06:00
tsearch.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00
tsearch_path.h Remove $FreeBSD$: two-line .h pattern 2023-08-23 11:43:21 -06:00
twalk.c Remove $FreeBSD$: one-line .c pattern 2023-08-23 11:43:26 -06:00