about summary refs log tree commit diff
path: root/locale/C-ctype.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1999-08-31 07:04:41 +0000
committerUlrich Drepper <drepper@redhat.com>1999-08-31 07:04:41 +0000
commit4b10dd6c1959577f57850ca427a94fe22b9f3299 (patch)
treeb385d9b27e5a40d5baf7cd7e27c7cc5ef7129b5b /locale/C-ctype.c
parent1d1740d6b12894ed6a430e2e98bf73c5243b2925 (diff)
downloadglibc-4b10dd6c1959577f57850ca427a94fe22b9f3299.tar.gz
glibc-4b10dd6c1959577f57850ca427a94fe22b9f3299.tar.xz
glibc-4b10dd6c1959577f57850ca427a94fe22b9f3299.zip
Update.
	* locale/Makefile (distribute): Add iso-639.def and iso-3166.def.
	Change charset.h to charmap.h.
	(categories): Add new categories.  Leave out collate for now.
	Update build rules.
	* locale/categories.def: Add definitions for new categories.
	* locale/langinfo.h: Likewise.
	* locale/locale.h: Likewise.
	* locale/C-address.c: New file.
	* locale/C-identification.c: New file.
	* locale/C-measurement.c: New file.
	* locale/C-name.c: New file.
	* locale/C-paper.c: New file.
	* locale/C-telephone.c: New file.
	* locale/lc-address.c: Likewise.
	* locale/lc-identification.c: Likewise.
	* locale/lc-measurement.c: Likewise.
	* locale/lc-name.c: Likewise.
	* locale/lc-paper.c: Likewise.
	* locale/lc-telephone.c: Likewise.
	* locale/C-ctype.c: Update for locale rewrite.
	* locale/C-messages.c: Likewise.
	* locale/C-monetary.c: Likewise.
	* locale/C-time.c: Likewise.
	* locale/lc-collate.c: Likewise.
	* locale/lc-ctype.c: Likewise.
	* locale/lc-monetary.c: Likewise.
	* locale/lc-time.c: Likewise.
	* locale/localeinfo.h: Likewise.
	* locale/newlocale.c: Likewise.
	* locale/setlocale.c: Likewise.
	* locale/weight.h: Likewise.
	* locale/findlocale.c: Unconditionally use mmap.
	Handle new categories.
	* locale/loadlocale.c: Likewise.
	* locale/iso-3166.def: New file.
	* locale/iso-639.def: New file.
	* locale/programs/charmap-kw.gperf: Add new keywords.
	* locale/programs/locfile-kw.gperf: Likewise.
	* locale/programs/locfile-token.h: Define new tokens.
	* locale/programs/charmap.c: Rewrite to handle multibyte charsets.
	* locale/programs/charmap.h: New file.
	* locale/programs/charset.h: Removed.
	* locale/programs/config.h: Add __LC_LAST.
	* locale/programs/lc-address.c: New file.
	* locale/programs/lc-identification.c: New file.
	* locale/programs/lc-measurement.c: New file.
	* locale/programs/lc-name.c: New file.
	* locale/programs/lc-paper.c: New file.
	* locale/programs/lc-telephone.c: New file.
	* locale/programs/lc-collate.c: Update for locale rewrite.
	* locale/programs/lc-ctype.c: Likewise.
	* locale/programs/lc-messages.c: Likewise.
	* locale/programs/lc-monetary.c: Likewise.
	* locale/programs/lc-numeric.c: Likewise.
	* locale/programs/lc-time.c: Likewise.
	* locale/programs/locale.c: Likewise.
	* locale/programs/localedef.c: Likewise.
	* locale/programs/locfile.c: Likewise.
	* locale/programs/repertoire.c: Likewise.
	* locale/programs/repertoire.h: Likewise.
	* locale/programs/locfile.c: Update prototypes.
	Update handle_copy definition.
	* locale/programs/linereader.c: Add handling of wide char strings and
	new definition file syntax.
	* locale/programs/linereader.h (struct token): Add elements for wide
	character strings.
	* locale/programs/locale-spec.c: Disable handling of collation
	elements for now.
	* locale/programs/simple-hash.h: Cleanup.
	* locale/programs/stringtrans.h: Handle quite of end of line.
	* string/strcoll.c: Fall back on strcmp for now.
	* string/strxfrm.c: Fall back on strncpy/strlen for now.
	* time/strftime.c: Use new wide character data for wcsftime.
	* time/strptime.c: Remove _nl_C_LC_TIME declaration.
	* wctype/cname-lookup.h: Update for new LC_CTYPE data.
Diffstat (limited to 'locale/C-ctype.c')
-rw-r--r--locale/C-ctype.c291
1 files changed, 198 insertions, 93 deletions
diff --git a/locale/C-ctype.c b/locale/C-ctype.c
index 9dd122b3f6..77281b0095 100644
--- a/locale/C-ctype.c
+++ b/locale/C-ctype.c
@@ -1,6 +1,6 @@
-/* Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1995.
 
    The GNU C Library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Library General Public License as
@@ -29,28 +29,28 @@
    is set to always return 0 and the conversion arrays return EOF.  */
 
 const char _nl_C_LC_CTYPE_class[768] =
-  /* 0x80 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0x86 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0x8c */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0x92 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0x98 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0x9e */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0xa4 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0xaa */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0xb0 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0xb6 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0xbc */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0xc2 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0xc8 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0xce */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0xd4 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0xda */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0xe0 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0xe6 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0xec */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0xf2 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0xf8 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0xfe */ "\000\000" "\000\000" "\002\000" "\002\000" "\002\000" "\002\000"
+  /* 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"
+  /* 0x92 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
+  /* 0x98 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
+  /* 0x9e */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
+  /* 0xa4 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
+  /* 0xaa */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
+  /* 0xb0 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
+  /* 0xb6 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
+  /* 0xbc */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
+  /* 0xc2 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
+  /* 0xc8 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
+  /* 0xce */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
+  /* 0xd4 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
+  /* 0xda */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
+  /* 0xe0 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
+  /* 0xe6 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
+  /* 0xec */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
+  /* 0xf2 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
+  /* 0xf8 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
+  /* 0xfe */ "\002\000" "\000\000" "\002\000" "\002\000" "\002\000" "\002\000"
   /* 0x04 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\003\040"
   /* 0x0a */ "\002\040" "\002\040" "\002\040" "\002\040" "\002\000" "\002\000"
   /* 0x10 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
@@ -71,28 +71,28 @@ const char _nl_C_LC_CTYPE_class[768] =
   /* 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" "\000\000" "\000\000"
-  /* 0x82 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0x88 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0x8e */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0x94 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0x9a */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0xa0 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0xa6 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0xac */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0xb2 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0xb8 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0xbe */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0xc4 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0xca */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0xd0 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0xd6 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0xdc */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0xe2 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0xe8 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0xee */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0xf4 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
-  /* 0xfa */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
+  /* 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"
+  /* 0x8e */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
+  /* 0x94 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
+  /* 0x9a */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
+  /* 0xa0 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
+  /* 0xa6 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
+  /* 0xac */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
+  /* 0xb2 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
+  /* 0xb8 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
+  /* 0xbe */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
+  /* 0xc4 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
+  /* 0xca */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
+  /* 0xd0 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
+  /* 0xd6 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
+  /* 0xdc */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
+  /* 0xe2 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
+  /* 0xe8 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
+  /* 0xee */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
+  /* 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 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
@@ -137,50 +137,50 @@ const char _nl_C_LC_CTYPE_class32[1024] =
   /* 0x75 */ "\000\000\010\306" "\000\000\010\306" "\000\000\010\306"
   /* 0x78 */ "\000\000\010\306" "\000\000\010\306" "\000\000\010\306"
   /* 0x7b */ "\000\000\004\300" "\000\000\004\300" "\000\000\004\300"
-  /* 0x7e */ "\000\000\004\300" "\000\000\002\000" "\000\000\000\000"
-  /* 0x81 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0x84 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0x87 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0x8a */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0x8d */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0x90 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0x93 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0x96 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0x99 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0x9c */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0x9f */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0xa2 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0xa5 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0xa8 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0xab */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0xae */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0xb1 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0xb4 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0xb7 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0xba */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0xbd */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0xc0 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0xc3 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0xc6 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0xc9 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0xcc */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0xcf */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0xd2 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0xd5 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0xd8 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0xdb */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0xde */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0xe1 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0xe4 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0xe7 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0xea */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0xed */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0xf0 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0xf3 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0xf6 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0xf9 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0xfc */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
-  /* 0xff */ "\000\000\000\000"
+  /* 0x7e */ "\000\000\004\300" "\000\000\002\000" "\000\000\002\000"
+  /* 0x81 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0x84 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0x87 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0x8a */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0x8d */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0x90 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0x93 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0x96 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0x99 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0x9c */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0x9f */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0xa2 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0xa5 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0xa8 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0xab */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0xae */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0xb1 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0xb4 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0xb7 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0xba */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0xbd */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0xc0 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0xc3 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0xc6 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0xc9 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0xcc */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0xcf */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0xd2 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0xd5 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0xd8 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0xdb */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0xde */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0xe1 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0xe4 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0xe7 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0xea */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0xed */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0xf0 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0xf3 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0xf6 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0xf9 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0xfc */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
+  /* 0xff */ "\000\000\002\000"
 ;
 const u_int32_t _nl_C_LC_CTYPE_toupper[384] =
 {
@@ -364,10 +364,115 @@ const struct locale_data _nl_C_LC_CTYPE =
 #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" },
+	      "print\0" "graph\0" "blank\0" "cntrl\0" "punct\0"  "alnum\0"
+	      "left_to_right\0" "right_to_left\0" "num_terminator\0"
+	      "num_separator\0" "segment_separator\0" "block_separator\0"
+	      "direction_control\0" "sym_swap_layout\0" "char_shape_selector\0"
+	      "num_share_selector\0" "non_spacing\0" "non_spacing_level3\0"
+	      "r_connect\0" "no_connect\0" "no_connect-space\0"
+	      "vowel_connect\0" },
+    { string: "tolower\0" "toupper\0" "tosymmetric\0" },
     { string: _nl_C_LC_CTYPE_width },
     { word: 1 },
-    { string: "ANSI_X3.4-1968" }
+    { string: "ANSI_X3.4-1968" },
+    { word: 1 },
+    { string: "0" },
+    { string: "1" },
+    { string: "2" },
+    { string: "3" },
+    { string: "4" },
+    { string: "5" },
+    { string: "6" },
+    { string: "7" },
+    { string: "8" },
+    { string: "9" },
+#if BYTE_ORDER == LITTLE_ENDIAN
+    { wstr: (uint32_t *) L"" },
+    { wstr: (uint32_t *) L"" },
+    { wstr: (uint32_t *) L"" },
+    { wstr: (uint32_t *) L"" },
+    { wstr: (uint32_t *) L"" },
+    { wstr: (uint32_t *) L"" },
+    { wstr: (uint32_t *) L"" },
+    { wstr: (uint32_t *) L"" },
+    { wstr: (uint32_t *) L"" },
+    { wstr: (uint32_t *) L"" },
+#endif
+    { wstr: (uint32_t *) L"0" },
+    { wstr: (uint32_t *) L"1" },
+    { wstr: (uint32_t *) L"2" },
+    { wstr: (uint32_t *) L"3" },
+    { wstr: (uint32_t *) L"4" },
+    { wstr: (uint32_t *) L"5" },
+    { wstr: (uint32_t *) L"6" },
+    { wstr: (uint32_t *) L"7" },
+    { wstr: (uint32_t *) L"8" },
+    { wstr: (uint32_t *) L"9" },
+#if BYTE_ORDER == BIG_ENDIAN
+    { wstr: (uint32_t *) L"" },
+    { wstr: (uint32_t *) L"" },
+    { wstr: (uint32_t *) L"" },
+    { wstr: (uint32_t *) L"" },
+    { wstr: (uint32_t *) L"" },
+    { wstr: (uint32_t *) L"" },
+    { wstr: (uint32_t *) L"" },
+    { wstr: (uint32_t *) L"" },
+    { wstr: (uint32_t *) L"" },
+    { wstr: (uint32_t *) L"" },
+#endif
+    { string: "0" },
+    { string: "1" },
+    { string: "2" },
+    { string: "3" },
+    { string: "4" },
+    { string: "5" },
+    { string: "6" },
+    { string: "7" },
+    { string: "8" },
+    { string: "9" },
+#if BYTE_ORDER == LITTLE_ENDIAN
+    { word: L'\0' },
+    { word: L'\0' },
+    { word: L'\0' },
+    { word: L'\0' },
+    { word: L'\0' },
+    { word: L'\0' },
+    { word: L'\0' },
+    { word: L'\0' },
+    { word: L'\0' },
+    { word: L'\0' },
+#endif
+    { word: L'0' },
+    { word: L'1' },
+    { word: L'2' },
+    { word: L'3' },
+    { word: L'4' },
+    { word: L'5' },
+    { word: L'6' },
+    { word: L'7' },
+    { word: L'8' },
+    { word: L'9' },
+#if BYTE_ORDER == BIG_ENDIAN
+    { word: L'\0' },
+    { word: L'\0' },
+    { word: L'\0' },
+    { word: L'\0' },
+    { word: L'\0' },
+    { word: L'\0' },
+    { word: L'\0' },
+    { word: L'\0' },
+    { word: L'\0' },
+    { word: L'\0' },
+#endif
+    { word: 0 },
+    { word: 0 },
+    { word: 0 },
+    { word: 0 },
+    { string: "" },
+    { string: "" },
+    { string: "" },
+    { string: "" },
+    { string: "" },
+    { string: "" }
   }
 };