$NetBSD: patch-aj,v 1.4 2013/04/29 21:34:49 joerg Exp $ --- libstdc++-v3/config/os/bsd/netbsd/ctype_base.h.orig 2009-04-09 23:23:07.000000000 +0000 +++ libstdc++-v3/config/os/bsd/netbsd/ctype_base.h @@ -41,6 +41,33 @@ _GLIBCXX_BEGIN_NAMESPACE(std) // NB: Offsets into ctype::_M_table force a particular size // on the mask type. Because of this, we don't use an enum. +#if defined(_CTYPE_BL) + typedef unsigned short mask; + static const mask upper = _CTYPE_U; + static const mask lower = _CTYPE_L; + static const mask alpha = _CTYPE_A; + static const mask digit = _CTYPE_D; + static const mask xdigit = _CTYPE_X; + static const mask space = _CTYPE_S; + static const mask print = _CTYPE_R; + static const mask graph = _CTYPE_G; + static const mask cntrl = _CTYPE_C; + static const mask punct = _CTYPE_P; + static const mask alnum = _CTYPE_A | _CTYPE_D; +#elif defined(_CTYPE_U) + typedef unsigned char mask; + static const mask upper = _CTYPE_U; + static const mask lower = _CTYPE_L; + static const mask alpha = _CTYPE_U | _CTYPE_L; + static const mask digit = _CTYPE_N; + static const mask xdigit = _CTYPE_N | _CTYPE_X; + static const mask space = _CTYPE_S; + static const mask print = _CTYPE_P | _CTYPE_U | _CTYPE_L | _CTYPE_N | _CTYPE_B; + static const mask graph = _CTYPE_P | _CTYPE_U | _CTYPE_L | _CTYPE_N; + static const mask cntrl = _CTYPE_C; + static const mask punct = _CTYPE_P; + static const mask alnum = _CTYPE_U | _CTYPE_L | _CTYPE_N; +#else typedef unsigned char mask; static const mask upper = _U; static const mask lower = _L; @@ -53,6 +80,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) static const mask cntrl = _C; static const mask punct = _P; static const mask alnum = _U | _L | _N; +#endif }; _GLIBCXX_END_NAMESPACE