locales: Fix eucJP sorting (broken upstream?)
authorJohn Marino <draco@marino.st>
Sun, 1 Nov 2015 20:47:23 +0000 (21:47 +0100)
committerJohn Marino <draco@marino.st>
Sun, 1 Nov 2015 20:59:34 +0000 (21:59 +0100)
commit1b2528395788a50bc1f1b8784770de1df2202db6
tree2ef1facd9303539240d47146c77c969938893e35
parentbe3e37395b7a6f09ab7d9f05453d7ae4fe2ad2ba
locales: Fix eucJP sorting (broken upstream?)

Sorting eucJP text with "sort" resulted in an illegal sequence while
"gsort" worked.  This was traced back to mbrtowc handling which was
broken for eucJP (probably eucCN, eucKR, and eucTW as well).  This
small fix took hours to figure out.  The OR operation to build the
wide character requires an unsigned character to work correctly.  The
euc wcrtowc conversion is probably broken upstream in Illumos as well.

Reported by: bapt@FreeBSD.org
Triggered by: misc/freebsd-doc-ja in ports (encoded in eucJP)
lib/libc/locale/euc.c