HomeFreeBSD

libc: locale: fix EUC shift check

Description

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)

Details

Provenance
kevansAuthored on Sun, Apr 20, 6:29 PM
Parents
rGc195ae95912a: bintrans: disable argument permutation for qp and base64
Branches
Unknown
Tags
Unknown