summaryrefslogtreecommitdiff
path: root/locale/C-ctype.c
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1996-03-28 08:30:38 +0000
committerRoland McGrath <roland@gnu.org>1996-03-28 08:30:38 +0000
commit19bc17a90548ee427035994bbc4b14395723ff1f (patch)
treee7a17eda196c2610ca4be26c9e7985815162eafb /locale/C-ctype.c
parent53f770e0f9d405ea8d1888254c6f7ce431b04c6e (diff)
Thu Mar 28 03:25:10 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
* intl/Makefile (copysrc): Add missing > in sed cmd. Sat Mar 23 17:52:49 1996 Ulrich Drepper <drepper@gnu.ai.mit.edu> * Makeconfig: Rename Makefile variable nlsdir to i18ndir and change value to $(datadir)/i18n. `nls' is not an appropriate name. * Makefile (subdirs): Add new subdir wctype. * ctype/ctype-info.c: Add new global variable __ctype_names and initialize from _nl_C_LC_CTYPE. * ctype/ctype.h: In P1003.3b/D11 `alnum' is a separate character class. Use bit 11. [_ISbit]: Protect definition of bitmasks because they are also used in wctype.h. * libio/genops.c (_IO_sputbackc, _IO_sungetc): Clear EOF flag after successfully pushing back a character. Fundamental changes in locale implementation. Almost nothing from the old code is used anymore. * locale/charmap.c, locale/collate.c, locale/config.h, locale/ctypedump.c, locale/hash.h, locale/keyword.gperf, locale/keyword.h, locale/loadlocale.c, locale/locale-ctype.c, locale/locale.c locale/localeconv.c, locale/localedef.c, locale/localedef.h, locale/locfile-hash.c, locale/locfile-lex.c, locale/locfile-parse.c, locale/messages.c, locale/monetary.c, locale/numeric.c, locale/setlocale.c, locale/token.h, locale/xmalloc.c: Removed. * locale/Makefile: Update for new locale implementation with program source code distributed in subdir. * locale/categories.def, locale/iso-4217.def: Updated file for new locale implementation. * locale/langinfo.h: Updated for new locale implementation. (ERA_D_T_FMT, ERA_T_FMT): New official values according to P1003.2b/D11. (_NL_COLLATE_NRULES, _NL_COLLATE_RULES, _NL_COLLATE_HASH_SIZE, _NL_COLLATE_HASH_LAYERS, _NL_COLLATE_TABLE_EB, _NL_COLLATE_TABLE_EL, _NL_COLLATE_UNDEFINED, _NL_COLLATE_EXTRA_EB, _NL_COLLATE_EXTRA_EL, _NL_CTYPE_NAMES_EB, _NL_CTYPE_NAMES_EL, _NL_CTYPE_HASH_SIZE, _NL_CTYPE_HASH_LAYERS, _NL_CTYPE_CLASS_NAMES, _NL_CTYPE_MAP_NAMES, _NL_CTYPE_WIDTH): New internal values for extended LC_CTYPE and LC_COLLATE implementation. * locale/simple-hash.c, locale/simple-hash.h, locale/xmalloc.c, locale/xstrdup.c: Helper functions for locale related programs. * locale/C-collate.c, locale/C-ctype.c, locale/C-messages.c, locale/C-monetary.c, locale/C-numeric.c, locale/C-time.c, locale/lc-collate.c, locale/lc-ctype.c, locale/lc-messages.c, locale/lc-monetary.c, locale/lc-numeric.c, locale/lc-time.c: New implementation of locale functions, and new generated "C" locale data. * locale/loadlocale.c: Now handles word fields in locale binary automatically by changing the endianess if necessary. * locale/localeinfo.h (LIMAGIC): Changed magic number because of incompatible changes. (locale_data): Changed definition to allow word as a value type. (coll_sort_rule): Values for collation sorting mode. (_NL_CURRENT_WORD): New macro to access word value of locale entry. (__collate_table, __collate_extra): Declare new global variables for collation tables. * locale/programs/charmap-kw.gperf, locale/programs/charmap-kw.h, locale/programs/charmap.c, locale/programs/charset.c, locale/programs/charset.h, locale/programs/config.h, locale/programs/ctypedump.c, locale/programs/ld-collate.c, locale/programs/ld-ctype.c, locale/programs/ld-messages.c, locale/programs/ld-monetary.c, locale/programs/ld-numeric.c, locale/programs/ld-time.c, locale/programs/linereader.c, locale/programs/linereader.h, locale/programs/locale.c, locale/programs/localedef.c, locale/programs/locales.h, locale/programs/locfile-kw.gperf, locale/programs/locfile-kw.h, locale/programs/locfile-token.h, locale/programs/locfile.c, locale/programs/locfile.h, locale/programs/stringtrans.c, locale/programs/stringtrans.h: Implementation of locale related programs. * locale/weight.h: Functions to access collation tables. * posix/unistd.h: Define _POSIX2_LOCALEDEF. * stdio-common/printf_fp.c: Fix bug with printing certain numbers < 10^-1. Reported by Bill Metzenthen. * stdio-common/tfformat.c: Add new test for above bug. * string/strcoll.c, string/strxfrm.c: Real implementation of string collation according to ISO C. * wctype/Makefile, wctype/cname-lookup.h, wctype/iswctype.c, wctype/test_wctype.c, wctype/towctrans.c, wctype/wcfuncs.c, wctype/wctrans.c, wctype/wctype.c, wctype/wctype.h: New files. Implementation of wide character classes and mapping.
Diffstat (limited to 'locale/C-ctype.c')
-rw-r--r--locale/C-ctype.c344
1 files changed, 321 insertions, 23 deletions
diff --git a/locale/C-ctype.c b/locale/C-ctype.c
index 7a5c0c7b7f..8bf6beeea5 100644
--- a/locale/C-ctype.c
+++ b/locale/C-ctype.c
@@ -3,7 +3,7 @@
#include "localeinfo.h"
#include <endian.h>
-const char _nl_C_LC_CTYPE_class[] =
+const char _nl_C_LC_CTYPE_class[768] =
/* 0x80 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
/* 0x86 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
/* 0x8c */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
@@ -33,19 +33,19 @@ const char _nl_C_LC_CTYPE_class[] =
/* 0x1c */ "\002\000" "\002\000" "\002\000" "\002\000" "\001\140" "\004\300"
/* 0x22 */ "\004\300" "\004\300" "\004\300" "\004\300" "\004\300" "\004\300"
/* 0x28 */ "\004\300" "\004\300" "\004\300" "\004\300" "\004\300" "\004\300"
- /* 0x2e */ "\004\300" "\004\300" "\000\330" "\000\330" "\000\330" "\000\330"
- /* 0x34 */ "\000\330" "\000\330" "\000\330" "\000\330" "\000\330" "\000\330"
+ /* 0x2e */ "\004\300" "\004\300" "\010\330" "\010\330" "\010\330" "\010\330"
+ /* 0x34 */ "\010\330" "\010\330" "\010\330" "\010\330" "\010\330" "\010\330"
/* 0x3a */ "\004\300" "\004\300" "\004\300" "\004\300" "\004\300" "\004\300"
- /* 0x40 */ "\004\300" "\000\325" "\000\325" "\000\325" "\000\325" "\000\325"
- /* 0x46 */ "\000\325" "\000\305" "\000\305" "\000\305" "\000\305" "\000\305"
- /* 0x4c */ "\000\305" "\000\305" "\000\305" "\000\305" "\000\305" "\000\305"
- /* 0x52 */ "\000\305" "\000\305" "\000\305" "\000\305" "\000\305" "\000\305"
- /* 0x58 */ "\000\305" "\000\305" "\000\305" "\004\300" "\004\300" "\004\300"
- /* 0x5e */ "\004\300" "\004\300" "\004\300" "\000\326" "\000\326" "\000\326"
- /* 0x64 */ "\000\326" "\000\326" "\000\326" "\000\306" "\000\306" "\000\306"
- /* 0x6a */ "\000\306" "\000\306" "\000\306" "\000\306" "\000\306" "\000\306"
- /* 0x70 */ "\000\306" "\000\306" "\000\306" "\000\306" "\000\306" "\000\306"
- /* 0x76 */ "\000\306" "\000\306" "\000\306" "\000\306" "\000\306" "\004\300"
+ /* 0x40 */ "\004\300" "\010\325" "\010\325" "\010\325" "\010\325" "\010\325"
+ /* 0x46 */ "\010\325" "\010\305" "\010\305" "\010\305" "\010\305" "\010\305"
+ /* 0x4c */ "\010\305" "\010\305" "\010\305" "\010\305" "\010\305" "\010\305"
+ /* 0x52 */ "\010\305" "\010\305" "\010\305" "\010\305" "\010\305" "\010\305"
+ /* 0x58 */ "\010\305" "\010\305" "\010\305" "\004\300" "\004\300" "\004\300"
+ /* 0x5e */ "\004\300" "\004\300" "\004\300" "\010\326" "\010\326" "\010\326"
+ /* 0x64 */ "\010\326" "\010\326" "\010\326" "\010\306" "\010\306" "\010\306"
+ /* 0x6a */ "\010\306" "\010\306" "\010\306" "\010\306" "\010\306" "\010\306"
+ /* 0x70 */ "\010\306" "\010\306" "\010\306" "\010\306" "\010\306" "\010\306"
+ /* 0x76 */ "\010\306" "\010\306" "\010\306" "\010\306" "\010\306" "\004\300"
/* 0x7c */ "\004\300" "\004\300" "\004\300" "\002\000" "\002\000" "\002\000"
/* 0x82 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
/* 0x88 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
@@ -69,8 +69,96 @@ const char _nl_C_LC_CTYPE_class[] =
/* 0xf4 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
/* 0xfa */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
;
+const char _nl_C_LC_CTYPE_class32[1024] =
+ /* 0x00 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0x03 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0x06 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0x09 */ "\003\040\000\000" "\002\040\000\000" "\002\040\000\000"
+ /* 0x0c */ "\002\040\000\000" "\002\040\000\000" "\002\000\000\000"
+ /* 0x0f */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0x12 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0x15 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0x18 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0x1b */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0x1e */ "\002\000\000\000" "\002\000\000\000" "\001\140\000\000"
+ /* 0x21 */ "\004\300\000\000" "\004\300\000\000" "\004\300\000\000"
+ /* 0x24 */ "\004\300\000\000" "\004\300\000\000" "\004\300\000\000"
+ /* 0x27 */ "\004\300\000\000" "\004\300\000\000" "\004\300\000\000"
+ /* 0x2a */ "\004\300\000\000" "\004\300\000\000" "\004\300\000\000"
+ /* 0x2d */ "\004\300\000\000" "\004\300\000\000" "\004\300\000\000"
+ /* 0x30 */ "\010\330\000\000" "\010\330\000\000" "\010\330\000\000"
+ /* 0x33 */ "\010\330\000\000" "\010\330\000\000" "\010\330\000\000"
+ /* 0x36 */ "\010\330\000\000" "\010\330\000\000" "\010\330\000\000"
+ /* 0x39 */ "\010\330\000\000" "\004\300\000\000" "\004\300\000\000"
+ /* 0x3c */ "\004\300\000\000" "\004\300\000\000" "\004\300\000\000"
+ /* 0x3f */ "\004\300\000\000" "\004\300\000\000" "\010\325\000\000"
+ /* 0x42 */ "\010\325\000\000" "\010\325\000\000" "\010\325\000\000"
+ /* 0x45 */ "\010\325\000\000" "\010\325\000\000" "\010\305\000\000"
+ /* 0x48 */ "\010\305\000\000" "\010\305\000\000" "\010\305\000\000"
+ /* 0x4b */ "\010\305\000\000" "\010\305\000\000" "\010\305\000\000"
+ /* 0x4e */ "\010\305\000\000" "\010\305\000\000" "\010\305\000\000"
+ /* 0x51 */ "\010\305\000\000" "\010\305\000\000" "\010\305\000\000"
+ /* 0x54 */ "\010\305\000\000" "\010\305\000\000" "\010\305\000\000"
+ /* 0x57 */ "\010\305\000\000" "\010\305\000\000" "\010\305\000\000"
+ /* 0x5a */ "\010\305\000\000" "\004\300\000\000" "\004\300\000\000"
+ /* 0x5d */ "\004\300\000\000" "\004\300\000\000" "\004\300\000\000"
+ /* 0x60 */ "\004\300\000\000" "\010\326\000\000" "\010\326\000\000"
+ /* 0x63 */ "\010\326\000\000" "\010\326\000\000" "\010\326\000\000"
+ /* 0x66 */ "\010\326\000\000" "\010\306\000\000" "\010\306\000\000"
+ /* 0x69 */ "\010\306\000\000" "\010\306\000\000" "\010\306\000\000"
+ /* 0x6c */ "\010\306\000\000" "\010\306\000\000" "\010\306\000\000"
+ /* 0x6f */ "\010\306\000\000" "\010\306\000\000" "\010\306\000\000"
+ /* 0x72 */ "\010\306\000\000" "\010\306\000\000" "\010\306\000\000"
+ /* 0x75 */ "\010\306\000\000" "\010\306\000\000" "\010\306\000\000"
+ /* 0x78 */ "\010\306\000\000" "\010\306\000\000" "\010\306\000\000"
+ /* 0x7b */ "\004\300\000\000" "\004\300\000\000" "\004\300\000\000"
+ /* 0x7e */ "\004\300\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0x81 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0x84 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0x87 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0x8a */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0x8d */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0x90 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0x93 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0x96 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0x99 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0x9c */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0x9f */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0xa2 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0xa5 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0xa8 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0xab */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0xae */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0xb1 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0xb4 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0xb7 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0xba */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0xbd */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0xc0 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0xc3 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0xc6 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0xc9 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0xcc */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0xcf */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0xd2 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0xd5 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0xd8 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0xdb */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0xde */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0xe1 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0xe4 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0xe7 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0xea */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0xed */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0xf0 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0xf3 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0xf6 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0xf9 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0xfc */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000"
+ /* 0xff */ "\002\000\000\000"
+;
#if BYTE_ORDER == LITTLE_ENDIAN
-const char _nl_C_LC_CTYPE_toupper[] =
+const char _nl_C_LC_CTYPE_toupper[1536] =
/* 0x80 */ "\200\000\000\000" "\201\000\000\000" "\202\000\000\000"
/* 0x83 */ "\203\000\000\000" "\204\000\000\000" "\205\000\000\000"
/* 0x86 */ "\206\000\000\000" "\207\000\000\000" "\210\000\000\000"
@@ -200,7 +288,7 @@ const char _nl_C_LC_CTYPE_toupper[] =
/* 0xfa */ "\372\000\000\000" "\373\000\000\000" "\374\000\000\000"
/* 0xfd */ "\375\000\000\000" "\376\000\000\000" "\377\000\000\000"
;
-const char _nl_C_LC_CTYPE_tolower[] =
+const char _nl_C_LC_CTYPE_tolower[1536] =
/* 0x80 */ "\200\000\000\000" "\201\000\000\000" "\202\000\000\000"
/* 0x83 */ "\203\000\000\000" "\204\000\000\000" "\205\000\000\000"
/* 0x86 */ "\206\000\000\000" "\207\000\000\000" "\210\000\000\000"
@@ -330,8 +418,96 @@ const char _nl_C_LC_CTYPE_tolower[] =
/* 0xfa */ "\372\000\000\000" "\373\000\000\000" "\374\000\000\000"
/* 0xfd */ "\375\000\000\000" "\376\000\000\000" "\377\000\000\000"
;
+const char _nl_C_LC_CTYPE_names[1024] =
+ /* 0x00 */ "\000\000\000\000" "\001\000\000\000" "\002\000\000\000"
+ /* 0x03 */ "\003\000\000\000" "\004\000\000\000" "\005\000\000\000"
+ /* 0x06 */ "\006\000\000\000" "\007\000\000\000" "\010\000\000\000"
+ /* 0x09 */ "\011\000\000\000" "\012\000\000\000" "\013\000\000\000"
+ /* 0x0c */ "\014\000\000\000" "\015\000\000\000" "\016\000\000\000"
+ /* 0x0f */ "\017\000\000\000" "\020\000\000\000" "\021\000\000\000"
+ /* 0x12 */ "\022\000\000\000" "\023\000\000\000" "\024\000\000\000"
+ /* 0x15 */ "\025\000\000\000" "\026\000\000\000" "\027\000\000\000"
+ /* 0x18 */ "\030\000\000\000" "\031\000\000\000" "\032\000\000\000"
+ /* 0x1b */ "\033\000\000\000" "\034\000\000\000" "\035\000\000\000"
+ /* 0x1e */ "\036\000\000\000" "\037\000\000\000" "\040\000\000\000"
+ /* 0x21 */ "\041\000\000\000" "\042\000\000\000" "\043\000\000\000"
+ /* 0x24 */ "\044\000\000\000" "\045\000\000\000" "\046\000\000\000"
+ /* 0x27 */ "\047\000\000\000" "\050\000\000\000" "\051\000\000\000"
+ /* 0x2a */ "\052\000\000\000" "\053\000\000\000" "\054\000\000\000"
+ /* 0x2d */ "\055\000\000\000" "\056\000\000\000" "\057\000\000\000"
+ /* 0x30 */ "\060\000\000\000" "\061\000\000\000" "\062\000\000\000"
+ /* 0x33 */ "\063\000\000\000" "\064\000\000\000" "\065\000\000\000"
+ /* 0x36 */ "\066\000\000\000" "\067\000\000\000" "\070\000\000\000"
+ /* 0x39 */ "\071\000\000\000" "\072\000\000\000" "\073\000\000\000"
+ /* 0x3c */ "\074\000\000\000" "\075\000\000\000" "\076\000\000\000"
+ /* 0x3f */ "\077\000\000\000" "\100\000\000\000" "\101\000\000\000"
+ /* 0x42 */ "\102\000\000\000" "\103\000\000\000" "\104\000\000\000"
+ /* 0x45 */ "\105\000\000\000" "\106\000\000\000" "\107\000\000\000"
+ /* 0x48 */ "\110\000\000\000" "\111\000\000\000" "\112\000\000\000"
+ /* 0x4b */ "\113\000\000\000" "\114\000\000\000" "\115\000\000\000"
+ /* 0x4e */ "\116\000\000\000" "\117\000\000\000" "\120\000\000\000"
+ /* 0x51 */ "\121\000\000\000" "\122\000\000\000" "\123\000\000\000"
+ /* 0x54 */ "\124\000\000\000" "\125\000\000\000" "\126\000\000\000"
+ /* 0x57 */ "\127\000\000\000" "\130\000\000\000" "\131\000\000\000"
+ /* 0x5a */ "\132\000\000\000" "\133\000\000\000" "\134\000\000\000"
+ /* 0x5d */ "\135\000\000\000" "\136\000\000\000" "\137\000\000\000"
+ /* 0x60 */ "\140\000\000\000" "\141\000\000\000" "\142\000\000\000"
+ /* 0x63 */ "\143\000\000\000" "\144\000\000\000" "\145\000\000\000"
+ /* 0x66 */ "\146\000\000\000" "\147\000\000\000" "\150\000\000\000"
+ /* 0x69 */ "\151\000\000\000" "\152\000\000\000" "\153\000\000\000"
+ /* 0x6c */ "\154\000\000\000" "\155\000\000\000" "\156\000\000\000"
+ /* 0x6f */ "\157\000\000\000" "\160\000\000\000" "\161\000\000\000"
+ /* 0x72 */ "\162\000\000\000" "\163\000\000\000" "\164\000\000\000"
+ /* 0x75 */ "\165\000\000\000" "\166\000\000\000" "\167\000\000\000"
+ /* 0x78 */ "\170\000\000\000" "\171\000\000\000" "\172\000\000\000"
+ /* 0x7b */ "\173\000\000\000" "\174\000\000\000" "\175\000\000\000"
+ /* 0x7e */ "\176\000\000\000" "\177\000\000\000" "\200\000\000\000"
+ /* 0x81 */ "\201\000\000\000" "\202\000\000\000" "\203\000\000\000"
+ /* 0x84 */ "\204\000\000\000" "\205\000\000\000" "\206\000\000\000"
+ /* 0x87 */ "\207\000\000\000" "\210\000\000\000" "\211\000\000\000"
+ /* 0x8a */ "\212\000\000\000" "\213\000\000\000" "\214\000\000\000"
+ /* 0x8d */ "\215\000\000\000" "\216\000\000\000" "\217\000\000\000"
+ /* 0x90 */ "\220\000\000\000" "\221\000\000\000" "\222\000\000\000"
+ /* 0x93 */ "\223\000\000\000" "\224\000\000\000" "\225\000\000\000"
+ /* 0x96 */ "\226\000\000\000" "\227\000\000\000" "\230\000\000\000"
+ /* 0x99 */ "\231\000\000\000" "\232\000\000\000" "\233\000\000\000"
+ /* 0x9c */ "\234\000\000\000" "\235\000\000\000" "\236\000\000\000"
+ /* 0x9f */ "\237\000\000\000" "\240\000\000\000" "\241\000\000\000"
+ /* 0xa2 */ "\242\000\000\000" "\243\000\000\000" "\244\000\000\000"
+ /* 0xa5 */ "\245\000\000\000" "\246\000\000\000" "\247\000\000\000"
+ /* 0xa8 */ "\250\000\000\000" "\251\000\000\000" "\252\000\000\000"
+ /* 0xab */ "\253\000\000\000" "\254\000\000\000" "\255\000\000\000"
+ /* 0xae */ "\256\000\000\000" "\257\000\000\000" "\260\000\000\000"
+ /* 0xb1 */ "\261\000\000\000" "\262\000\000\000" "\263\000\000\000"
+ /* 0xb4 */ "\264\000\000\000" "\265\000\000\000" "\266\000\000\000"
+ /* 0xb7 */ "\267\000\000\000" "\270\000\000\000" "\271\000\000\000"
+ /* 0xba */ "\272\000\000\000" "\273\000\000\000" "\274\000\000\000"
+ /* 0xbd */ "\275\000\000\000" "\276\000\000\000" "\277\000\000\000"
+ /* 0xc0 */ "\300\000\000\000" "\301\000\000\000" "\302\000\000\000"
+ /* 0xc3 */ "\303\000\000\000" "\304\000\000\000" "\305\000\000\000"
+ /* 0xc6 */ "\306\000\000\000" "\307\000\000\000" "\310\000\000\000"
+ /* 0xc9 */ "\311\000\000\000" "\312\000\000\000" "\313\000\000\000"
+ /* 0xcc */ "\314\000\000\000" "\315\000\000\000" "\316\000\000\000"
+ /* 0xcf */ "\317\000\000\000" "\320\000\000\000" "\321\000\000\000"
+ /* 0xd2 */ "\322\000\000\000" "\323\000\000\000" "\324\000\000\000"
+ /* 0xd5 */ "\325\000\000\000" "\326\000\000\000" "\327\000\000\000"
+ /* 0xd8 */ "\330\000\000\000" "\331\000\000\000" "\332\000\000\000"
+ /* 0xdb */ "\333\000\000\000" "\334\000\000\000" "\335\000\000\000"
+ /* 0xde */ "\336\000\000\000" "\337\000\000\000" "\340\000\000\000"
+ /* 0xe1 */ "\341\000\000\000" "\342\000\000\000" "\343\000\000\000"
+ /* 0xe4 */ "\344\000\000\000" "\345\000\000\000" "\346\000\000\000"
+ /* 0xe7 */ "\347\000\000\000" "\350\000\000\000" "\351\000\000\000"
+ /* 0xea */ "\352\000\000\000" "\353\000\000\000" "\354\000\000\000"
+ /* 0xed */ "\355\000\000\000" "\356\000\000\000" "\357\000\000\000"
+ /* 0xf0 */ "\360\000\000\000" "\361\000\000\000" "\362\000\000\000"
+ /* 0xf3 */ "\363\000\000\000" "\364\000\000\000" "\365\000\000\000"
+ /* 0xf6 */ "\366\000\000\000" "\367\000\000\000" "\370\000\000\000"
+ /* 0xf9 */ "\371\000\000\000" "\372\000\000\000" "\373\000\000\000"
+ /* 0xfc */ "\374\000\000\000" "\375\000\000\000" "\376\000\000\000"
+ /* 0xff */ "\377\000\000\000"
+;
#elif BYTE_ORDER == BIG_ENDIAN
-const char _nl_C_LC_CTYPE_toupper[] =
+const char _nl_C_LC_CTYPE_toupper[1536] =
/* 0x80 */ "\000\000\000\200" "\000\000\000\201" "\000\000\000\202"
/* 0x83 */ "\000\000\000\203" "\000\000\000\204" "\000\000\000\205"
/* 0x86 */ "\000\000\000\206" "\000\000\000\207" "\000\000\000\210"
@@ -461,7 +637,7 @@ const char _nl_C_LC_CTYPE_toupper[] =
/* 0xfa */ "\000\000\000\372" "\000\000\000\373" "\000\000\000\374"
/* 0xfd */ "\000\000\000\375" "\000\000\000\376" "\000\000\000\377"
;
-const char _nl_C_LC_CTYPE_tolower[] =
+const char _nl_C_LC_CTYPE_tolower[1536] =
/* 0x80 */ "\000\000\000\200" "\000\000\000\201" "\000\000\000\202"
/* 0x83 */ "\000\000\000\203" "\000\000\000\204" "\000\000\000\205"
/* 0x86 */ "\000\000\000\206" "\000\000\000\207" "\000\000\000\210"
@@ -591,18 +767,140 @@ const char _nl_C_LC_CTYPE_tolower[] =
/* 0xfa */ "\000\000\000\372" "\000\000\000\373" "\000\000\000\374"
/* 0xfd */ "\000\000\000\375" "\000\000\000\376" "\000\000\000\377"
;
+const char _nl_C_LC_CTYPE_names[1024] =
+ /* 0x00 */ "\000\000\000\000" "\000\000\000\001" "\000\000\000\002"
+ /* 0x03 */ "\000\000\000\003" "\000\000\000\004" "\000\000\000\005"
+ /* 0x06 */ "\000\000\000\006" "\000\000\000\007" "\000\000\000\010"
+ /* 0x09 */ "\000\000\000\011" "\000\000\000\012" "\000\000\000\013"
+ /* 0x0c */ "\000\000\000\014" "\000\000\000\015" "\000\000\000\016"
+ /* 0x0f */ "\000\000\000\017" "\000\000\000\020" "\000\000\000\021"
+ /* 0x12 */ "\000\000\000\022" "\000\000\000\023" "\000\000\000\024"
+ /* 0x15 */ "\000\000\000\025" "\000\000\000\026" "\000\000\000\027"
+ /* 0x18 */ "\000\000\000\030" "\000\000\000\031" "\000\000\000\032"
+ /* 0x1b */ "\000\000\000\033" "\000\000\000\034" "\000\000\000\035"
+ /* 0x1e */ "\000\000\000\036" "\000\000\000\037" "\000\000\000\040"
+ /* 0x21 */ "\000\000\000\041" "\000\000\000\042" "\000\000\000\043"
+ /* 0x24 */ "\000\000\000\044" "\000\000\000\045" "\000\000\000\046"
+ /* 0x27 */ "\000\000\000\047" "\000\000\000\050" "\000\000\000\051"
+ /* 0x2a */ "\000\000\000\052" "\000\000\000\053" "\000\000\000\054"
+ /* 0x2d */ "\000\000\000\055" "\000\000\000\056" "\000\000\000\057"
+ /* 0x30 */ "\000\000\000\060" "\000\000\000\061" "\000\000\000\062"
+ /* 0x33 */ "\000\000\000\063" "\000\000\000\064" "\000\000\000\065"
+ /* 0x36 */ "\000\000\000\066" "\000\000\000\067" "\000\000\000\070"
+ /* 0x39 */ "\000\000\000\071" "\000\000\000\072" "\000\000\000\073"
+ /* 0x3c */ "\000\000\000\074" "\000\000\000\075" "\000\000\000\076"
+ /* 0x3f */ "\000\000\000\077" "\000\000\000\100" "\000\000\000\101"
+ /* 0x42 */ "\000\000\000\102" "\000\000\000\103" "\000\000\000\104"
+ /* 0x45 */ "\000\000\000\105" "\000\000\000\106" "\000\000\000\107"
+ /* 0x48 */ "\000\000\000\110" "\000\000\000\111" "\000\000\000\112"
+ /* 0x4b */ "\000\000\000\113" "\000\000\000\114" "\000\000\000\115"
+ /* 0x4e */ "\000\000\000\116" "\000\000\000\117" "\000\000\000\120"
+ /* 0x51 */ "\000\000\000\121" "\000\000\000\122" "\000\000\000\123"
+ /* 0x54 */ "\000\000\000\124" "\000\000\000\125" "\000\000\000\126"
+ /* 0x57 */ "\000\000\000\127" "\000\000\000\130" "\000\000\000\131"
+ /* 0x5a */ "\000\000\000\132" "\000\000\000\133" "\000\000\000\134"
+ /* 0x5d */ "\000\000\000\135" "\000\000\000\136" "\000\000\000\137"
+ /* 0x60 */ "\000\000\000\140" "\000\000\000\141" "\000\000\000\142"
+ /* 0x63 */ "\000\000\000\143" "\000\000\000\144" "\000\000\000\145"
+ /* 0x66 */ "\000\000\000\146" "\000\000\000\147" "\000\000\000\150"
+ /* 0x69 */ "\000\000\000\151" "\000\000\000\152" "\000\000\000\153"
+ /* 0x6c */ "\000\000\000\154" "\000\000\000\155" "\000\000\000\156"
+ /* 0x6f */ "\000\000\000\157" "\000\000\000\160" "\000\000\000\161"
+ /* 0x72 */ "\000\000\000\162" "\000\000\000\163" "\000\000\000\164"
+ /* 0x75 */ "\000\000\000\165" "\000\000\000\166" "\000\000\000\167"
+ /* 0x78 */ "\000\000\000\170" "\000\000\000\171" "\000\000\000\172"
+ /* 0x7b */ "\000\000\000\173" "\000\000\000\174" "\000\000\000\175"
+ /* 0x7e */ "\000\000\000\176" "\000\000\000\177" "\000\000\000\200"
+ /* 0x81 */ "\000\000\000\201" "\000\000\000\202" "\000\000\000\203"
+ /* 0x84 */ "\000\000\000\204" "\000\000\000\205" "\000\000\000\206"
+ /* 0x87 */ "\000\000\000\207" "\000\000\000\210" "\000\000\000\211"
+ /* 0x8a */ "\000\000\000\212" "\000\000\000\213" "\000\000\000\214"
+ /* 0x8d */ "\000\000\000\215" "\000\000\000\216" "\000\000\000\217"
+ /* 0x90 */ "\000\000\000\220" "\000\000\000\221" "\000\000\000\222"
+ /* 0x93 */ "\000\000\000\223" "\000\000\000\224" "\000\000\000\225"
+ /* 0x96 */ "\000\000\000\226" "\000\000\000\227" "\000\000\000\230"
+ /* 0x99 */ "\000\000\000\231" "\000\000\000\232" "\000\000\000\233"
+ /* 0x9c */ "\000\000\000\234" "\000\000\000\235" "\000\000\000\236"
+ /* 0x9f */ "\000\000\000\237" "\000\000\000\240" "\000\000\000\241"
+ /* 0xa2 */ "\000\000\000\242" "\000\000\000\243" "\000\000\000\244"
+ /* 0xa5 */ "\000\000\000\245" "\000\000\000\246" "\000\000\000\247"
+ /* 0xa8 */ "\000\000\000\250" "\000\000\000\251" "\000\000\000\252"
+ /* 0xab */ "\000\000\000\253" "\000\000\000\254" "\000\000\000\255"
+ /* 0xae */ "\000\000\000\256" "\000\000\000\257" "\000\000\000\260"
+ /* 0xb1 */ "\000\000\000\261" "\000\000\000\262" "\000\000\000\263"
+ /* 0xb4 */ "\000\000\000\264" "\000\000\000\265" "\000\000\000\266"
+ /* 0xb7 */ "\000\000\000\267" "\000\000\000\270" "\000\000\000\271"
+ /* 0xba */ "\000\000\000\272" "\000\000\000\273" "\000\000\000\274"
+ /* 0xbd */ "\000\000\000\275" "\000\000\000\276" "\000\000\000\277"
+ /* 0xc0 */ "\000\000\000\300" "\000\000\000\301" "\000\000\000\302"
+ /* 0xc3 */ "\000\000\000\303" "\000\000\000\304" "\000\000\000\305"
+ /* 0xc6 */ "\000\000\000\306" "\000\000\000\307" "\000\000\000\310"
+ /* 0xc9 */ "\000\000\000\311" "\000\000\000\312" "\000\000\000\313"
+ /* 0xcc */ "\000\000\000\314" "\000\000\000\315" "\000\000\000\316"
+ /* 0xcf */ "\000\000\000\317" "\000\000\000\320" "\000\000\000\321"
+ /* 0xd2 */ "\000\000\000\322" "\000\000\000\323" "\000\000\000\324"
+ /* 0xd5 */ "\000\000\000\325" "\000\000\000\326" "\000\000\000\327"
+ /* 0xd8 */ "\000\000\000\330" "\000\000\000\331" "\000\000\000\332"
+ /* 0xdb */ "\000\000\000\333" "\000\000\000\334" "\000\000\000\335"
+ /* 0xde */ "\000\000\000\336" "\000\000\000\337" "\000\000\000\340"
+ /* 0xe1 */ "\000\000\000\341" "\000\000\000\342" "\000\000\000\343"
+ /* 0xe4 */ "\000\000\000\344" "\000\000\000\345" "\000\000\000\346"
+ /* 0xe7 */ "\000\000\000\347" "\000\000\000\350" "\000\000\000\351"
+ /* 0xea */ "\000\000\000\352" "\000\000\000\353" "\000\000\000\354"
+ /* 0xed */ "\000\000\000\355" "\000\000\000\356" "\000\000\000\357"
+ /* 0xf0 */ "\000\000\000\360" "\000\000\000\361" "\000\000\000\362"
+ /* 0xf3 */ "\000\000\000\363" "\000\000\000\364" "\000\000\000\365"
+ /* 0xf6 */ "\000\000\000\366" "\000\000\000\367" "\000\000\000\370"
+ /* 0xf9 */ "\000\000\000\371" "\000\000\000\372" "\000\000\000\373"
+ /* 0xfc */ "\000\000\000\374" "\000\000\000\375" "\000\000\000\376"
+ /* 0xff */ "\000\000\000\377"
+;
#else
#error "BYTE_ORDER" BYTE_ORDER " not handled."
#endif
+const char _nl_C_LC_CTYPE_width[256] =
+/* 0x00 */ "\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001"
+/* 0x10 */ "\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001"
+/* 0x20 */ "\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001"
+/* 0x30 */ "\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001"
+/* 0x40 */ "\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001"
+/* 0x50 */ "\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001"
+/* 0x60 */ "\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001"
+/* 0x70 */ "\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001"
+/* 0x80 */ "\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001"
+/* 0x90 */ "\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001"
+/* 0xa0 */ "\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001"
+/* 0xb0 */ "\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001"
+/* 0xc0 */ "\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001"
+/* 0xd0 */ "\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001"
+/* 0xe0 */ "\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001"
+/* 0xf0 */ "\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001"
+;
-const struct locale_data _nl_C_LC_CTYPE =
+const struct locale_data _nl_C_LC_CTYPE =
{
NULL, 0, /* no file mapped */
- 5,
+ 13,
{
- _nl_C_LC_CTYPE_class,
- NULL, NULL,
- _nl_C_LC_CTYPE_toupper,
- _nl_C_LC_CTYPE_tolower
+ { string: _nl_C_LC_CTYPE_class },
+#if BYTE_ORDER == LITTLE_ENDIAN
+ { string: NULL }, { string: NULL },
+#endif
+ { string: _nl_C_LC_CTYPE_toupper },
+ { string: _nl_C_LC_CTYPE_tolower },
+ { string: NULL },
+#if BYTE_ORDER == BIG_ENDIAN
+ { string: NULL },
+#endif
+ { string: _nl_C_LC_CTYPE_class32 },
+ { string: _nl_C_LC_CTYPE_names },
+#if BYTE_ORDER == BIG_ENDIAN
+ { string: NULL },
+#endif
+ { word: 256 }, { word: 1 },
+ { string: "upper\0" "lower\0" "alpha\0" "digit\0" "xdigit\0" "space\0"
+ "print\0" "graph\0" "blank\0" "cntrl\0" "punct\0" "alnum\0" },
+ { string: "tolower\0" "toupper\0" },
+ { string: _nl_C_LC_CTYPE_width }
}
};