opnsense-src/lib/libc/locale
Kyle Evans 25512b1fca libc: locale: fix EUC shift check
wchar_t is unsigned on ARM platforms, and signed pretty much everywhere
else.  On signed platforms, `nm` ends up with bogus upper bits set if we
did in-fact have a valid CS2 or CS3 (MSB set).  Mask just the low byte
to avoid sign bit garbage.

Bare basic test of converting a CS2 widechar in eucCN, which would
previously kick back an EILSEQ.

Reviewed by:	bapt, rew
Sponsored by:	Klara, Inc.

(cherry picked from commit c4c562eadf3b790fa221e220d6a442f0cb84ca35)
2025-04-25 22:19:49 -05:00
..
ascii.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
big5.5 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
big5.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
btowc.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
btowc.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
c16rtomb.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
c16rtomb_iconv.c Remove $FreeBSD$: one-line .c comment pattern 2023-08-16 11:54:29 -06:00
c32rtomb.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
c32rtomb_iconv.c Remove $FreeBSD$: one-line .c comment pattern 2023-08-16 11:54:29 -06:00
collate.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
collate.h libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
collcmp.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
ctype.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
ctype.c Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:16 -06:00
ctype_l.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
cXXrtomb_iconv.h libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
DESIGN.xlocale Remove $FreeBSD$: one-line bare tag 2023-08-16 11:55:20 -06:00
digittoint.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
duplocale.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
euc.5 Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
euc.c libc: locale: fix EUC shift check 2025-04-25 22:19:49 -05:00
fix_grouping.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
freelocale.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
gb2312.5 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
gb2312.c Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:42 -06:00
gb18030.5 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
gb18030.c Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:42 -06:00
gbk.5 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
gbk.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
isalnum.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
isalpha.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
isascii.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
isblank.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
iscntrl.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
isctype.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
isdigit.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
isgraph.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
isideogram.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
islower.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
isphonogram.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
isprint.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
ispunct.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
isrune.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
isspace.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
isspecial.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
isupper.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
iswalnum.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
iswalnum_l.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
iswctype.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
isxdigit.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
ldpart.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
ldpart.h Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:16 -06:00
lmessages.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
lmessages.h Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:16 -06:00
lmonetary.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
lmonetary.h Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:16 -06:00
lnumeric.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
lnumeric.h Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:16 -06:00
localeconv.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
localeconv.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
Makefile.inc Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
mblen.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
mblen.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
mblocal.h Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:16 -06:00
mbrlen.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
mbrlen.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
mbrtoc16.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
mbrtoc16_iconv.c Remove $FreeBSD$: one-line .c comment pattern 2023-08-16 11:54:29 -06:00
mbrtoc32.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
mbrtoc32_iconv.c Remove $FreeBSD$: one-line .c comment pattern 2023-08-16 11:54:29 -06:00
mbrtocXX_iconv.h libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
mbrtowc.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
mbrtowc.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
mbsinit.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
mbsinit.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
mbsnrtowcs.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
mbsrtowcs.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
mbsrtowcs.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
mbstowcs.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
mbstowcs.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
mbtowc.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
mbtowc.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
mskanji.5 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
mskanji.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
multibyte.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
newlocale.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
nextwctype.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
nextwctype.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
nl_langinfo.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
nl_langinfo.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
nomacros.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
none.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
querylocale.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
rpmatch.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
rpmatch.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
rune.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
runefile.h Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:16 -06:00
runetype.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
setlocale.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
setlocale.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
setlocale.h Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:16 -06:00
setrunelocale.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
Symbol.map libc: Remove empty comments in Symbol.map 2023-12-13 22:08:13 +00:00
table.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
toascii.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
tolower.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
tolower.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
toupper.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
toupper.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
towlower.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
towupper.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
uselocale.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
utf8.5 Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
utf8.c Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:42 -06:00
wcrtomb.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
wcrtomb.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
wcsftime.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
wcsftime.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
wcsnrtombs.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
wcsrtombs.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
wcsrtombs.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
wcstod.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
wcstod.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
wcstof.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
wcstoimax.c libc: remove some obsolete VCS data 2023-12-13 23:08:50 +00:00
wcstol.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
wcstol.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
wcstold.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
wcstoll.c libc: remove some obsolete VCS data 2023-12-13 23:08:50 +00:00
wcstombs.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
wcstombs.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
wcstoul.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
wcstoull.c libc: remove some obsolete VCS data 2023-12-13 23:08:50 +00:00
wcstoumax.c libc: remove some obsolete VCS data 2023-12-13 23:08:50 +00:00
wctob.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
wctomb.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
wctomb.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
wctrans.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
wctrans.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
wctype.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
wctype.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
wcwidth.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
wcwidth.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
xlocale.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
xlocale.c Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:16 -06:00
xlocale_private.h Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:16 -06:00