113 lines
3.3 KiB
Plaintext
113 lines
3.3 KiB
Plaintext
--- libstdc++-v3/config/os/bsd/netbsd/ctype_base.h.orig
|
|
+++ libstdc++-v3/config/os/bsd/netbsd/ctype_base.h
|
|
@@ -43,9 +43,22 @@
|
|
|
|
// NB: Offsets into ctype<char>::_M_table force a particular size
|
|
// on the mask type. Because of this, we don't use an enum.
|
|
- typedef unsigned char mask;
|
|
|
|
-#ifndef _CTYPE_U
|
|
+#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 = _U;
|
|
static const mask lower = _L;
|
|
static const mask alpha = _U | _L;
|
|
@@ -58,6 +71,7 @@
|
|
static const mask punct = _P;
|
|
static const mask alnum = _U | _L | _N;
|
|
#else
|
|
+ typedef unsigned char mask;
|
|
static const mask upper = _CTYPE_U;
|
|
static const mask lower = _CTYPE_L;
|
|
static const mask alpha = _CTYPE_U | _CTYPE_L;
|
|
--- libstdc++-v3/config/os/bsd/netbsd/ctype_configure_char.cc.orig
|
|
+++ libstdc++-v3/config/os/bsd/netbsd/ctype_configure_char.cc
|
|
@@ -38,11 +38,17 @@
|
|
|
|
// Information as gleaned from /usr/include/ctype.h
|
|
|
|
+#ifndef _CTYPE_BL
|
|
extern "C" const u_int8_t _C_ctype_[];
|
|
+#endif
|
|
|
|
const ctype_base::mask*
|
|
ctype<char>::classic_table() throw()
|
|
+#ifdef _CTYPE_BL
|
|
+ { return _C_ctype_tab_ + 1; }
|
|
+#else
|
|
{ return _C_ctype_ + 1; }
|
|
+#endif
|
|
|
|
ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
|
|
size_t __refs)
|
|
@@ -69,14 +75,14 @@
|
|
|
|
char
|
|
ctype<char>::do_toupper(char __c) const
|
|
- { return ::toupper((int) __c); }
|
|
+ { return ::toupper((int)(unsigned char) __c); }
|
|
|
|
const char*
|
|
ctype<char>::do_toupper(char* __low, const char* __high) const
|
|
{
|
|
while (__low < __high)
|
|
{
|
|
- *__low = ::toupper((int) *__low);
|
|
+ *__low = ::toupper((int)(unsigned char) *__low);
|
|
++__low;
|
|
}
|
|
return __high;
|
|
@@ -84,14 +90,14 @@
|
|
|
|
char
|
|
ctype<char>::do_tolower(char __c) const
|
|
- { return ::tolower((int) __c); }
|
|
+ { return ::tolower((int)(unsigned char) __c); }
|
|
|
|
const char*
|
|
ctype<char>::do_tolower(char* __low, const char* __high) const
|
|
{
|
|
while (__low < __high)
|
|
{
|
|
- *__low = ::tolower((int) *__low);
|
|
+ *__low = ::tolower((int)(unsigned char) *__low);
|
|
++__low;
|
|
}
|
|
return __high;
|
|
--- libstdc++-v3/config/os/bsd/netbsd/ctype_inline.h.orig
|
|
+++ libstdc++-v3/config/os/bsd/netbsd/ctype_inline.h
|
|
@@ -48,7 +48,7 @@
|
|
is(const char* __low, const char* __high, mask* __vec) const
|
|
{
|
|
while (__low < __high)
|
|
- *__vec++ = _M_table[*__low++];
|
|
+ *__vec++ = _M_table[(unsigned char)*__low++];
|
|
return __high;
|
|
}
|
|
|
|
--- libstdc++-v3/configure.host.orig
|
|
+++ libstdc++-v3/configure.host
|
|
@@ -268,6 +268,9 @@
|
|
dragonfly*)
|
|
os_include_dir="os/bsd/dragonfly"
|
|
;;
|
|
+ linux-androideabi)
|
|
+ os_include_dir="os/bionic"
|
|
+ ;;
|
|
freebsd*)
|
|
os_include_dir="os/bsd/freebsd"
|
|
;;
|