about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1995-03-10 05:01:07 +0000
committerRoland McGrath <roland@gnu.org>1995-03-10 05:01:07 +0000
commit40deae084780af51458714b5d0c5a88787c8fcd1 (patch)
treefc8c0db5f5181b5c93626f0eabfef849779fd7b1
parentff3d7ed36ae26261cc1c76e5f03ee053d65f9229 (diff)
downloadglibc-40deae084780af51458714b5d0c5a88787c8fcd1.tar.gz
glibc-40deae084780af51458714b5d0c5a88787c8fcd1.tar.xz
glibc-40deae084780af51458714b5d0c5a88787c8fcd1.zip
* locale/categories.def (LC_CTYPE): Merge CLASS_EB and CLASS_EL
 	into just CLASS.  Add standard/optional flag to all items.

	* locale/localeinfo.h (_NL_CURRENT_DEFINE): Fix typo.

	* ctype/ctype.h [__BYTE_ORDER == __LITTLE_ENDIAN] (_ISbit):
 	Rearrange defn to satisfy compiler.

	* locale/localeinfo.h: Declare _nl_current.
-rw-r--r--ChangeLog10
-rw-r--r--ctype/ctype.h2
-rw-r--r--locale/C-collate.c13
-rw-r--r--locale/C-ctype.c874
-rw-r--r--locale/C-messages.c10
-rw-r--r--locale/C-monetary.c32
-rw-r--r--locale/C-numeric.c8
-rw-r--r--locale/C-time.c90
-rw-r--r--locale/categories.def101
-rw-r--r--locale/localeinfo.h3
-rw-r--r--manual/stdio.texi4
11 files changed, 749 insertions, 398 deletions
diff --git a/ChangeLog b/ChangeLog
index a998cf72c9..31ae7027d8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
 Thu Mar  9 22:29:03 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
 
+	* locale/categories.def (LC_CTYPE): Merge CLASS_EB and CLASS_EL
+ 	into just CLASS.  Add standard/optional flag to all items.
+
+	* locale/localeinfo.h (_NL_CURRENT_DEFINE): Fix typo.
+
+	* ctype/ctype.h [__BYTE_ORDER == __LITTLE_ENDIAN] (_ISbit):
+ 	Rearrange defn to satisfy compiler.
+
+	* locale/localeinfo.h: Declare _nl_current.
+
 	* configure.in: Use AC_CHECK_TOOL for CC, AR, RANLIB.  Accept args
  	--enable-shared, --enable-profile, --enable-omitfp; pass settings
  	through to config.make.
diff --git a/ctype/ctype.h b/ctype/ctype.h
index c9129f08ec..025373c381 100644
--- a/ctype/ctype.h
+++ b/ctype/ctype.h
@@ -39,7 +39,7 @@ __BEGIN_DECLS
 #if __BYTE_ORDER == __BIG_ENDIAN
 #define _ISbit(bit)	(1 << bit)
 #else /* __BYTE_ORDER == __LITTLE_ENDIAN */
-#define _ISbit(bit)	((1 << bit) << (bit < 8 ? 8 : -8))
+#define _ISbit(bit)	(bit < 8 ? ((1 << bit) << 8) : ((1 << bit) >> 8))
 #endif
 
 enum
diff --git a/locale/C-collate.c b/locale/C-collate.c
new file mode 100644
index 0000000000..7211eb1498
--- /dev/null
+++ b/locale/C-collate.c
@@ -0,0 +1,13 @@
+/* Generated by GNU locale 0.1.
+   Copyright (C) 1995 Free Software Foundation, Inc.
+This is free software; see the source for copying conditions.
+There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
+PARTICULAR PURPOSE.  */
+
+#include "localeinfo.h"
+
+const struct locale_data _nl_C_LC_COLLATE =
+{
+  NULL, 0, /* no file mapped */
+  0,
+};
diff --git a/locale/C-ctype.c b/locale/C-ctype.c
index 2ee9d2cf8b..6a987209ed 100644
--- a/locale/C-ctype.c
+++ b/locale/C-ctype.c
@@ -1,292 +1,612 @@
-/* Generated by GNU locale 0.1.
-   Copyright (C) 1995 Free Software Foundation, Inc.
-This is free software; see the source for copying conditions.
-There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
-PARTICULAR PURPOSE.  */
+/* Generated by GNU locale 0.1.  */
 
 #include "localeinfo.h"
 #include <endian.h>
 
-#if BYTE_ORDER == BIG_ENDIAN
-const char _nl_C_LC_CTYPE_class[] =
-  /* 0x00 */ "\004\000" "\004\000" "\004\000" "\004\000" "\004\000" "\004\000"
-  /* 0x06 */ "\004\000" "\004\000" "\004\000" "\024\001" "\024\000" "\024\000"
-  /* 0x0c */ "\024\000" "\024\000" "\004\000" "\004\000" "\004\000" "\004\000"
-  /* 0x12 */ "\004\000" "\004\000" "\004\000" "\004\000" "\004\000" "\004\000"
-  /* 0x18 */ "\004\000" "\004\000" "\004\000" "\004\000" "\004\000" "\004\000"
-  /* 0x1e */ "\004\000" "\004\000" "\220\001" "\100\000" "\100\000" "\100\000"
-  /* 0x24 */ "\100\000" "\100\000" "\100\000" "\100\000" "\100\000" "\100\000"
-  /* 0x2a */ "\100\000" "\100\000" "\100\000" "\100\000" "\100\000" "\100\000"
-  /* 0x30 */ "\050\000" "\050\000" "\050\000" "\050\000" "\050\000" "\050\000"
-  /* 0x36 */ "\050\000" "\050\000" "\050\000" "\050\000" "\100\000" "\100\000"
-  /* 0x3c */ "\100\000" "\100\000" "\100\000" "\100\000" "\100\000" "\041\000"
-  /* 0x42 */ "\041\000" "\041\000" "\041\000" "\041\000" "\041\000" "\001\000"
-  /* 0x48 */ "\001\000" "\001\000" "\001\000" "\001\000" "\001\000" "\001\000"
-  /* 0x4e */ "\001\000" "\001\000" "\001\000" "\001\000" "\001\000" "\001\000"
-  /* 0x54 */ "\001\000" "\001\000" "\001\000" "\001\000" "\001\000" "\001\000"
-  /* 0x5a */ "\001\000" "\100\000" "\100\000" "\100\000" "\100\000" "\100\000"
-  /* 0x60 */ "\100\000" "\042\000" "\042\000" "\042\000" "\042\000" "\042\000"
-  /* 0x66 */ "\042\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
-  /* 0x6c */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
-  /* 0x72 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
-  /* 0x78 */ "\002\000" "\002\000" "\002\000" "\100\000" "\100\000" "\100\000"
-  /* 0x7e */ "\100\000" "\004\000" "\004\000" "\004\000" "\004\000" "\004\000"
-  /* 0x84 */ "\004\000" "\004\000" "\004\000" "\004\000" "\004\000" "\004\000"
-  /* 0x8a */ "\004\000" "\004\000" "\004\000" "\004\000" "\004\000" "\004\000"
-  /* 0x90 */ "\004\000" "\004\000" "\004\000" "\004\000" "\004\000" "\004\000"
-  /* 0x96 */ "\004\000" "\004\000" "\004\000" "\004\000" "\004\000" "\004\000"
-  /* 0x9c */ "\004\000" "\004\000" "\004\000" "\004\000" "\004\000" "\004\000"
-  /* 0xa2 */ "\004\000" "\004\000" "\004\000" "\004\000" "\004\000" "\004\000"
-  /* 0xa8 */ "\004\000" "\004\000" "\004\000" "\004\000" "\004\000" "\004\000"
-  /* 0xae */ "\004\000" "\004\000" "\004\000" "\004\000" "\004\000" "\004\000"
-  /* 0xb4 */ "\004\000" "\004\000" "\004\000" "\004\000" "\004\000" "\004\000"
-  /* 0xba */ "\004\000" "\004\000" "\004\000" "\004\000" "\004\000" "\004\000"
-  /* 0xc0 */ "\004\000" "\004\000" "\004\000" "\004\000" "\004\000" "\004\000"
-  /* 0xc6 */ "\004\000" "\004\000" "\004\000" "\004\000" "\004\000" "\004\000"
-  /* 0xcc */ "\004\000" "\004\000" "\004\000" "\004\000" "\004\000" "\004\000"
-  /* 0xd2 */ "\004\000" "\004\000" "\004\000" "\004\000" "\004\000" "\004\000"
-  /* 0xd8 */ "\004\000" "\004\000" "\004\000" "\004\000" "\004\000" "\004\000"
-  /* 0xde */ "\004\000" "\004\000" "\004\000" "\004\000" "\004\000" "\004\000"
-  /* 0xe4 */ "\004\000" "\004\000" "\004\000" "\004\000" "\004\000" "\004\000"
-  /* 0xea */ "\004\000" "\004\000" "\004\000" "\004\000" "\004\000" "\004\000"
-  /* 0xf0 */ "\004\000" "\004\000" "\004\000" "\004\000" "\004\000" "\004\000"
-  /* 0xf6 */ "\004\000" "\004\000" "\004\000" "\004\000" "\004\000" "\004\000"
-  /* 0xfc */ "\004\000" "\004\000" "\004\000" "\004\000";
-const char _nl_C_LC_CTYPE_toupper[] =
-  /* 0x00 */ "\000\000" "\001\000" "\002\000" "\003\000" "\004\000" "\005\000"
-  /* 0x06 */ "\006\000" "\007\000" "\010\000" "\011\000" "\012\000" "\013\000"
-  /* 0x0c */ "\014\000" "\015\000" "\016\000" "\017\000" "\020\000" "\021\000"
-  /* 0x12 */ "\022\000" "\023\000" "\024\000" "\025\000" "\026\000" "\027\000"
-  /* 0x18 */ "\030\000" "\031\000" "\032\000" "\033\000" "\034\000" "\035\000"
-  /* 0x1e */ "\036\000" "\037\000" "\040\000" "\041\000" "\042\000" "\043\000"
-  /* 0x24 */ "\044\000" "\045\000" "\046\000" "\047\000" "\050\000" "\051\000"
-  /* 0x2a */ "\052\000" "\053\000" "\054\000" "\055\000" "\056\000" "\057\000"
-  /* 0x30 */ "\060\000" "\061\000" "\062\000" "\063\000" "\064\000" "\065\000"
-  /* 0x36 */ "\066\000" "\067\000" "\070\000" "\071\000" "\072\000" "\073\000"
-  /* 0x3c */ "\074\000" "\075\000" "\076\000" "\077\000" "\100\000" "\101\000"
-  /* 0x42 */ "\102\000" "\103\000" "\104\000" "\105\000" "\106\000" "\107\000"
-  /* 0x48 */ "\110\000" "\111\000" "\112\000" "\113\000" "\114\000" "\115\000"
-  /* 0x4e */ "\116\000" "\117\000" "\120\000" "\121\000" "\122\000" "\123\000"
-  /* 0x54 */ "\124\000" "\125\000" "\126\000" "\127\000" "\130\000" "\131\000"
-  /* 0x5a */ "\132\000" "\133\000" "\134\000" "\135\000" "\136\000" "\137\000"
-  /* 0x60 */ "\140\000" "\101\000" "\102\000" "\103\000" "\104\000" "\105\000"
-  /* 0x66 */ "\106\000" "\107\000" "\110\000" "\111\000" "\112\000" "\113\000"
-  /* 0x6c */ "\114\000" "\115\000" "\116\000" "\117\000" "\120\000" "\121\000"
-  /* 0x72 */ "\122\000" "\123\000" "\124\000" "\125\000" "\126\000" "\127\000"
-  /* 0x78 */ "\130\000" "\131\000" "\132\000" "\173\000" "\174\000" "\175\000"
-  /* 0x7e */ "\176\000" "\177\000" "\200\000" "\201\000" "\202\000" "\203\000"
-  /* 0x84 */ "\204\000" "\205\000" "\206\000" "\207\000" "\210\000" "\211\000"
-  /* 0x8a */ "\212\000" "\213\000" "\214\000" "\215\000" "\216\000" "\217\000"
-  /* 0x90 */ "\220\000" "\221\000" "\222\000" "\223\000" "\224\000" "\225\000"
-  /* 0x96 */ "\226\000" "\227\000" "\230\000" "\231\000" "\232\000" "\233\000"
-  /* 0x9c */ "\234\000" "\235\000" "\236\000" "\237\000" "\240\000" "\241\000"
-  /* 0xa2 */ "\242\000" "\243\000" "\244\000" "\245\000" "\246\000" "\247\000"
-  /* 0xa8 */ "\250\000" "\251\000" "\252\000" "\253\000" "\254\000" "\255\000"
-  /* 0xae */ "\256\000" "\257\000" "\260\000" "\261\000" "\262\000" "\263\000"
-  /* 0xb4 */ "\264\000" "\265\000" "\266\000" "\267\000" "\270\000" "\271\000"
-  /* 0xba */ "\272\000" "\273\000" "\274\000" "\275\000" "\276\000" "\277\000"
-  /* 0xc0 */ "\300\000" "\301\000" "\302\000" "\303\000" "\304\000" "\305\000"
-  /* 0xc6 */ "\306\000" "\307\000" "\310\000" "\311\000" "\312\000" "\313\000"
-  /* 0xcc */ "\314\000" "\315\000" "\316\000" "\317\000" "\320\000" "\321\000"
-  /* 0xd2 */ "\322\000" "\323\000" "\324\000" "\325\000" "\326\000" "\327\000"
-  /* 0xd8 */ "\330\000" "\331\000" "\332\000" "\333\000" "\334\000" "\335\000"
-  /* 0xde */ "\336\000" "\337\000" "\340\000" "\341\000" "\342\000" "\343\000"
-  /* 0xe4 */ "\344\000" "\345\000" "\346\000" "\347\000" "\350\000" "\351\000"
-  /* 0xea */ "\352\000" "\353\000" "\354\000" "\355\000" "\356\000" "\357\000"
-  /* 0xf0 */ "\360\000" "\361\000" "\362\000" "\363\000" "\364\000" "\365\000"
-  /* 0xf6 */ "\366\000" "\367\000" "\370\000" "\371\000" "\372\000" "\373\000"
-  /* 0xfc */ "\374\000" "\375\000" "\376\000" "\377\000";
-const char _nl_C_LC_CTYPE_tolower[] =
-  /* 0x00 */ "\000\000" "\001\000" "\002\000" "\003\000" "\004\000" "\005\000"
-  /* 0x06 */ "\006\000" "\007\000" "\010\000" "\011\000" "\012\000" "\013\000"
-  /* 0x0c */ "\014\000" "\015\000" "\016\000" "\017\000" "\020\000" "\021\000"
-  /* 0x12 */ "\022\000" "\023\000" "\024\000" "\025\000" "\026\000" "\027\000"
-  /* 0x18 */ "\030\000" "\031\000" "\032\000" "\033\000" "\034\000" "\035\000"
-  /* 0x1e */ "\036\000" "\037\000" "\040\000" "\041\000" "\042\000" "\043\000"
-  /* 0x24 */ "\044\000" "\045\000" "\046\000" "\047\000" "\050\000" "\051\000"
-  /* 0x2a */ "\052\000" "\053\000" "\054\000" "\055\000" "\056\000" "\057\000"
-  /* 0x30 */ "\060\000" "\061\000" "\062\000" "\063\000" "\064\000" "\065\000"
-  /* 0x36 */ "\066\000" "\067\000" "\070\000" "\071\000" "\072\000" "\073\000"
-  /* 0x3c */ "\074\000" "\075\000" "\076\000" "\077\000" "\100\000" "\141\000"
-  /* 0x42 */ "\142\000" "\143\000" "\144\000" "\145\000" "\146\000" "\147\000"
-  /* 0x48 */ "\150\000" "\151\000" "\152\000" "\153\000" "\154\000" "\155\000"
-  /* 0x4e */ "\156\000" "\157\000" "\160\000" "\161\000" "\162\000" "\163\000"
-  /* 0x54 */ "\164\000" "\165\000" "\166\000" "\167\000" "\170\000" "\171\000"
-  /* 0x5a */ "\172\000" "\133\000" "\134\000" "\135\000" "\136\000" "\137\000"
-  /* 0x60 */ "\140\000" "\141\000" "\142\000" "\143\000" "\144\000" "\145\000"
-  /* 0x66 */ "\146\000" "\147\000" "\150\000" "\151\000" "\152\000" "\153\000"
-  /* 0x6c */ "\154\000" "\155\000" "\156\000" "\157\000" "\160\000" "\161\000"
-  /* 0x72 */ "\162\000" "\163\000" "\164\000" "\165\000" "\166\000" "\167\000"
-  /* 0x78 */ "\170\000" "\171\000" "\172\000" "\173\000" "\174\000" "\175\000"
-  /* 0x7e */ "\176\000" "\177\000" "\200\000" "\201\000" "\202\000" "\203\000"
-  /* 0x84 */ "\204\000" "\205\000" "\206\000" "\207\000" "\210\000" "\211\000"
-  /* 0x8a */ "\212\000" "\213\000" "\214\000" "\215\000" "\216\000" "\217\000"
-  /* 0x90 */ "\220\000" "\221\000" "\222\000" "\223\000" "\224\000" "\225\000"
-  /* 0x96 */ "\226\000" "\227\000" "\230\000" "\231\000" "\232\000" "\233\000"
-  /* 0x9c */ "\234\000" "\235\000" "\236\000" "\237\000" "\240\000" "\241\000"
-  /* 0xa2 */ "\242\000" "\243\000" "\244\000" "\245\000" "\246\000" "\247\000"
-  /* 0xa8 */ "\250\000" "\251\000" "\252\000" "\253\000" "\254\000" "\255\000"
-  /* 0xae */ "\256\000" "\257\000" "\260\000" "\261\000" "\262\000" "\263\000"
-  /* 0xb4 */ "\264\000" "\265\000" "\266\000" "\267\000" "\270\000" "\271\000"
-  /* 0xba */ "\272\000" "\273\000" "\274\000" "\275\000" "\276\000" "\277\000"
-  /* 0xc0 */ "\300\000" "\301\000" "\302\000" "\303\000" "\304\000" "\305\000"
-  /* 0xc6 */ "\306\000" "\307\000" "\310\000" "\311\000" "\312\000" "\313\000"
-  /* 0xcc */ "\314\000" "\315\000" "\316\000" "\317\000" "\320\000" "\321\000"
-  /* 0xd2 */ "\322\000" "\323\000" "\324\000" "\325\000" "\326\000" "\327\000"
-  /* 0xd8 */ "\330\000" "\331\000" "\332\000" "\333\000" "\334\000" "\335\000"
-  /* 0xde */ "\336\000" "\337\000" "\340\000" "\341\000" "\342\000" "\343\000"
-  /* 0xe4 */ "\344\000" "\345\000" "\346\000" "\347\000" "\350\000" "\351\000"
-  /* 0xea */ "\352\000" "\353\000" "\354\000" "\355\000" "\356\000" "\357\000"
-  /* 0xf0 */ "\360\000" "\361\000" "\362\000" "\363\000" "\364\000" "\365\000"
-  /* 0xf6 */ "\366\000" "\367\000" "\370\000" "\371\000" "\372\000" "\373\000"
-  /* 0xfc */ "\374\000" "\375\000" "\376\000" "\377\000" ;
-#elif BYTE_ORDER == LITTLE_ENDIAN
-const char _nl_C_LC_CTYPE_class[] =
-  /* 0x00 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
-  /* 0x06 */ "\000\004" "\000\004" "\000\004" "\001\024" "\000\024" "\000\024"
-  /* 0x0c */ "\000\024" "\000\024" "\000\004" "\000\004" "\000\004" "\000\004"
-  /* 0x12 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
-  /* 0x18 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
-  /* 0x1e */ "\000\004" "\000\004" "\001\220" "\000\100" "\000\100" "\000\100"
-  /* 0x24 */ "\000\100" "\000\100" "\000\100" "\000\100" "\000\100" "\000\100"
-  /* 0x2a */ "\000\100" "\000\100" "\000\100" "\000\100" "\000\100" "\000\100"
-  /* 0x30 */ "\000\050" "\000\050" "\000\050" "\000\050" "\000\050" "\000\050"
-  /* 0x36 */ "\000\050" "\000\050" "\000\050" "\000\050" "\000\100" "\000\100"
-  /* 0x3c */ "\000\100" "\000\100" "\000\100" "\000\100" "\000\100" "\000\041"
-  /* 0x42 */ "\000\041" "\000\041" "\000\041" "\000\041" "\000\041" "\000\001"
-  /* 0x48 */ "\000\001" "\000\001" "\000\001" "\000\001" "\000\001" "\000\001"
-  /* 0x4e */ "\000\001" "\000\001" "\000\001" "\000\001" "\000\001" "\000\001"
-  /* 0x54 */ "\000\001" "\000\001" "\000\001" "\000\001" "\000\001" "\000\001"
-  /* 0x5a */ "\000\001" "\000\100" "\000\100" "\000\100" "\000\100" "\000\100"
-  /* 0x60 */ "\000\100" "\000\042" "\000\042" "\000\042" "\000\042" "\000\042"
-  /* 0x66 */ "\000\042" "\000\002" "\000\002" "\000\002" "\000\002" "\000\002"
-  /* 0x6c */ "\000\002" "\000\002" "\000\002" "\000\002" "\000\002" "\000\002"
-  /* 0x72 */ "\000\002" "\000\002" "\000\002" "\000\002" "\000\002" "\000\002"
-  /* 0x78 */ "\000\002" "\000\002" "\000\002" "\000\100" "\000\100" "\000\100"
-  /* 0x7e */ "\000\100" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
-  /* 0x84 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
-  /* 0x8a */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
-  /* 0x90 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
-  /* 0x96 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
-  /* 0x9c */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
-  /* 0xa2 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
-  /* 0xa8 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
-  /* 0xae */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
-  /* 0xb4 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
-  /* 0xba */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
-  /* 0xc0 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
-  /* 0xc6 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
-  /* 0xcc */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
-  /* 0xd2 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
-  /* 0xd8 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
-  /* 0xde */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
-  /* 0xe4 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
-  /* 0xea */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
-  /* 0xf0 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
-  /* 0xf6 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
-  /* 0xfc */ "\000\004" "\000\004" "\000\004" "\000\004";
-const char _nl_C_LC_CTYPE_toupper[] =
-  /* 0x00 */ "\000\000" "\000\001" "\000\002" "\000\003" "\000\004" "\000\005"
-  /* 0x06 */ "\000\006" "\000\007" "\000\010" "\000\011" "\000\012" "\000\013"
-  /* 0x0c */ "\000\014" "\000\015" "\000\016" "\000\017" "\000\020" "\000\021"
-  /* 0x12 */ "\000\022" "\000\023" "\000\024" "\000\025" "\000\026" "\000\027"
-  /* 0x18 */ "\000\030" "\000\031" "\000\032" "\000\033" "\000\034" "\000\035"
-  /* 0x1e */ "\000\036" "\000\037" "\000\040" "\000\041" "\000\042" "\000\043"
-  /* 0x24 */ "\000\044" "\000\045" "\000\046" "\000\047" "\000\050" "\000\051"
-  /* 0x2a */ "\000\052" "\000\053" "\000\054" "\000\055" "\000\056" "\000\057"
-  /* 0x30 */ "\000\060" "\000\061" "\000\062" "\000\063" "\000\064" "\000\065"
-  /* 0x36 */ "\000\066" "\000\067" "\000\070" "\000\071" "\000\072" "\000\073"
-  /* 0x3c */ "\000\074" "\000\075" "\000\076" "\000\077" "\000\100" "\000\101"
-  /* 0x42 */ "\000\102" "\000\103" "\000\104" "\000\105" "\000\106" "\000\107"
-  /* 0x48 */ "\000\110" "\000\111" "\000\112" "\000\113" "\000\114" "\000\115"
-  /* 0x4e */ "\000\116" "\000\117" "\000\120" "\000\121" "\000\122" "\000\123"
-  /* 0x54 */ "\000\124" "\000\125" "\000\126" "\000\127" "\000\130" "\000\131"
-  /* 0x5a */ "\000\132" "\000\133" "\000\134" "\000\135" "\000\136" "\000\137"
-  /* 0x60 */ "\000\140" "\000\101" "\000\102" "\000\103" "\000\104" "\000\105"
-  /* 0x66 */ "\000\106" "\000\107" "\000\110" "\000\111" "\000\112" "\000\113"
-  /* 0x6c */ "\000\114" "\000\115" "\000\116" "\000\117" "\000\120" "\000\121"
-  /* 0x72 */ "\000\122" "\000\123" "\000\124" "\000\125" "\000\126" "\000\127"
-  /* 0x78 */ "\000\130" "\000\131" "\000\132" "\000\173" "\000\174" "\000\175"
-  /* 0x7e */ "\000\176" "\000\177" "\000\200" "\000\201" "\000\202" "\000\203"
-  /* 0x84 */ "\000\204" "\000\205" "\000\206" "\000\207" "\000\210" "\000\211"
-  /* 0x8a */ "\000\212" "\000\213" "\000\214" "\000\215" "\000\216" "\000\217"
-  /* 0x90 */ "\000\220" "\000\221" "\000\222" "\000\223" "\000\224" "\000\225"
-  /* 0x96 */ "\000\226" "\000\227" "\000\230" "\000\231" "\000\232" "\000\233"
-  /* 0x9c */ "\000\234" "\000\235" "\000\236" "\000\237" "\000\240" "\000\241"
-  /* 0xa2 */ "\000\242" "\000\243" "\000\244" "\000\245" "\000\246" "\000\247"
-  /* 0xa8 */ "\000\250" "\000\251" "\000\252" "\000\253" "\000\254" "\000\255"
-  /* 0xae */ "\000\256" "\000\257" "\000\260" "\000\261" "\000\262" "\000\263"
-  /* 0xb4 */ "\000\264" "\000\265" "\000\266" "\000\267" "\000\270" "\000\271"
-  /* 0xba */ "\000\272" "\000\273" "\000\274" "\000\275" "\000\276" "\000\277"
-  /* 0xc0 */ "\000\300" "\000\301" "\000\302" "\000\303" "\000\304" "\000\305"
-  /* 0xc6 */ "\000\306" "\000\307" "\000\310" "\000\311" "\000\312" "\000\313"
-  /* 0xcc */ "\000\314" "\000\315" "\000\316" "\000\317" "\000\320" "\000\321"
-  /* 0xd2 */ "\000\322" "\000\323" "\000\324" "\000\325" "\000\326" "\000\327"
-  /* 0xd8 */ "\000\330" "\000\331" "\000\332" "\000\333" "\000\334" "\000\335"
-  /* 0xde */ "\000\336" "\000\337" "\000\340" "\000\341" "\000\342" "\000\343"
-  /* 0xe4 */ "\000\344" "\000\345" "\000\346" "\000\347" "\000\350" "\000\351"
-  /* 0xea */ "\000\352" "\000\353" "\000\354" "\000\355" "\000\356" "\000\357"
-  /* 0xf0 */ "\000\360" "\000\361" "\000\362" "\000\363" "\000\364" "\000\365"
-  /* 0xf6 */ "\000\366" "\000\367" "\000\370" "\000\371" "\000\372" "\000\373"
-  /* 0xfc */ "\000\374" "\000\375" "\000\376" "\000\377" ;
-const char _nl_C_LC_CTYPE_tolower[] =
-  /* 0x00 */ "\000\000" "\000\001" "\000\002" "\000\003" "\000\004" "\000\005"
-  /* 0x06 */ "\000\006" "\000\007" "\000\010" "\000\011" "\000\012" "\000\013"
-  /* 0x0c */ "\000\014" "\000\015" "\000\016" "\000\017" "\000\020" "\000\021"
-  /* 0x12 */ "\000\022" "\000\023" "\000\024" "\000\025" "\000\026" "\000\027"
-  /* 0x18 */ "\000\030" "\000\031" "\000\032" "\000\033" "\000\034" "\000\035"
-  /* 0x1e */ "\000\036" "\000\037" "\000\040" "\000\041" "\000\042" "\000\043"
-  /* 0x24 */ "\000\044" "\000\045" "\000\046" "\000\047" "\000\050" "\000\051"
-  /* 0x2a */ "\000\052" "\000\053" "\000\054" "\000\055" "\000\056" "\000\057"
-  /* 0x30 */ "\000\060" "\000\061" "\000\062" "\000\063" "\000\064" "\000\065"
-  /* 0x36 */ "\000\066" "\000\067" "\000\070" "\000\071" "\000\072" "\000\073"
-  /* 0x3c */ "\000\074" "\000\075" "\000\076" "\000\077" "\000\100" "\000\141"
-  /* 0x42 */ "\000\142" "\000\143" "\000\144" "\000\145" "\000\146" "\000\147"
-  /* 0x48 */ "\000\150" "\000\151" "\000\152" "\000\153" "\000\154" "\000\155"
-  /* 0x4e */ "\000\156" "\000\157" "\000\160" "\000\161" "\000\162" "\000\163"
-  /* 0x54 */ "\000\164" "\000\165" "\000\166" "\000\167" "\000\170" "\000\171"
-  /* 0x5a */ "\000\172" "\000\133" "\000\134" "\000\135" "\000\136" "\000\137"
-  /* 0x60 */ "\000\140" "\000\141" "\000\142" "\000\143" "\000\144" "\000\145"
-  /* 0x66 */ "\000\146" "\000\147" "\000\150" "\000\151" "\000\152" "\000\153"
-  /* 0x6c */ "\000\154" "\000\155" "\000\156" "\000\157" "\000\160" "\000\161"
-  /* 0x72 */ "\000\162" "\000\163" "\000\164" "\000\165" "\000\166" "\000\167"
-  /* 0x78 */ "\000\170" "\000\171" "\000\172" "\000\173" "\000\174" "\000\175"
-  /* 0x7e */ "\000\176" "\000\177" "\000\200" "\000\201" "\000\202" "\000\203"
-  /* 0x84 */ "\000\204" "\000\205" "\000\206" "\000\207" "\000\210" "\000\211"
-  /* 0x8a */ "\000\212" "\000\213" "\000\214" "\000\215" "\000\216" "\000\217"
-  /* 0x90 */ "\000\220" "\000\221" "\000\222" "\000\223" "\000\224" "\000\225"
-  /* 0x96 */ "\000\226" "\000\227" "\000\230" "\000\231" "\000\232" "\000\233"
-  /* 0x9c */ "\000\234" "\000\235" "\000\236" "\000\237" "\000\240" "\000\241"
-  /* 0xa2 */ "\000\242" "\000\243" "\000\244" "\000\245" "\000\246" "\000\247"
-  /* 0xa8 */ "\000\250" "\000\251" "\000\252" "\000\253" "\000\254" "\000\255"
-  /* 0xae */ "\000\256" "\000\257" "\000\260" "\000\261" "\000\262" "\000\263"
-  /* 0xb4 */ "\000\264" "\000\265" "\000\266" "\000\267" "\000\270" "\000\271"
-  /* 0xba */ "\000\272" "\000\273" "\000\274" "\000\275" "\000\276" "\000\277"
-  /* 0xc0 */ "\000\300" "\000\301" "\000\302" "\000\303" "\000\304" "\000\305"
-  /* 0xc6 */ "\000\306" "\000\307" "\000\310" "\000\311" "\000\312" "\000\313"
-  /* 0xcc */ "\000\314" "\000\315" "\000\316" "\000\317" "\000\320" "\000\321"
-  /* 0xd2 */ "\000\322" "\000\323" "\000\324" "\000\325" "\000\326" "\000\327"
-  /* 0xd8 */ "\000\330" "\000\331" "\000\332" "\000\333" "\000\334" "\000\335"
-  /* 0xde */ "\000\336" "\000\337" "\000\340" "\000\341" "\000\342" "\000\343"
-  /* 0xe4 */ "\000\344" "\000\345" "\000\346" "\000\347" "\000\350" "\000\351"
-  /* 0xea */ "\000\352" "\000\353" "\000\354" "\000\355" "\000\356" "\000\357"
-  /* 0xf0 */ "\000\360" "\000\361" "\000\362" "\000\363" "\000\364" "\000\365"
-  /* 0xf6 */ "\000\366" "\000\367" "\000\370" "\000\371" "\000\372" "\000\373"
-  /* 0xfc */ "\000\374" "\000\375" "\000\376" "\000\377" ;
+static const char _nl_C_LC_CTYPE_class[] = 
+  /* 0x80 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0x86 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0x8c */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0x92 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0x98 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0x9e */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0xa4 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0xaa */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0xb0 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0xb6 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0xbc */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0xc2 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0xc8 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0xce */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0xd4 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0xda */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0xe0 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0xe6 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0xec */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0xf2 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0xf8 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0xfe */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0x04 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\001\024"
+  /* 0x0a */ "\000\024" "\000\024" "\000\024" "\000\024" "\000\004" "\000\004"
+  /* 0x10 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0x16 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0x1c */ "\000\004" "\000\004" "\000\004" "\000\004" "\001\220" "\000\100"
+  /* 0x22 */ "\000\100" "\000\100" "\000\100" "\000\100" "\000\100" "\000\100"
+  /* 0x28 */ "\000\100" "\000\100" "\000\100" "\000\100" "\000\100" "\000\100"
+  /* 0x2e */ "\000\100" "\000\100" "\000\050" "\000\050" "\000\050" "\000\050"
+  /* 0x34 */ "\000\050" "\000\050" "\000\050" "\000\050" "\000\050" "\000\050"
+  /* 0x3a */ "\000\100" "\000\100" "\000\100" "\000\100" "\000\100" "\000\100"
+  /* 0x40 */ "\000\100" "\000\041" "\000\041" "\000\041" "\000\041" "\000\041"
+  /* 0x46 */ "\000\041" "\000\001" "\000\001" "\000\001" "\000\001" "\000\001"
+  /* 0x4c */ "\000\001" "\000\001" "\000\001" "\000\001" "\000\001" "\000\001"
+  /* 0x52 */ "\000\001" "\000\001" "\000\001" "\000\001" "\000\001" "\000\001"
+  /* 0x58 */ "\000\001" "\000\001" "\000\001" "\000\100" "\000\100" "\000\100"
+  /* 0x5e */ "\000\100" "\000\100" "\000\100" "\000\042" "\000\042" "\000\042"
+  /* 0x64 */ "\000\042" "\000\042" "\000\042" "\000\002" "\000\002" "\000\002"
+  /* 0x6a */ "\000\002" "\000\002" "\000\002" "\000\002" "\000\002" "\000\002"
+  /* 0x70 */ "\000\002" "\000\002" "\000\002" "\000\002" "\000\002" "\000\002"
+  /* 0x76 */ "\000\002" "\000\002" "\000\002" "\000\002" "\000\002" "\000\100"
+  /* 0x7c */ "\000\100" "\000\100" "\000\100" "\000\004" "\000\004" "\000\004"
+  /* 0x82 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0x88 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0x8e */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0x94 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0x9a */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0xa0 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0xa6 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0xac */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0xb2 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0xb8 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0xbe */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0xc4 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0xca */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0xd0 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0xd6 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0xdc */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0xe2 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0xe8 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0xee */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0xf4 */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+  /* 0xfa */ "\000\004" "\000\004" "\000\004" "\000\004" "\000\004" "\000\004"
+;
+#if BYTE_ORDER == LITTLE_ENDIAN
+static const char _nl_C_LC_CTYPE_toupper[] = 
+  /* 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"
+  /* 0x89 */ "\211\000\000\000" "\212\000\000\000" "\213\000\000\000"
+  /* 0x8c */ "\214\000\000\000" "\215\000\000\000" "\216\000\000\000"
+  /* 0x8f */ "\217\000\000\000" "\220\000\000\000" "\221\000\000\000"
+  /* 0x92 */ "\222\000\000\000" "\223\000\000\000" "\224\000\000\000"
+  /* 0x95 */ "\225\000\000\000" "\226\000\000\000" "\227\000\000\000"
+  /* 0x98 */ "\230\000\000\000" "\231\000\000\000" "\232\000\000\000"
+  /* 0x9b */ "\233\000\000\000" "\234\000\000\000" "\235\000\000\000"
+  /* 0x9e */ "\236\000\000\000" "\237\000\000\000" "\240\000\000\000"
+  /* 0xa1 */ "\241\000\000\000" "\242\000\000\000" "\243\000\000\000"
+  /* 0xa4 */ "\244\000\000\000" "\245\000\000\000" "\246\000\000\000"
+  /* 0xa7 */ "\247\000\000\000" "\250\000\000\000" "\251\000\000\000"
+  /* 0xaa */ "\252\000\000\000" "\253\000\000\000" "\254\000\000\000"
+  /* 0xad */ "\255\000\000\000" "\256\000\000\000" "\257\000\000\000"
+  /* 0xb0 */ "\260\000\000\000" "\261\000\000\000" "\262\000\000\000"
+  /* 0xb3 */ "\263\000\000\000" "\264\000\000\000" "\265\000\000\000"
+  /* 0xb6 */ "\266\000\000\000" "\267\000\000\000" "\270\000\000\000"
+  /* 0xb9 */ "\271\000\000\000" "\272\000\000\000" "\273\000\000\000"
+  /* 0xbc */ "\274\000\000\000" "\275\000\000\000" "\276\000\000\000"
+  /* 0xbf */ "\277\000\000\000" "\300\000\000\000" "\301\000\000\000"
+  /* 0xc2 */ "\302\000\000\000" "\303\000\000\000" "\304\000\000\000"
+  /* 0xc5 */ "\305\000\000\000" "\306\000\000\000" "\307\000\000\000"
+  /* 0xc8 */ "\310\000\000\000" "\311\000\000\000" "\312\000\000\000"
+  /* 0xcb */ "\313\000\000\000" "\314\000\000\000" "\315\000\000\000"
+  /* 0xce */ "\316\000\000\000" "\317\000\000\000" "\320\000\000\000"
+  /* 0xd1 */ "\321\000\000\000" "\322\000\000\000" "\323\000\000\000"
+  /* 0xd4 */ "\324\000\000\000" "\325\000\000\000" "\326\000\000\000"
+  /* 0xd7 */ "\327\000\000\000" "\330\000\000\000" "\331\000\000\000"
+  /* 0xda */ "\332\000\000\000" "\333\000\000\000" "\334\000\000\000"
+  /* 0xdd */ "\335\000\000\000" "\336\000\000\000" "\337\000\000\000"
+  /* 0xe0 */ "\340\000\000\000" "\341\000\000\000" "\342\000\000\000"
+  /* 0xe3 */ "\343\000\000\000" "\344\000\000\000" "\345\000\000\000"
+  /* 0xe6 */ "\346\000\000\000" "\347\000\000\000" "\350\000\000\000"
+  /* 0xe9 */ "\351\000\000\000" "\352\000\000\000" "\353\000\000\000"
+  /* 0xec */ "\354\000\000\000" "\355\000\000\000" "\356\000\000\000"
+  /* 0xef */ "\357\000\000\000" "\360\000\000\000" "\361\000\000\000"
+  /* 0xf2 */ "\362\000\000\000" "\363\000\000\000" "\364\000\000\000"
+  /* 0xf5 */ "\365\000\000\000" "\366\000\000\000" "\367\000\000\000"
+  /* 0xf8 */ "\370\000\000\000" "\371\000\000\000" "\372\000\000\000"
+  /* 0xfb */ "\373\000\000\000" "\374\000\000\000" "\375\000\000\000"
+  /* 0xfe */ "\376\000\000\000" "\377\000\000\000" "\000\000\000\000"
+  /* 0x01 */ "\001\000\000\000" "\002\000\000\000" "\003\000\000\000"
+  /* 0x04 */ "\004\000\000\000" "\005\000\000\000" "\006\000\000\000"
+  /* 0x07 */ "\007\000\000\000" "\010\000\000\000" "\011\000\000\000"
+  /* 0x0a */ "\012\000\000\000" "\013\000\000\000" "\014\000\000\000"
+  /* 0x0d */ "\015\000\000\000" "\016\000\000\000" "\017\000\000\000"
+  /* 0x10 */ "\020\000\000\000" "\021\000\000\000" "\022\000\000\000"
+  /* 0x13 */ "\023\000\000\000" "\024\000\000\000" "\025\000\000\000"
+  /* 0x16 */ "\026\000\000\000" "\027\000\000\000" "\030\000\000\000"
+  /* 0x19 */ "\031\000\000\000" "\032\000\000\000" "\033\000\000\000"
+  /* 0x1c */ "\034\000\000\000" "\035\000\000\000" "\036\000\000\000"
+  /* 0x1f */ "\037\000\000\000" "\040\000\000\000" "\041\000\000\000"
+  /* 0x22 */ "\042\000\000\000" "\043\000\000\000" "\044\000\000\000"
+  /* 0x25 */ "\045\000\000\000" "\046\000\000\000" "\047\000\000\000"
+  /* 0x28 */ "\050\000\000\000" "\051\000\000\000" "\052\000\000\000"
+  /* 0x2b */ "\053\000\000\000" "\054\000\000\000" "\055\000\000\000"
+  /* 0x2e */ "\056\000\000\000" "\057\000\000\000" "\060\000\000\000"
+  /* 0x31 */ "\061\000\000\000" "\062\000\000\000" "\063\000\000\000"
+  /* 0x34 */ "\064\000\000\000" "\065\000\000\000" "\066\000\000\000"
+  /* 0x37 */ "\067\000\000\000" "\070\000\000\000" "\071\000\000\000"
+  /* 0x3a */ "\072\000\000\000" "\073\000\000\000" "\074\000\000\000"
+  /* 0x3d */ "\075\000\000\000" "\076\000\000\000" "\077\000\000\000"
+  /* 0x40 */ "\100\000\000\000" "\101\000\000\000" "\102\000\000\000"
+  /* 0x43 */ "\103\000\000\000" "\104\000\000\000" "\105\000\000\000"
+  /* 0x46 */ "\106\000\000\000" "\107\000\000\000" "\110\000\000\000"
+  /* 0x49 */ "\111\000\000\000" "\112\000\000\000" "\113\000\000\000"
+  /* 0x4c */ "\114\000\000\000" "\115\000\000\000" "\116\000\000\000"
+  /* 0x4f */ "\117\000\000\000" "\120\000\000\000" "\121\000\000\000"
+  /* 0x52 */ "\122\000\000\000" "\123\000\000\000" "\124\000\000\000"
+  /* 0x55 */ "\125\000\000\000" "\126\000\000\000" "\127\000\000\000"
+  /* 0x58 */ "\130\000\000\000" "\131\000\000\000" "\132\000\000\000"
+  /* 0x5b */ "\133\000\000\000" "\134\000\000\000" "\135\000\000\000"
+  /* 0x5e */ "\136\000\000\000" "\137\000\000\000" "\140\000\000\000"
+  /* 0x61 */ "\101\000\000\000" "\102\000\000\000" "\103\000\000\000"
+  /* 0x64 */ "\104\000\000\000" "\105\000\000\000" "\106\000\000\000"
+  /* 0x67 */ "\107\000\000\000" "\110\000\000\000" "\111\000\000\000"
+  /* 0x6a */ "\112\000\000\000" "\113\000\000\000" "\114\000\000\000"
+  /* 0x6d */ "\115\000\000\000" "\116\000\000\000" "\117\000\000\000"
+  /* 0x70 */ "\120\000\000\000" "\121\000\000\000" "\122\000\000\000"
+  /* 0x73 */ "\123\000\000\000" "\124\000\000\000" "\125\000\000\000"
+  /* 0x76 */ "\126\000\000\000" "\127\000\000\000" "\130\000\000\000"
+  /* 0x79 */ "\131\000\000\000" "\132\000\000\000" "\173\000\000\000"
+  /* 0x7c */ "\174\000\000\000" "\175\000\000\000" "\176\000\000\000"
+  /* 0x7f */ "\177\000\000\000" "\200\000\000\000" "\201\000\000\000"
+  /* 0x82 */ "\202\000\000\000" "\203\000\000\000" "\204\000\000\000"
+  /* 0x85 */ "\205\000\000\000" "\206\000\000\000" "\207\000\000\000"
+  /* 0x88 */ "\210\000\000\000" "\211\000\000\000" "\212\000\000\000"
+  /* 0x8b */ "\213\000\000\000" "\214\000\000\000" "\215\000\000\000"
+  /* 0x8e */ "\216\000\000\000" "\217\000\000\000" "\220\000\000\000"
+  /* 0x91 */ "\221\000\000\000" "\222\000\000\000" "\223\000\000\000"
+  /* 0x94 */ "\224\000\000\000" "\225\000\000\000" "\226\000\000\000"
+  /* 0x97 */ "\227\000\000\000" "\230\000\000\000" "\231\000\000\000"
+  /* 0x9a */ "\232\000\000\000" "\233\000\000\000" "\234\000\000\000"
+  /* 0x9d */ "\235\000\000\000" "\236\000\000\000" "\237\000\000\000"
+  /* 0xa0 */ "\240\000\000\000" "\241\000\000\000" "\242\000\000\000"
+  /* 0xa3 */ "\243\000\000\000" "\244\000\000\000" "\245\000\000\000"
+  /* 0xa6 */ "\246\000\000\000" "\247\000\000\000" "\250\000\000\000"
+  /* 0xa9 */ "\251\000\000\000" "\252\000\000\000" "\253\000\000\000"
+  /* 0xac */ "\254\000\000\000" "\255\000\000\000" "\256\000\000\000"
+  /* 0xaf */ "\257\000\000\000" "\260\000\000\000" "\261\000\000\000"
+  /* 0xb2 */ "\262\000\000\000" "\263\000\000\000" "\264\000\000\000"
+  /* 0xb5 */ "\265\000\000\000" "\266\000\000\000" "\267\000\000\000"
+  /* 0xb8 */ "\270\000\000\000" "\271\000\000\000" "\272\000\000\000"
+  /* 0xbb */ "\273\000\000\000" "\274\000\000\000" "\275\000\000\000"
+  /* 0xbe */ "\276\000\000\000" "\277\000\000\000" "\300\000\000\000"
+  /* 0xc1 */ "\301\000\000\000" "\302\000\000\000" "\303\000\000\000"
+  /* 0xc4 */ "\304\000\000\000" "\305\000\000\000" "\306\000\000\000"
+  /* 0xc7 */ "\307\000\000\000" "\310\000\000\000" "\311\000\000\000"
+  /* 0xca */ "\312\000\000\000" "\313\000\000\000" "\314\000\000\000"
+  /* 0xcd */ "\315\000\000\000" "\316\000\000\000" "\317\000\000\000"
+  /* 0xd0 */ "\320\000\000\000" "\321\000\000\000" "\322\000\000\000"
+  /* 0xd3 */ "\323\000\000\000" "\324\000\000\000" "\325\000\000\000"
+  /* 0xd6 */ "\326\000\000\000" "\327\000\000\000" "\330\000\000\000"
+  /* 0xd9 */ "\331\000\000\000" "\332\000\000\000" "\333\000\000\000"
+  /* 0xdc */ "\334\000\000\000" "\335\000\000\000" "\336\000\000\000"
+  /* 0xdf */ "\337\000\000\000" "\340\000\000\000" "\341\000\000\000"
+  /* 0xe2 */ "\342\000\000\000" "\343\000\000\000" "\344\000\000\000"
+  /* 0xe5 */ "\345\000\000\000" "\346\000\000\000" "\347\000\000\000"
+  /* 0xe8 */ "\350\000\000\000" "\351\000\000\000" "\352\000\000\000"
+  /* 0xeb */ "\353\000\000\000" "\354\000\000\000" "\355\000\000\000"
+  /* 0xee */ "\356\000\000\000" "\357\000\000\000" "\360\000\000\000"
+  /* 0xf1 */ "\361\000\000\000" "\362\000\000\000" "\363\000\000\000"
+  /* 0xf4 */ "\364\000\000\000" "\365\000\000\000" "\366\000\000\000"
+  /* 0xf7 */ "\367\000\000\000" "\370\000\000\000" "\371\000\000\000"
+  /* 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"
+;
+static const char _nl_C_LC_CTYPE_tolower[] = 
+  /* 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"
+  /* 0x89 */ "\211\000\000\000" "\212\000\000\000" "\213\000\000\000"
+  /* 0x8c */ "\214\000\000\000" "\215\000\000\000" "\216\000\000\000"
+  /* 0x8f */ "\217\000\000\000" "\220\000\000\000" "\221\000\000\000"
+  /* 0x92 */ "\222\000\000\000" "\223\000\000\000" "\224\000\000\000"
+  /* 0x95 */ "\225\000\000\000" "\226\000\000\000" "\227\000\000\000"
+  /* 0x98 */ "\230\000\000\000" "\231\000\000\000" "\232\000\000\000"
+  /* 0x9b */ "\233\000\000\000" "\234\000\000\000" "\235\000\000\000"
+  /* 0x9e */ "\236\000\000\000" "\237\000\000\000" "\240\000\000\000"
+  /* 0xa1 */ "\241\000\000\000" "\242\000\000\000" "\243\000\000\000"
+  /* 0xa4 */ "\244\000\000\000" "\245\000\000\000" "\246\000\000\000"
+  /* 0xa7 */ "\247\000\000\000" "\250\000\000\000" "\251\000\000\000"
+  /* 0xaa */ "\252\000\000\000" "\253\000\000\000" "\254\000\000\000"
+  /* 0xad */ "\255\000\000\000" "\256\000\000\000" "\257\000\000\000"
+  /* 0xb0 */ "\260\000\000\000" "\261\000\000\000" "\262\000\000\000"
+  /* 0xb3 */ "\263\000\000\000" "\264\000\000\000" "\265\000\000\000"
+  /* 0xb6 */ "\266\000\000\000" "\267\000\000\000" "\270\000\000\000"
+  /* 0xb9 */ "\271\000\000\000" "\272\000\000\000" "\273\000\000\000"
+  /* 0xbc */ "\274\000\000\000" "\275\000\000\000" "\276\000\000\000"
+  /* 0xbf */ "\277\000\000\000" "\300\000\000\000" "\301\000\000\000"
+  /* 0xc2 */ "\302\000\000\000" "\303\000\000\000" "\304\000\000\000"
+  /* 0xc5 */ "\305\000\000\000" "\306\000\000\000" "\307\000\000\000"
+  /* 0xc8 */ "\310\000\000\000" "\311\000\000\000" "\312\000\000\000"
+  /* 0xcb */ "\313\000\000\000" "\314\000\000\000" "\315\000\000\000"
+  /* 0xce */ "\316\000\000\000" "\317\000\000\000" "\320\000\000\000"
+  /* 0xd1 */ "\321\000\000\000" "\322\000\000\000" "\323\000\000\000"
+  /* 0xd4 */ "\324\000\000\000" "\325\000\000\000" "\326\000\000\000"
+  /* 0xd7 */ "\327\000\000\000" "\330\000\000\000" "\331\000\000\000"
+  /* 0xda */ "\332\000\000\000" "\333\000\000\000" "\334\000\000\000"
+  /* 0xdd */ "\335\000\000\000" "\336\000\000\000" "\337\000\000\000"
+  /* 0xe0 */ "\340\000\000\000" "\341\000\000\000" "\342\000\000\000"
+  /* 0xe3 */ "\343\000\000\000" "\344\000\000\000" "\345\000\000\000"
+  /* 0xe6 */ "\346\000\000\000" "\347\000\000\000" "\350\000\000\000"
+  /* 0xe9 */ "\351\000\000\000" "\352\000\000\000" "\353\000\000\000"
+  /* 0xec */ "\354\000\000\000" "\355\000\000\000" "\356\000\000\000"
+  /* 0xef */ "\357\000\000\000" "\360\000\000\000" "\361\000\000\000"
+  /* 0xf2 */ "\362\000\000\000" "\363\000\000\000" "\364\000\000\000"
+  /* 0xf5 */ "\365\000\000\000" "\366\000\000\000" "\367\000\000\000"
+  /* 0xf8 */ "\370\000\000\000" "\371\000\000\000" "\372\000\000\000"
+  /* 0xfb */ "\373\000\000\000" "\374\000\000\000" "\375\000\000\000"
+  /* 0xfe */ "\376\000\000\000" "\377\000\000\000" "\000\000\000\000"
+  /* 0x01 */ "\001\000\000\000" "\002\000\000\000" "\003\000\000\000"
+  /* 0x04 */ "\004\000\000\000" "\005\000\000\000" "\006\000\000\000"
+  /* 0x07 */ "\007\000\000\000" "\010\000\000\000" "\011\000\000\000"
+  /* 0x0a */ "\012\000\000\000" "\013\000\000\000" "\014\000\000\000"
+  /* 0x0d */ "\015\000\000\000" "\016\000\000\000" "\017\000\000\000"
+  /* 0x10 */ "\020\000\000\000" "\021\000\000\000" "\022\000\000\000"
+  /* 0x13 */ "\023\000\000\000" "\024\000\000\000" "\025\000\000\000"
+  /* 0x16 */ "\026\000\000\000" "\027\000\000\000" "\030\000\000\000"
+  /* 0x19 */ "\031\000\000\000" "\032\000\000\000" "\033\000\000\000"
+  /* 0x1c */ "\034\000\000\000" "\035\000\000\000" "\036\000\000\000"
+  /* 0x1f */ "\037\000\000\000" "\040\000\000\000" "\041\000\000\000"
+  /* 0x22 */ "\042\000\000\000" "\043\000\000\000" "\044\000\000\000"
+  /* 0x25 */ "\045\000\000\000" "\046\000\000\000" "\047\000\000\000"
+  /* 0x28 */ "\050\000\000\000" "\051\000\000\000" "\052\000\000\000"
+  /* 0x2b */ "\053\000\000\000" "\054\000\000\000" "\055\000\000\000"
+  /* 0x2e */ "\056\000\000\000" "\057\000\000\000" "\060\000\000\000"
+  /* 0x31 */ "\061\000\000\000" "\062\000\000\000" "\063\000\000\000"
+  /* 0x34 */ "\064\000\000\000" "\065\000\000\000" "\066\000\000\000"
+  /* 0x37 */ "\067\000\000\000" "\070\000\000\000" "\071\000\000\000"
+  /* 0x3a */ "\072\000\000\000" "\073\000\000\000" "\074\000\000\000"
+  /* 0x3d */ "\075\000\000\000" "\076\000\000\000" "\077\000\000\000"
+  /* 0x40 */ "\100\000\000\000" "\141\000\000\000" "\142\000\000\000"
+  /* 0x43 */ "\143\000\000\000" "\144\000\000\000" "\145\000\000\000"
+  /* 0x46 */ "\146\000\000\000" "\147\000\000\000" "\150\000\000\000"
+  /* 0x49 */ "\151\000\000\000" "\152\000\000\000" "\153\000\000\000"
+  /* 0x4c */ "\154\000\000\000" "\155\000\000\000" "\156\000\000\000"
+  /* 0x4f */ "\157\000\000\000" "\160\000\000\000" "\161\000\000\000"
+  /* 0x52 */ "\162\000\000\000" "\163\000\000\000" "\164\000\000\000"
+  /* 0x55 */ "\165\000\000\000" "\166\000\000\000" "\167\000\000\000"
+  /* 0x58 */ "\170\000\000\000" "\171\000\000\000" "\172\000\000\000"
+  /* 0x5b */ "\133\000\000\000" "\134\000\000\000" "\135\000\000\000"
+  /* 0x5e */ "\136\000\000\000" "\137\000\000\000" "\140\000\000\000"
+  /* 0x61 */ "\141\000\000\000" "\142\000\000\000" "\143\000\000\000"
+  /* 0x64 */ "\144\000\000\000" "\145\000\000\000" "\146\000\000\000"
+  /* 0x67 */ "\147\000\000\000" "\150\000\000\000" "\151\000\000\000"
+  /* 0x6a */ "\152\000\000\000" "\153\000\000\000" "\154\000\000\000"
+  /* 0x6d */ "\155\000\000\000" "\156\000\000\000" "\157\000\000\000"
+  /* 0x70 */ "\160\000\000\000" "\161\000\000\000" "\162\000\000\000"
+  /* 0x73 */ "\163\000\000\000" "\164\000\000\000" "\165\000\000\000"
+  /* 0x76 */ "\166\000\000\000" "\167\000\000\000" "\170\000\000\000"
+  /* 0x79 */ "\171\000\000\000" "\172\000\000\000" "\173\000\000\000"
+  /* 0x7c */ "\174\000\000\000" "\175\000\000\000" "\176\000\000\000"
+  /* 0x7f */ "\177\000\000\000" "\200\000\000\000" "\201\000\000\000"
+  /* 0x82 */ "\202\000\000\000" "\203\000\000\000" "\204\000\000\000"
+  /* 0x85 */ "\205\000\000\000" "\206\000\000\000" "\207\000\000\000"
+  /* 0x88 */ "\210\000\000\000" "\211\000\000\000" "\212\000\000\000"
+  /* 0x8b */ "\213\000\000\000" "\214\000\000\000" "\215\000\000\000"
+  /* 0x8e */ "\216\000\000\000" "\217\000\000\000" "\220\000\000\000"
+  /* 0x91 */ "\221\000\000\000" "\222\000\000\000" "\223\000\000\000"
+  /* 0x94 */ "\224\000\000\000" "\225\000\000\000" "\226\000\000\000"
+  /* 0x97 */ "\227\000\000\000" "\230\000\000\000" "\231\000\000\000"
+  /* 0x9a */ "\232\000\000\000" "\233\000\000\000" "\234\000\000\000"
+  /* 0x9d */ "\235\000\000\000" "\236\000\000\000" "\237\000\000\000"
+  /* 0xa0 */ "\240\000\000\000" "\241\000\000\000" "\242\000\000\000"
+  /* 0xa3 */ "\243\000\000\000" "\244\000\000\000" "\245\000\000\000"
+  /* 0xa6 */ "\246\000\000\000" "\247\000\000\000" "\250\000\000\000"
+  /* 0xa9 */ "\251\000\000\000" "\252\000\000\000" "\253\000\000\000"
+  /* 0xac */ "\254\000\000\000" "\255\000\000\000" "\256\000\000\000"
+  /* 0xaf */ "\257\000\000\000" "\260\000\000\000" "\261\000\000\000"
+  /* 0xb2 */ "\262\000\000\000" "\263\000\000\000" "\264\000\000\000"
+  /* 0xb5 */ "\265\000\000\000" "\266\000\000\000" "\267\000\000\000"
+  /* 0xb8 */ "\270\000\000\000" "\271\000\000\000" "\272\000\000\000"
+  /* 0xbb */ "\273\000\000\000" "\274\000\000\000" "\275\000\000\000"
+  /* 0xbe */ "\276\000\000\000" "\277\000\000\000" "\300\000\000\000"
+  /* 0xc1 */ "\301\000\000\000" "\302\000\000\000" "\303\000\000\000"
+  /* 0xc4 */ "\304\000\000\000" "\305\000\000\000" "\306\000\000\000"
+  /* 0xc7 */ "\307\000\000\000" "\310\000\000\000" "\311\000\000\000"
+  /* 0xca */ "\312\000\000\000" "\313\000\000\000" "\314\000\000\000"
+  /* 0xcd */ "\315\000\000\000" "\316\000\000\000" "\317\000\000\000"
+  /* 0xd0 */ "\320\000\000\000" "\321\000\000\000" "\322\000\000\000"
+  /* 0xd3 */ "\323\000\000\000" "\324\000\000\000" "\325\000\000\000"
+  /* 0xd6 */ "\326\000\000\000" "\327\000\000\000" "\330\000\000\000"
+  /* 0xd9 */ "\331\000\000\000" "\332\000\000\000" "\333\000\000\000"
+  /* 0xdc */ "\334\000\000\000" "\335\000\000\000" "\336\000\000\000"
+  /* 0xdf */ "\337\000\000\000" "\340\000\000\000" "\341\000\000\000"
+  /* 0xe2 */ "\342\000\000\000" "\343\000\000\000" "\344\000\000\000"
+  /* 0xe5 */ "\345\000\000\000" "\346\000\000\000" "\347\000\000\000"
+  /* 0xe8 */ "\350\000\000\000" "\351\000\000\000" "\352\000\000\000"
+  /* 0xeb */ "\353\000\000\000" "\354\000\000\000" "\355\000\000\000"
+  /* 0xee */ "\356\000\000\000" "\357\000\000\000" "\360\000\000\000"
+  /* 0xf1 */ "\361\000\000\000" "\362\000\000\000" "\363\000\000\000"
+  /* 0xf4 */ "\364\000\000\000" "\365\000\000\000" "\366\000\000\000"
+  /* 0xf7 */ "\367\000\000\000" "\370\000\000\000" "\371\000\000\000"
+  /* 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"
+;
+#elif BYTE_ORDER == BIG_ENDIAN
+static const char _nl_C_LC_CTYPE_toupper[] = 
+  /* 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"
+  /* 0x89 */ "\000\000\000\211" "\000\000\000\212" "\000\000\000\213"
+  /* 0x8c */ "\000\000\000\214" "\000\000\000\215" "\000\000\000\216"
+  /* 0x8f */ "\000\000\000\217" "\000\000\000\220" "\000\000\000\221"
+  /* 0x92 */ "\000\000\000\222" "\000\000\000\223" "\000\000\000\224"
+  /* 0x95 */ "\000\000\000\225" "\000\000\000\226" "\000\000\000\227"
+  /* 0x98 */ "\000\000\000\230" "\000\000\000\231" "\000\000\000\232"
+  /* 0x9b */ "\000\000\000\233" "\000\000\000\234" "\000\000\000\235"
+  /* 0x9e */ "\000\000\000\236" "\000\000\000\237" "\000\000\000\240"
+  /* 0xa1 */ "\000\000\000\241" "\000\000\000\242" "\000\000\000\243"
+  /* 0xa4 */ "\000\000\000\244" "\000\000\000\245" "\000\000\000\246"
+  /* 0xa7 */ "\000\000\000\247" "\000\000\000\250" "\000\000\000\251"
+  /* 0xaa */ "\000\000\000\252" "\000\000\000\253" "\000\000\000\254"
+  /* 0xad */ "\000\000\000\255" "\000\000\000\256" "\000\000\000\257"
+  /* 0xb0 */ "\000\000\000\260" "\000\000\000\261" "\000\000\000\262"
+  /* 0xb3 */ "\000\000\000\263" "\000\000\000\264" "\000\000\000\265"
+  /* 0xb6 */ "\000\000\000\266" "\000\000\000\267" "\000\000\000\270"
+  /* 0xb9 */ "\000\000\000\271" "\000\000\000\272" "\000\000\000\273"
+  /* 0xbc */ "\000\000\000\274" "\000\000\000\275" "\000\000\000\276"
+  /* 0xbf */ "\000\000\000\277" "\000\000\000\300" "\000\000\000\301"
+  /* 0xc2 */ "\000\000\000\302" "\000\000\000\303" "\000\000\000\304"
+  /* 0xc5 */ "\000\000\000\305" "\000\000\000\306" "\000\000\000\307"
+  /* 0xc8 */ "\000\000\000\310" "\000\000\000\311" "\000\000\000\312"
+  /* 0xcb */ "\000\000\000\313" "\000\000\000\314" "\000\000\000\315"
+  /* 0xce */ "\000\000\000\316" "\000\000\000\317" "\000\000\000\320"
+  /* 0xd1 */ "\000\000\000\321" "\000\000\000\322" "\000\000\000\323"
+  /* 0xd4 */ "\000\000\000\324" "\000\000\000\325" "\000\000\000\326"
+  /* 0xd7 */ "\000\000\000\327" "\000\000\000\330" "\000\000\000\331"
+  /* 0xda */ "\000\000\000\332" "\000\000\000\333" "\000\000\000\334"
+  /* 0xdd */ "\000\000\000\335" "\000\000\000\336" "\000\000\000\337"
+  /* 0xe0 */ "\000\000\000\340" "\000\000\000\341" "\000\000\000\342"
+  /* 0xe3 */ "\000\000\000\343" "\000\000\000\344" "\000\000\000\345"
+  /* 0xe6 */ "\000\000\000\346" "\000\000\000\347" "\000\000\000\350"
+  /* 0xe9 */ "\000\000\000\351" "\000\000\000\352" "\000\000\000\353"
+  /* 0xec */ "\000\000\000\354" "\000\000\000\355" "\000\000\000\356"
+  /* 0xef */ "\000\000\000\357" "\000\000\000\360" "\000\000\000\361"
+  /* 0xf2 */ "\000\000\000\362" "\000\000\000\363" "\000\000\000\364"
+  /* 0xf5 */ "\000\000\000\365" "\000\000\000\366" "\000\000\000\367"
+  /* 0xf8 */ "\000\000\000\370" "\000\000\000\371" "\000\000\000\372"
+  /* 0xfb */ "\000\000\000\373" "\000\000\000\374" "\000\000\000\375"
+  /* 0xfe */ "\000\000\000\376" "\000\000\000\377" "\000\000\000\000"
+  /* 0x01 */ "\000\000\000\001" "\000\000\000\002" "\000\000\000\003"
+  /* 0x04 */ "\000\000\000\004" "\000\000\000\005" "\000\000\000\006"
+  /* 0x07 */ "\000\000\000\007" "\000\000\000\010" "\000\000\000\011"
+  /* 0x0a */ "\000\000\000\012" "\000\000\000\013" "\000\000\000\014"
+  /* 0x0d */ "\000\000\000\015" "\000\000\000\016" "\000\000\000\017"
+  /* 0x10 */ "\000\000\000\020" "\000\000\000\021" "\000\000\000\022"
+  /* 0x13 */ "\000\000\000\023" "\000\000\000\024" "\000\000\000\025"
+  /* 0x16 */ "\000\000\000\026" "\000\000\000\027" "\000\000\000\030"
+  /* 0x19 */ "\000\000\000\031" "\000\000\000\032" "\000\000\000\033"
+  /* 0x1c */ "\000\000\000\034" "\000\000\000\035" "\000\000\000\036"
+  /* 0x1f */ "\000\000\000\037" "\000\000\000\040" "\000\000\000\041"
+  /* 0x22 */ "\000\000\000\042" "\000\000\000\043" "\000\000\000\044"
+  /* 0x25 */ "\000\000\000\045" "\000\000\000\046" "\000\000\000\047"
+  /* 0x28 */ "\000\000\000\050" "\000\000\000\051" "\000\000\000\052"
+  /* 0x2b */ "\000\000\000\053" "\000\000\000\054" "\000\000\000\055"
+  /* 0x2e */ "\000\000\000\056" "\000\000\000\057" "\000\000\000\060"
+  /* 0x31 */ "\000\000\000\061" "\000\000\000\062" "\000\000\000\063"
+  /* 0x34 */ "\000\000\000\064" "\000\000\000\065" "\000\000\000\066"
+  /* 0x37 */ "\000\000\000\067" "\000\000\000\070" "\000\000\000\071"
+  /* 0x3a */ "\000\000\000\072" "\000\000\000\073" "\000\000\000\074"
+  /* 0x3d */ "\000\000\000\075" "\000\000\000\076" "\000\000\000\077"
+  /* 0x40 */ "\000\000\000\100" "\000\000\000\101" "\000\000\000\102"
+  /* 0x43 */ "\000\000\000\103" "\000\000\000\104" "\000\000\000\105"
+  /* 0x46 */ "\000\000\000\106" "\000\000\000\107" "\000\000\000\110"
+  /* 0x49 */ "\000\000\000\111" "\000\000\000\112" "\000\000\000\113"
+  /* 0x4c */ "\000\000\000\114" "\000\000\000\115" "\000\000\000\116"
+  /* 0x4f */ "\000\000\000\117" "\000\000\000\120" "\000\000\000\121"
+  /* 0x52 */ "\000\000\000\122" "\000\000\000\123" "\000\000\000\124"
+  /* 0x55 */ "\000\000\000\125" "\000\000\000\126" "\000\000\000\127"
+  /* 0x58 */ "\000\000\000\130" "\000\000\000\131" "\000\000\000\132"
+  /* 0x5b */ "\000\000\000\133" "\000\000\000\134" "\000\000\000\135"
+  /* 0x5e */ "\000\000\000\136" "\000\000\000\137" "\000\000\000\140"
+  /* 0x61 */ "\000\000\000\101" "\000\000\000\102" "\000\000\000\103"
+  /* 0x64 */ "\000\000\000\104" "\000\000\000\105" "\000\000\000\106"
+  /* 0x67 */ "\000\000\000\107" "\000\000\000\110" "\000\000\000\111"
+  /* 0x6a */ "\000\000\000\112" "\000\000\000\113" "\000\000\000\114"
+  /* 0x6d */ "\000\000\000\115" "\000\000\000\116" "\000\000\000\117"
+  /* 0x70 */ "\000\000\000\120" "\000\000\000\121" "\000\000\000\122"
+  /* 0x73 */ "\000\000\000\123" "\000\000\000\124" "\000\000\000\125"
+  /* 0x76 */ "\000\000\000\126" "\000\000\000\127" "\000\000\000\130"
+  /* 0x79 */ "\000\000\000\131" "\000\000\000\132" "\000\000\000\173"
+  /* 0x7c */ "\000\000\000\174" "\000\000\000\175" "\000\000\000\176"
+  /* 0x7f */ "\000\000\000\177" "\000\000\000\200" "\000\000\000\201"
+  /* 0x82 */ "\000\000\000\202" "\000\000\000\203" "\000\000\000\204"
+  /* 0x85 */ "\000\000\000\205" "\000\000\000\206" "\000\000\000\207"
+  /* 0x88 */ "\000\000\000\210" "\000\000\000\211" "\000\000\000\212"
+  /* 0x8b */ "\000\000\000\213" "\000\000\000\214" "\000\000\000\215"
+  /* 0x8e */ "\000\000\000\216" "\000\000\000\217" "\000\000\000\220"
+  /* 0x91 */ "\000\000\000\221" "\000\000\000\222" "\000\000\000\223"
+  /* 0x94 */ "\000\000\000\224" "\000\000\000\225" "\000\000\000\226"
+  /* 0x97 */ "\000\000\000\227" "\000\000\000\230" "\000\000\000\231"
+  /* 0x9a */ "\000\000\000\232" "\000\000\000\233" "\000\000\000\234"
+  /* 0x9d */ "\000\000\000\235" "\000\000\000\236" "\000\000\000\237"
+  /* 0xa0 */ "\000\000\000\240" "\000\000\000\241" "\000\000\000\242"
+  /* 0xa3 */ "\000\000\000\243" "\000\000\000\244" "\000\000\000\245"
+  /* 0xa6 */ "\000\000\000\246" "\000\000\000\247" "\000\000\000\250"
+  /* 0xa9 */ "\000\000\000\251" "\000\000\000\252" "\000\000\000\253"
+  /* 0xac */ "\000\000\000\254" "\000\000\000\255" "\000\000\000\256"
+  /* 0xaf */ "\000\000\000\257" "\000\000\000\260" "\000\000\000\261"
+  /* 0xb2 */ "\000\000\000\262" "\000\000\000\263" "\000\000\000\264"
+  /* 0xb5 */ "\000\000\000\265" "\000\000\000\266" "\000\000\000\267"
+  /* 0xb8 */ "\000\000\000\270" "\000\000\000\271" "\000\000\000\272"
+  /* 0xbb */ "\000\000\000\273" "\000\000\000\274" "\000\000\000\275"
+  /* 0xbe */ "\000\000\000\276" "\000\000\000\277" "\000\000\000\300"
+  /* 0xc1 */ "\000\000\000\301" "\000\000\000\302" "\000\000\000\303"
+  /* 0xc4 */ "\000\000\000\304" "\000\000\000\305" "\000\000\000\306"
+  /* 0xc7 */ "\000\000\000\307" "\000\000\000\310" "\000\000\000\311"
+  /* 0xca */ "\000\000\000\312" "\000\000\000\313" "\000\000\000\314"
+  /* 0xcd */ "\000\000\000\315" "\000\000\000\316" "\000\000\000\317"
+  /* 0xd0 */ "\000\000\000\320" "\000\000\000\321" "\000\000\000\322"
+  /* 0xd3 */ "\000\000\000\323" "\000\000\000\324" "\000\000\000\325"
+  /* 0xd6 */ "\000\000\000\326" "\000\000\000\327" "\000\000\000\330"
+  /* 0xd9 */ "\000\000\000\331" "\000\000\000\332" "\000\000\000\333"
+  /* 0xdc */ "\000\000\000\334" "\000\000\000\335" "\000\000\000\336"
+  /* 0xdf */ "\000\000\000\337" "\000\000\000\340" "\000\000\000\341"
+  /* 0xe2 */ "\000\000\000\342" "\000\000\000\343" "\000\000\000\344"
+  /* 0xe5 */ "\000\000\000\345" "\000\000\000\346" "\000\000\000\347"
+  /* 0xe8 */ "\000\000\000\350" "\000\000\000\351" "\000\000\000\352"
+  /* 0xeb */ "\000\000\000\353" "\000\000\000\354" "\000\000\000\355"
+  /* 0xee */ "\000\000\000\356" "\000\000\000\357" "\000\000\000\360"
+  /* 0xf1 */ "\000\000\000\361" "\000\000\000\362" "\000\000\000\363"
+  /* 0xf4 */ "\000\000\000\364" "\000\000\000\365" "\000\000\000\366"
+  /* 0xf7 */ "\000\000\000\367" "\000\000\000\370" "\000\000\000\371"
+  /* 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"
+;
+static const char _nl_C_LC_CTYPE_tolower[] = 
+  /* 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"
+  /* 0x89 */ "\000\000\000\211" "\000\000\000\212" "\000\000\000\213"
+  /* 0x8c */ "\000\000\000\214" "\000\000\000\215" "\000\000\000\216"
+  /* 0x8f */ "\000\000\000\217" "\000\000\000\220" "\000\000\000\221"
+  /* 0x92 */ "\000\000\000\222" "\000\000\000\223" "\000\000\000\224"
+  /* 0x95 */ "\000\000\000\225" "\000\000\000\226" "\000\000\000\227"
+  /* 0x98 */ "\000\000\000\230" "\000\000\000\231" "\000\000\000\232"
+  /* 0x9b */ "\000\000\000\233" "\000\000\000\234" "\000\000\000\235"
+  /* 0x9e */ "\000\000\000\236" "\000\000\000\237" "\000\000\000\240"
+  /* 0xa1 */ "\000\000\000\241" "\000\000\000\242" "\000\000\000\243"
+  /* 0xa4 */ "\000\000\000\244" "\000\000\000\245" "\000\000\000\246"
+  /* 0xa7 */ "\000\000\000\247" "\000\000\000\250" "\000\000\000\251"
+  /* 0xaa */ "\000\000\000\252" "\000\000\000\253" "\000\000\000\254"
+  /* 0xad */ "\000\000\000\255" "\000\000\000\256" "\000\000\000\257"
+  /* 0xb0 */ "\000\000\000\260" "\000\000\000\261" "\000\000\000\262"
+  /* 0xb3 */ "\000\000\000\263" "\000\000\000\264" "\000\000\000\265"
+  /* 0xb6 */ "\000\000\000\266" "\000\000\000\267" "\000\000\000\270"
+  /* 0xb9 */ "\000\000\000\271" "\000\000\000\272" "\000\000\000\273"
+  /* 0xbc */ "\000\000\000\274" "\000\000\000\275" "\000\000\000\276"
+  /* 0xbf */ "\000\000\000\277" "\000\000\000\300" "\000\000\000\301"
+  /* 0xc2 */ "\000\000\000\302" "\000\000\000\303" "\000\000\000\304"
+  /* 0xc5 */ "\000\000\000\305" "\000\000\000\306" "\000\000\000\307"
+  /* 0xc8 */ "\000\000\000\310" "\000\000\000\311" "\000\000\000\312"
+  /* 0xcb */ "\000\000\000\313" "\000\000\000\314" "\000\000\000\315"
+  /* 0xce */ "\000\000\000\316" "\000\000\000\317" "\000\000\000\320"
+  /* 0xd1 */ "\000\000\000\321" "\000\000\000\322" "\000\000\000\323"
+  /* 0xd4 */ "\000\000\000\324" "\000\000\000\325" "\000\000\000\326"
+  /* 0xd7 */ "\000\000\000\327" "\000\000\000\330" "\000\000\000\331"
+  /* 0xda */ "\000\000\000\332" "\000\000\000\333" "\000\000\000\334"
+  /* 0xdd */ "\000\000\000\335" "\000\000\000\336" "\000\000\000\337"
+  /* 0xe0 */ "\000\000\000\340" "\000\000\000\341" "\000\000\000\342"
+  /* 0xe3 */ "\000\000\000\343" "\000\000\000\344" "\000\000\000\345"
+  /* 0xe6 */ "\000\000\000\346" "\000\000\000\347" "\000\000\000\350"
+  /* 0xe9 */ "\000\000\000\351" "\000\000\000\352" "\000\000\000\353"
+  /* 0xec */ "\000\000\000\354" "\000\000\000\355" "\000\000\000\356"
+  /* 0xef */ "\000\000\000\357" "\000\000\000\360" "\000\000\000\361"
+  /* 0xf2 */ "\000\000\000\362" "\000\000\000\363" "\000\000\000\364"
+  /* 0xf5 */ "\000\000\000\365" "\000\000\000\366" "\000\000\000\367"
+  /* 0xf8 */ "\000\000\000\370" "\000\000\000\371" "\000\000\000\372"
+  /* 0xfb */ "\000\000\000\373" "\000\000\000\374" "\000\000\000\375"
+  /* 0xfe */ "\000\000\000\376" "\000\000\000\377" "\000\000\000\000"
+  /* 0x01 */ "\000\000\000\001" "\000\000\000\002" "\000\000\000\003"
+  /* 0x04 */ "\000\000\000\004" "\000\000\000\005" "\000\000\000\006"
+  /* 0x07 */ "\000\000\000\007" "\000\000\000\010" "\000\000\000\011"
+  /* 0x0a */ "\000\000\000\012" "\000\000\000\013" "\000\000\000\014"
+  /* 0x0d */ "\000\000\000\015" "\000\000\000\016" "\000\000\000\017"
+  /* 0x10 */ "\000\000\000\020" "\000\000\000\021" "\000\000\000\022"
+  /* 0x13 */ "\000\000\000\023" "\000\000\000\024" "\000\000\000\025"
+  /* 0x16 */ "\000\000\000\026" "\000\000\000\027" "\000\000\000\030"
+  /* 0x19 */ "\000\000\000\031" "\000\000\000\032" "\000\000\000\033"
+  /* 0x1c */ "\000\000\000\034" "\000\000\000\035" "\000\000\000\036"
+  /* 0x1f */ "\000\000\000\037" "\000\000\000\040" "\000\000\000\041"
+  /* 0x22 */ "\000\000\000\042" "\000\000\000\043" "\000\000\000\044"
+  /* 0x25 */ "\000\000\000\045" "\000\000\000\046" "\000\000\000\047"
+  /* 0x28 */ "\000\000\000\050" "\000\000\000\051" "\000\000\000\052"
+  /* 0x2b */ "\000\000\000\053" "\000\000\000\054" "\000\000\000\055"
+  /* 0x2e */ "\000\000\000\056" "\000\000\000\057" "\000\000\000\060"
+  /* 0x31 */ "\000\000\000\061" "\000\000\000\062" "\000\000\000\063"
+  /* 0x34 */ "\000\000\000\064" "\000\000\000\065" "\000\000\000\066"
+  /* 0x37 */ "\000\000\000\067" "\000\000\000\070" "\000\000\000\071"
+  /* 0x3a */ "\000\000\000\072" "\000\000\000\073" "\000\000\000\074"
+  /* 0x3d */ "\000\000\000\075" "\000\000\000\076" "\000\000\000\077"
+  /* 0x40 */ "\000\000\000\100" "\000\000\000\141" "\000\000\000\142"
+  /* 0x43 */ "\000\000\000\143" "\000\000\000\144" "\000\000\000\145"
+  /* 0x46 */ "\000\000\000\146" "\000\000\000\147" "\000\000\000\150"
+  /* 0x49 */ "\000\000\000\151" "\000\000\000\152" "\000\000\000\153"
+  /* 0x4c */ "\000\000\000\154" "\000\000\000\155" "\000\000\000\156"
+  /* 0x4f */ "\000\000\000\157" "\000\000\000\160" "\000\000\000\161"
+  /* 0x52 */ "\000\000\000\162" "\000\000\000\163" "\000\000\000\164"
+  /* 0x55 */ "\000\000\000\165" "\000\000\000\166" "\000\000\000\167"
+  /* 0x58 */ "\000\000\000\170" "\000\000\000\171" "\000\000\000\172"
+  /* 0x5b */ "\000\000\000\133" "\000\000\000\134" "\000\000\000\135"
+  /* 0x5e */ "\000\000\000\136" "\000\000\000\137" "\000\000\000\140"
+  /* 0x61 */ "\000\000\000\141" "\000\000\000\142" "\000\000\000\143"
+  /* 0x64 */ "\000\000\000\144" "\000\000\000\145" "\000\000\000\146"
+  /* 0x67 */ "\000\000\000\147" "\000\000\000\150" "\000\000\000\151"
+  /* 0x6a */ "\000\000\000\152" "\000\000\000\153" "\000\000\000\154"
+  /* 0x6d */ "\000\000\000\155" "\000\000\000\156" "\000\000\000\157"
+  /* 0x70 */ "\000\000\000\160" "\000\000\000\161" "\000\000\000\162"
+  /* 0x73 */ "\000\000\000\163" "\000\000\000\164" "\000\000\000\165"
+  /* 0x76 */ "\000\000\000\166" "\000\000\000\167" "\000\000\000\170"
+  /* 0x79 */ "\000\000\000\171" "\000\000\000\172" "\000\000\000\173"
+  /* 0x7c */ "\000\000\000\174" "\000\000\000\175" "\000\000\000\176"
+  /* 0x7f */ "\000\000\000\177" "\000\000\000\200" "\000\000\000\201"
+  /* 0x82 */ "\000\000\000\202" "\000\000\000\203" "\000\000\000\204"
+  /* 0x85 */ "\000\000\000\205" "\000\000\000\206" "\000\000\000\207"
+  /* 0x88 */ "\000\000\000\210" "\000\000\000\211" "\000\000\000\212"
+  /* 0x8b */ "\000\000\000\213" "\000\000\000\214" "\000\000\000\215"
+  /* 0x8e */ "\000\000\000\216" "\000\000\000\217" "\000\000\000\220"
+  /* 0x91 */ "\000\000\000\221" "\000\000\000\222" "\000\000\000\223"
+  /* 0x94 */ "\000\000\000\224" "\000\000\000\225" "\000\000\000\226"
+  /* 0x97 */ "\000\000\000\227" "\000\000\000\230" "\000\000\000\231"
+  /* 0x9a */ "\000\000\000\232" "\000\000\000\233" "\000\000\000\234"
+  /* 0x9d */ "\000\000\000\235" "\000\000\000\236" "\000\000\000\237"
+  /* 0xa0 */ "\000\000\000\240" "\000\000\000\241" "\000\000\000\242"
+  /* 0xa3 */ "\000\000\000\243" "\000\000\000\244" "\000\000\000\245"
+  /* 0xa6 */ "\000\000\000\246" "\000\000\000\247" "\000\000\000\250"
+  /* 0xa9 */ "\000\000\000\251" "\000\000\000\252" "\000\000\000\253"
+  /* 0xac */ "\000\000\000\254" "\000\000\000\255" "\000\000\000\256"
+  /* 0xaf */ "\000\000\000\257" "\000\000\000\260" "\000\000\000\261"
+  /* 0xb2 */ "\000\000\000\262" "\000\000\000\263" "\000\000\000\264"
+  /* 0xb5 */ "\000\000\000\265" "\000\000\000\266" "\000\000\000\267"
+  /* 0xb8 */ "\000\000\000\270" "\000\000\000\271" "\000\000\000\272"
+  /* 0xbb */ "\000\000\000\273" "\000\000\000\274" "\000\000\000\275"
+  /* 0xbe */ "\000\000\000\276" "\000\000\000\277" "\000\000\000\300"
+  /* 0xc1 */ "\000\000\000\301" "\000\000\000\302" "\000\000\000\303"
+  /* 0xc4 */ "\000\000\000\304" "\000\000\000\305" "\000\000\000\306"
+  /* 0xc7 */ "\000\000\000\307" "\000\000\000\310" "\000\000\000\311"
+  /* 0xca */ "\000\000\000\312" "\000\000\000\313" "\000\000\000\314"
+  /* 0xcd */ "\000\000\000\315" "\000\000\000\316" "\000\000\000\317"
+  /* 0xd0 */ "\000\000\000\320" "\000\000\000\321" "\000\000\000\322"
+  /* 0xd3 */ "\000\000\000\323" "\000\000\000\324" "\000\000\000\325"
+  /* 0xd6 */ "\000\000\000\326" "\000\000\000\327" "\000\000\000\330"
+  /* 0xd9 */ "\000\000\000\331" "\000\000\000\332" "\000\000\000\333"
+  /* 0xdc */ "\000\000\000\334" "\000\000\000\335" "\000\000\000\336"
+  /* 0xdf */ "\000\000\000\337" "\000\000\000\340" "\000\000\000\341"
+  /* 0xe2 */ "\000\000\000\342" "\000\000\000\343" "\000\000\000\344"
+  /* 0xe5 */ "\000\000\000\345" "\000\000\000\346" "\000\000\000\347"
+  /* 0xe8 */ "\000\000\000\350" "\000\000\000\351" "\000\000\000\352"
+  /* 0xeb */ "\000\000\000\353" "\000\000\000\354" "\000\000\000\355"
+  /* 0xee */ "\000\000\000\356" "\000\000\000\357" "\000\000\000\360"
+  /* 0xf1 */ "\000\000\000\361" "\000\000\000\362" "\000\000\000\363"
+  /* 0xf4 */ "\000\000\000\364" "\000\000\000\365" "\000\000\000\366"
+  /* 0xf7 */ "\000\000\000\367" "\000\000\000\370" "\000\000\000\371"
+  /* 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"
+;
 #else
-#error "BYTE_ORDER" BYTE_ORDER not handled.
+#error "BYTE_ORDER" BYTE_ORDER " not handled."
 #endif
 
-
 const struct locale_data _nl_C_LC_CTYPE = 
 {
   NULL, 0, /* no file mapped */
-  6,
+  5,
+  {
+    _nl_C_LC_CTYPE_class,
 #if BYTE_ORDER == BIG_ENDIAN
-  _nl_C_LC_CTYPE_class, _nl_C_LC_CTYPE_toupper,	_nl_C_LC_CTYPE_tolower,
+    _nl_C_LC_CTYPE_toupper, _nl_C_LC_CTYPE_tolower,
 #endif
-  NULL, NULL, NULL,
+    NULL, NULL,
 #if BYTE_ORDER == LITTLE_ENDIAN
-  _nl_C_LC_CTYPE_class, _nl_C_LC_CTYPE_toupper,	_nl_C_LC_CTYPE_tolower,
+    _nl_C_LC_CTYPE_toupper, _nl_C_LC_CTYPE_tolower,
 #endif
+  }
 };
diff --git a/locale/C-messages.c b/locale/C-messages.c
index d72958fc23..f59cde3bb8 100644
--- a/locale/C-messages.c
+++ b/locale/C-messages.c
@@ -10,8 +10,10 @@ const struct locale_data _nl_C_LC_MESSAGES =
 {
   NULL, 0, /* no file mapped */
   4,
-  "[yY][[:alpha:]]",
-  "[nN][[:alpha:]]",
-  "",
-  "",
+  {
+    "[yY][[:alpha:]]",
+    "[nN][[:alpha:]]",
+    "",
+    ""
+  }
 };
diff --git a/locale/C-monetary.c b/locale/C-monetary.c
index 085ab017a2..7e2b1bc3a7 100644
--- a/locale/C-monetary.c
+++ b/locale/C-monetary.c
@@ -10,19 +10,21 @@ const struct locale_data _nl_C_LC_MONETARY =
 {
   NULL, 0, /* no file mapped */
   15,
-  "",
-  "",
-  "",
-  "",
-  "\377",
-  "",
-  "",
-  "\377",
-  "\377",
-  "\377",
-  "\377",
-  "\377",
-  "\377",
-  "\377",
-  "\377",
+  {
+    "",
+    "",
+    "",
+    "",
+    "\377",
+    "",
+    "",
+    "\377",
+    "\377",
+    "\377",
+    "\377",
+    "\377",
+    "\377",
+    "\377",
+    "\377"
+  }
 };
diff --git a/locale/C-numeric.c b/locale/C-numeric.c
index 712c3a6239..05cdad1265 100644
--- a/locale/C-numeric.c
+++ b/locale/C-numeric.c
@@ -10,7 +10,9 @@ const struct locale_data _nl_C_LC_NUMERIC =
 {
   NULL, 0, /* no file mapped */
   3,
-  ".",
-  "",
-  "\377",
+  {
+    ".",
+    "",
+    "\377"
+  }
 };
diff --git a/locale/C-time.c b/locale/C-time.c
index 5329ae65fb..15bf15ae46 100644
--- a/locale/C-time.c
+++ b/locale/C-time.c
@@ -10,48 +10,50 @@ const struct locale_data _nl_C_LC_TIME =
 {
   NULL, 0, /* no file mapped */
   44,
-  "Sun",
-  "Mon",
-  "Tue",
-  "Wed",
-  "Thu",
-  "Fri",
-  "Sat",
-  "Sunday",
-  "Monday",
-  "Tuesday",
-  "Wednesday",
-  "Thursday",
-  "Friday",
-  "Saturday",
-  "Jan",
-  "Feb",
-  "Mar",
-  "Apr",
-  "May",
-  "Jun",
-  "Jul",
-  "Aug",
-  "Sep",
-  "Oct",
-  "Nov",
-  "Dec",
-  "January",
-  "February",
-  "March",
-  "April",
-  "May",
-  "June",
-  "July",
-  "August",
-  "September",
-  "October",
-  "November",
-  "December",
-  "AM",
-  "PM",
-  "%a %b %d %H:%M:%S %Y",
-  "%m/%d/%y",
-  "%H:%M:%S",
-  NULL,
+  {
+    "Sun",
+    "Mon",
+    "Tue",
+    "Wed",
+    "Thu",
+    "Fri",
+    "Sat",
+    "Sunday",
+    "Monday",
+    "Tuesday",
+    "Wednesday",
+    "Thursday",
+    "Friday",
+    "Saturday",
+    "Jan",
+    "Feb",
+    "Mar",
+    "Apr",
+    "May",
+    "Jun",
+    "Jul",
+    "Aug",
+    "Sep",
+    "Oct",
+    "Nov",
+    "Dec",
+    "January",
+    "February",
+    "March",
+    "April",
+    "May",
+    "June",
+    "July",
+    "August",
+    "September",
+    "October",
+    "November",
+    "December",
+    "AM",
+    "PM",
+    "%a %b %d %H:%M:%S %Y",
+    "%m/%d/%y",
+    "%H:%M:%S",
+    NULL
+  }
 };
diff --git a/locale/categories.def b/locale/categories.def
index 166f4b28fc..6bdad35e17 100644
--- a/locale/categories.def
+++ b/locale/categories.def
@@ -26,13 +26,13 @@ Cambridge, MA 02139, USA.  */
 
    where items itself is an array of entries in the form
 
-     { ID, name, value-type, min, max }
+     { ID, name, standard, value-type, min, max }
 
    The usage of the load, check, output functions depends on the individual
    program code which loads this file.
 
    The various value types for the items are `string', `stringarray', `byte'
-   and `bytearray'.  These cover all possiblee values in the current locale
+   and `bytearray'.  These cover all possible values in the current locale
    definitions.  `min' and `max' can be individually used again.  */
 
 #ifndef NO_POSTLOAD
@@ -50,67 +50,66 @@ DEFINE_CATEGORY (LC_COLLATE, "LC_COLLATE",
    the functions are important.  */
 DEFINE_CATEGORY (LC_CTYPE, "LC_CTYPE",
 		   (
-		     { _NL_CTYPE_CLASS_EB, "ctype-class-eb", string },
-		     { _NL_CTYPE_TOUPPER_EB, "ctype-toupper-eb", string },
-		     { _NL_CTYPE_TOLOWER_EB, "ctype-tolower-eb", string },
-		     { _NL_CTYPE_CLASS_EL, "ctype-class-el", string },
-		     { _NL_CTYPE_TOUPPER_EL, "ctype-toupper-el", string },
-		     { _NL_CTYPE_TOLOWER_EL, "ctype-tolower-el", string },
+		     { _NL_CTYPE_CLASS, "ctype-class", std, string },
+		     { _NL_CTYPE_TOUPPER_EB, "ctype-toupper-eb", std, string },
+		     { _NL_CTYPE_TOLOWER_EB, "ctype-tolower-eb", std, string },
+		     { _NL_CTYPE_TOUPPER_EL, "ctype-toupper-el", std, string },
+		     { _NL_CTYPE_TOLOWER_EL, "ctype-tolower-el", std, string },
 		     { 0 }
 		   ), _nl_postload_ctype,
 		 ctype_input, ctype_check, ctype_output )
 
 
 DEFINE_CATEGORY (LC_MONETARY, "LC_MONETARY",
-		   (
-		     { INT_CURR_SYMBOL,   "int_curr_symbol",   string },
-		     { CURRENCY_SYMBOL,   "currency_symbol",   string },
-		     { MON_DECIMAL_POINT, "mon_decimal_point", string },
-		     { MON_THOUSANDS_SEP, "mon_thousands_sep", string },
-		     { MON_GROUPING,      "mon_grouping",      bytearray },
-		     { POSITIVE_SIGN,     "positive_sign",     string },
-		     { NEGATIVE_SIGN,     "negative_sign",     string },
-		     { INT_FRAC_DIGITS,   "int_frac_digits",   byte },
-		     { FRAC_DIGITS,       "frac_digits",       byte },
-		     { P_CS_PRECEDES,     "p_cs_precedes",     byte, 0, 1 },
-		     { P_SEP_BY_SPACE,    "p_sep_by_space",    byte, 0, 2 },
-		     { N_CS_PRECEDES,     "n_cs_precedes",     byte, 0, 1 },
-		     { N_SEP_BY_SPACE,    "n_sep_by_space",    byte, 0, 2 },
-		     { P_SIGN_POSN,       "p_sign_posn",       byte, 0, 4 },
-		     { N_SIGN_POSN,       "n_sign_posn",       byte, 0, 4 },
-		     { 0 }
-		   ), NO_POSTLOAD, NULL, monetary_check, NULL )
+		 (
+		  { INT_CURR_SYMBOL,   "int_curr_symbol",   std, string },
+		  { CURRENCY_SYMBOL,   "currency_symbol",   std, string },
+		  { MON_DECIMAL_POINT, "mon_decimal_point", std, string },
+		  { MON_THOUSANDS_SEP, "mon_thousands_sep", std, string },
+		  { MON_GROUPING,      "mon_grouping",      std, bytearray },
+		  { POSITIVE_SIGN,     "positive_sign",     std, string },
+		  { NEGATIVE_SIGN,     "negative_sign",     std, string },
+		  { INT_FRAC_DIGITS,   "int_frac_digits",   std, byte },
+		  { FRAC_DIGITS,       "frac_digits",       std, byte },
+		  { P_CS_PRECEDES,     "p_cs_precedes",     std, byte, 0, 1 },
+		  { P_SEP_BY_SPACE,    "p_sep_by_space",    std, byte, 0, 2 },
+		  { N_CS_PRECEDES,     "n_cs_precedes",     std, byte, 0, 1 },
+		  { N_SEP_BY_SPACE,    "n_sep_by_space",    std, byte, 0, 2 },
+		  { P_SIGN_POSN,       "p_sign_posn",       std, byte, 0, 4 },
+		  { N_SIGN_POSN,       "n_sign_posn",       std, byte, 0, 4 },
+		  { 0 }
+		  ), NO_POSTLOAD, NULL, monetary_check, NULL )
 
 
 DEFINE_CATEGORY (LC_NUMERIC, "LC_NUMERIC",
-		   (
-		     { DECIMAL_POINT, "decimal_point", string },
-		     { THOUSANDS_SEP, "thousands_sep", string },
-		     { GROUPING,      "grouping",      bytearray },
-		     { 0 }
-		   ), NO_POSTLOAD, NULL, numeric_check, NULL)
+		 (
+		  { DECIMAL_POINT, "decimal_point", std, string },
+		  { THOUSANDS_SEP, "thousands_sep", std, string },
+		  { GROUPING,      "grouping",      std, bytearray },
+		  { 0 }
+		  ), NO_POSTLOAD, NULL, numeric_check, NULL)
 
 
 DEFINE_CATEGORY (LC_TIME, "LC_TIME",
-		   (
-		     { ABDAY_1,    "abday",      stringarray,  7,  7 },
-		     { DAY_1,      "day",        stringarray,  7,  7 },
-		     { ABMON_1,    "abmon",      stringarray, 12, 12 },
-		     { MON_1,      "mon",        stringarray, 12, 12 },
-		     { AM_STR,     "am_pm",      stringarray,  2,  2 },
-		     { D_T_FMT,    "d_t_fmt",    string },
-		     { D_FMT,      "d_fmt",      string },
-		     { T_FMT,      "t_fmt",      string },
-		     { T_FMT_AMPM, "t_fmt_ampm", string },
-		     { 0 }
-		   ), NO_POSTLOAD, NULL, NULL, NULL )
+		 (
+		  { ABDAY_1,    "abday",      std, stringarray,  7,  7 },
+		  { DAY_1,      "day",        std, stringarray,  7,  7 },
+		  { ABMON_1,    "abmon",      std, stringarray, 12, 12 },
+		  { MON_1,      "mon",        std, stringarray, 12, 12 },
+		  { AM_STR,     "am_pm",      std, stringarray,  2,  2 },
+		  { D_T_FMT,    "d_t_fmt",    std, string },
+		  { D_FMT,      "d_fmt",      std, string },
+		  { T_FMT,      "t_fmt",      std, string },
+		  { T_FMT_AMPM, "t_fmt_ampm", std, string },
+		  { 0 }
+		  ), NO_POSTLOAD, NULL, NULL, NULL )
 
 
 DEFINE_CATEGORY (LC_MESSAGES, "LC_MESSAGES",
-		   (
-		     { YESEXPR, "yesexpr", string },
-		     { NOEXPR,  "noexpr",  string },
-		     { YESSTR,  "yesstr",  string },
-		     { NOSTR,   "nostr",   string },
-		     { 0 }
-		   ), NO_POSTLOAD, NULL, messages_check, NULL )
+		 (
+		  { YESEXPR, "yesexpr", std, string },
+		  { NOEXPR,  "noexpr",  std, string },
+		  { YESSTR,  "yesstr",  opt, string },
+		  { NOSTR,   "nostr",   opt, string },
+		  { 0 }
+		  ), NO_POSTLOAD, NULL, messages_check, NULL )
diff --git a/locale/localeinfo.h b/locale/localeinfo.h
index bb4738eb5a..4199bf7a1b 100644
--- a/locale/localeinfo.h
+++ b/locale/localeinfo.h
@@ -45,6 +45,7 @@ extern const struct locale_data *_nl_current_##category;
 #undef	DEFINE_CATEGORY
 
 extern const char *const _nl_category_names[LC_ALL];
+extern const struct locale_data * *const _nl_current[LC_ALL];
 
 /* Extract the current CATEGORY locale's string for ITEM.  */
 #define _NL_CURRENT(category, item) \
@@ -53,7 +54,7 @@ extern const char *const _nl_category_names[LC_ALL];
 /* This is used in lc-CATEGORY.c to define _nl_current_CATEGORY.  */
 #define _NL_CURRENT_DEFINE(category) \
   extern const struct locale_data _nl_C_##category; \
-  const struct locale_data *nl_current_##category = &_nl_C_##category
+  const struct locale_data *_nl_current_##category = &_nl_C_##category
 
 /* Load the locale data for CATEGORY from the file specified by *NAME.
    If *NAME is "", use environment variables as specified by POSIX,
diff --git a/manual/stdio.texi b/manual/stdio.texi
index 411d94a242..30157595e7 100644
--- a/manual/stdio.texi
+++ b/manual/stdio.texi
@@ -1958,8 +1958,8 @@ written by other people could break if you do this.
 @node Conversion Specifier Options
 @subsection Conversion Specifier Options
 
-If you define a meaning for @samp{%q}, what if the template contains
-@samp{%+23q} or @samp{%-#q}?  To implement a sensible meaning for these,
+If you define a meaning for @samp{%A}, what if the template contains
+@samp{%+23A} or @samp{%-#A}?  To implement a sensible meaning for these,
 the handler when called needs to be able to get the options specified in
 the template.