Even if those _[BCNLPSUX] defines are in the reserved namespace, some
ports make use of those identifiers and thus need pointless
headscratching and patches. Just use a longer reserved prefix.
We can't just #undef those defines as they are used in libc.
Change similar to what NetBSD did around 2010. Went through base builds
and an amd64 bulk build, the only fallout was lib(e)stdc++ base_ctype.h.
"make includes" will install the latest ctype.h and libstdc++ ctype_base.h.
"makes sense" deraadt@, ok sthen@ tb@
Complete in the sense that all POSIX *locale(3) and *_l(3) functions
are included, but in OpenBSD, we of course only really care about
LC_CTYPE and we only support ASCII and UTF-8.
With important help from kettenis@, guenther@, and jca@.
Repeated testing in ports bulk builds by naddy@.
Additional testing by jca@, sebastia@, dcoppa@, and others.
OK kettenis@ dcoppa@, and guenther@ on an earlier version.
Riding guenther@'s libc/librthread major bump.
combined GCC and ISO committees managed to make out of it.
With this, gcc >= 4.3 can grok its way through it correctly.
okay kettenis@, with some help figuring stuff out.
Use "extern __inline" instead of "static __inline" since the extern
flavor behaves more like a macro (which is what we want).
OK deraadt@ and tested on all platforms by various folks.
sparc64. Change cast back to unsigned char but do a bitwise AND
with 0xff to avoid any sign extension weirdness and to make it
impossible for us to overflow _C_ctype_. The bitwise AND is probably
not needed and may be removed later if this does not trigger compiler bugs.