(linenum→info "unix/slp.c:2238")

glibc/2.7/locale/C-ctype.c

    1: /* Copyright (C) 1995-2002, 2003 Free Software Foundation, Inc.
    2:    This file is part of the GNU C Library.
    3:    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1995.
    4: 
    5:    The GNU C Library is free software; you can redistribute it and/or
    6:    modify it under the terms of the GNU Lesser General Public
    7:    License as published by the Free Software Foundation; either
    8:    version 2.1 of the License, or (at your option) any later version.
    9: 
   10:    The GNU C Library is distributed in the hope that it will be useful,
   11:    but WITHOUT ANY WARRANTY; without even the implied warranty of
   12:    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   13:    Lesser General Public License for more details.
   14: 
   15:    You should have received a copy of the GNU Lesser General Public
   16:    License along with the GNU C Library; if not, write to the Free
   17:    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
   18:    02111-1307 USA.  */
   19: 
   20: #include "localeinfo.h"
   21: #include <endian.h>
   22: 
   23: #include "C-translit.h"
   24: 
   25: /* This table's entries are taken from POSIX.2 Table 2-6
   26:    ``LC_CTYPE Category Definition in the POSIX Locale''.
   27: 
   28:    The `_nl_C_LC_CTYPE_width' array is a GNU extension.
   29: 
   30:    In the `_nl_C_LC_CTYPE_class' array the value for EOF (== -1)
   31:    is set to always return 0 and the conversion arrays return EOF.  */
   32: 
   33: const char _nl_C_LC_CTYPE_class[768] attribute_hidden =
   34:   /* 0x80 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   35:   /* 0x86 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   36:   /* 0x8c */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   37:   /* 0x92 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   38:   /* 0x98 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   39:   /* 0x9e */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   40:   /* 0xa4 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   41:   /* 0xaa */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   42:   /* 0xb0 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   43:   /* 0xb6 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   44:   /* 0xbc */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   45:   /* 0xc2 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   46:   /* 0xc8 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   47:   /* 0xce */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   48:   /* 0xd4 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   49:   /* 0xda */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   50:   /* 0xe0 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   51:   /* 0xe6 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   52:   /* 0xec */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   53:   /* 0xf2 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   54:   /* 0xf8 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   55:   /* 0xfe */ "\000\000" "\000\000" "\002\000" "\002\000" "\002\000" "\002\000"
   56:   /* 0x04 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\003\040"
   57:   /* 0x0a */ "\002\040" "\002\040" "\002\040" "\002\040" "\002\000" "\002\000"
   58:   /* 0x10 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
   59:   /* 0x16 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000"
   60:   /* 0x1c */ "\002\000" "\002\000" "\002\000" "\002\000" "\001\140" "\004\300"
   61:   /* 0x22 */ "\004\300" "\004\300" "\004\300" "\004\300" "\004\300" "\004\300"
   62:   /* 0x28 */ "\004\300" "\004\300" "\004\300" "\004\300" "\004\300" "\004\300"
   63:   /* 0x2e */ "\004\300" "\004\300" "\010\330" "\010\330" "\010\330" "\010\330"
   64:   /* 0x34 */ "\010\330" "\010\330" "\010\330" "\010\330" "\010\330" "\010\330"
   65:   /* 0x3a */ "\004\300" "\004\300" "\004\300" "\004\300" "\004\300" "\004\300"
   66:   /* 0x40 */ "\004\300" "\010\325" "\010\325" "\010\325" "\010\325" "\010\325"
   67:   /* 0x46 */ "\010\325" "\010\305" "\010\305" "\010\305" "\010\305" "\010\305"
   68:   /* 0x4c */ "\010\305" "\010\305" "\010\305" "\010\305" "\010\305" "\010\305"
   69:   /* 0x52 */ "\010\305" "\010\305" "\010\305" "\010\305" "\010\305" "\010\305"
   70:   /* 0x58 */ "\010\305" "\010\305" "\010\305" "\004\300" "\004\300" "\004\300"
   71:   /* 0x5e */ "\004\300" "\004\300" "\004\300" "\010\326" "\010\326" "\010\326"
   72:   /* 0x64 */ "\010\326" "\010\326" "\010\326" "\010\306" "\010\306" "\010\306"
   73:   /* 0x6a */ "\010\306" "\010\306" "\010\306" "\010\306" "\010\306" "\010\306"
   74:   /* 0x70 */ "\010\306" "\010\306" "\010\306" "\010\306" "\010\306" "\010\306"
   75:   /* 0x76 */ "\010\306" "\010\306" "\010\306" "\010\306" "\010\306" "\004\300"
   76:   /* 0x7c */ "\004\300" "\004\300" "\004\300" "\002\000" "\000\000" "\000\000"
   77:   /* 0x82 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   78:   /* 0x88 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   79:   /* 0x8e */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   80:   /* 0x94 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   81:   /* 0x9a */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   82:   /* 0xa0 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   83:   /* 0xa6 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   84:   /* 0xac */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   85:   /* 0xb2 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   86:   /* 0xb8 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   87:   /* 0xbe */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   88:   /* 0xc4 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   89:   /* 0xca */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   90:   /* 0xd0 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   91:   /* 0xd6 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   92:   /* 0xdc */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   93:   /* 0xe2 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   94:   /* 0xe8 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   95:   /* 0xee */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   96:   /* 0xf4 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   97:   /* 0xfa */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   98: ;
   99: const char _nl_C_LC_CTYPE_class32[1024] attribute_hidden =
  100:   /* 0x00 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
  101:   /* 0x03 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
  102:   /* 0x06 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
  103:   /* 0x09 */ "\000\000\003\040" "\000\000\002\040" "\000\000\002\040"
  104:   /* 0x0c */ "\000\000\002\040" "\000\000\002\040" "\000\000\002\000"
  105:   /* 0x0f */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
  106:   /* 0x12 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
  107:   /* 0x15 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
  108:   /* 0x18 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
  109:   /* 0x1b */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
  110:   /* 0x1e */ "\000\000\002\000" "\000\000\002\000" "\000\000\001\140"
  111:   /* 0x21 */ "\000\000\004\300" "\000\000\004\300" "\000\000\004\300"
  112:   /* 0x24 */ "\000\000\004\300" "\000\000\004\300" "\000\000\004\300"
  113:   /* 0x27 */ "\000\000\004\300" "\000\000\004\300" "\000\000\004\300"
  114:   /* 0x2a */ "\000\000\004\300" "\000\000\004\300" "\000\000\004\300"
  115:   /* 0x2d */ "\000\000\004\300" "\000\000\004\300" "\000\000\004\300"
  116:   /* 0x30 */ "\000\000\010\330" "\000\000\010\330" "\000\000\010\330"
  117:   /* 0x33 */ "\000\000\010\330" "\000\000\010\330" "\000\000\010\330"
  118:   /* 0x36 */ "\000\000\010\330" "\000\000\010\330" "\000\000\010\330"
  119:   /* 0x39 */ "\000\000\010\330" "\000\000\004\300" "\000\000\004\300"
  120:   /* 0x3c */ "\000\000\004\300" "\000\000\004\300" "\000\000\004\300"
  121:   /* 0x3f */ "\000\000\004\300" "\000\000\004\300" "\000\000\010\325"
  122:   /* 0x42 */ "\000\000\010\325" "\000\000\010\325" "\000\000\010\325"
  123:   /* 0x45 */ "\000\000\010\325" "\000\000\010\325" "\000\000\010\305"
  124:   /* 0x48 */ "\000\000\010\305" "\000\000\010\305" "\000\000\010\305"
  125:   /* 0x4b */ "\000\000\010\305" "\000\000\010\305" "\000\000\010\305"
  126:   /* 0x4e */ "\000\000\010\305" "\000\000\010\305" "\000\000\010\305"
  127:   /* 0x51 */ "\000\000\010\305" "\000\000\010\305" "\000\000\010\305"
  128:   /* 0x54 */ "\000\000\010\305" "\000\000\010\305" "\000\000\010\305"
  129:   /* 0x57 */ "\000\000\010\305" "\000\000\010\305" "\000\000\010\305"
  130:   /* 0x5a */ "\000\000\010\305" "\000\000\004\300" "\000\000\004\300"
  131:   /* 0x5d */ "\000\000\004\300" "\000\000\004\300" "\000\000\004\300"
  132:   /* 0x60 */ "\000\000\004\300" "\000\000\010\326" "\000\000\010\326"
  133:   /* 0x63 */ "\000\000\010\326" "\000\000\010\326" "\000\000\010\326"
  134:   /* 0x66 */ "\000\000\010\326" "\000\000\010\306" "\000\000\010\306"
  135:   /* 0x69 */ "\000\000\010\306" "\000\000\010\306" "\000\000\010\306"
  136:   /* 0x6c */ "\000\000\010\306" "\000\000\010\306" "\000\000\010\306"
  137:   /* 0x6f */ "\000\000\010\306" "\000\000\010\306" "\000\000\010\306"
  138:   /* 0x72 */ "\000\000\010\306" "\000\000\010\306" "\000\000\010\306"
  139:   /* 0x75 */ "\000\000\010\306" "\000\000\010\306" "\000\000\010\306"
  140:   /* 0x78 */ "\000\000\010\306" "\000\000\010\306" "\000\000\010\306"
  141:   /* 0x7b */ "\000\000\004\300" "\000\000\004\300" "\000\000\004\300"
  142:   /* 0x7e */ "\000\000\004\300" "\000\000\002\000" "\000\000\000\000"
  143:   /* 0x81 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  144:   /* 0x84 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  145:   /* 0x87 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  146:   /* 0x8a */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  147:   /* 0x8d */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  148:   /* 0x90 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  149:   /* 0x93 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  150:   /* 0x96 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  151:   /* 0x99 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  152:   /* 0x9c */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  153:   /* 0x9f */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  154:   /* 0xa2 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  155:   /* 0xa5 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  156:   /* 0xa8 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  157:   /* 0xab */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  158:   /* 0xae */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  159:   /* 0xb1 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  160:   /* 0xb4 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  161:   /* 0xb7 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  162:   /* 0xba */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  163:   /* 0xbd */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  164:   /* 0xc0 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  165:   /* 0xc3 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  166:   /* 0xc6 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  167:   /* 0xc9 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  168:   /* 0xcc */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  169:   /* 0xcf */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  170:   /* 0xd2 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  171:   /* 0xd5 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  172:   /* 0xd8 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  173:   /* 0xdb */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  174:   /* 0xde */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  175:   /* 0xe1 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  176:   /* 0xe4 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  177:   /* 0xe7 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  178:   /* 0xea */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  179:   /* 0xed */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  180:   /* 0xf0 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  181:   /* 0xf3 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  182:   /* 0xf6 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  183:   /* 0xf9 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  184:   /* 0xfc */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
  185:   /* 0xff */ "\000\000\000\000"
  186: ;
  187: const uint32_t _nl_C_LC_CTYPE_toupper[384] attribute_hidden =
  188: {
  189:   /* 0x80 */ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
  190:   /* 0x88 */ 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
  191:   /* 0x90 */ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
  192:   /* 0x98 */ 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
  193:   /* 0xa0 */ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
  194:   /* 0xa8 */ 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
  195:   /* 0xb0 */ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
  196:   /* 0xb8 */ 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
  197:   /* 0xc0 */ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
  198:   /* 0xc8 */ 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
  199:   /* 0xd0 */ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
  200:   /* 0xd8 */ 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
  201:   /* 0xe0 */ 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
  202:   /* 0xe8 */ 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
  203:   /* 0xf0 */ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
  204:   /* 0xf8 */ 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xffffffff,
  205:   /* 0x00 */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
  206:   /* 0x08 */ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
  207:   /* 0x10 */ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
  208:   /* 0x18 */ 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
  209:   /* 0x20 */ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
  210:   /* 0x28 */ 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
  211:   /* 0x30 */ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
  212:   /* 0x38 */ 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
  213:   /* 0x40 */ 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
  214:   /* 0x48 */ 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
  215:   /* 0x50 */ 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
  216:   /* 0x58 */ 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
  217:   /* 0x60 */ 0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
  218:   /* 0x68 */ 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
  219:   /* 0x70 */ 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
  220:   /* 0x78 */ 0x58, 0x59, 0x5a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
  221:   /* 0x80 */ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
  222:   /* 0x88 */ 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
  223:   /* 0x90 */ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
  224:   /* 0x98 */ 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
  225:   /* 0xa0 */ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
  226:   /* 0xa8 */ 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
  227:   /* 0xb0 */ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
  228:   /* 0xb8 */ 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
  229:   /* 0xc0 */ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
  230:   /* 0xc8 */ 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
  231:   /* 0xd0 */ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
  232:   /* 0xd8 */ 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
  233:   /* 0xe0 */ 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
  234:   /* 0xe8 */ 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
  235:   /* 0xf0 */ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
  236:   /* 0xf8 */ 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff
  237: };
  238: const uint32_t _nl_C_LC_CTYPE_tolower[384] attribute_hidden =
  239: {
  240:   /* 0x80 */ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
  241:   /* 0x88 */ 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
  242:   /* 0x90 */ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
  243:   /* 0x98 */ 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
  244:   /* 0xa0 */ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
  245:   /* 0xa8 */ 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
  246:   /* 0xb0 */ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
  247:   /* 0xb8 */ 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
  248:   /* 0xc0 */ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
  249:   /* 0xc8 */ 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
  250:   /* 0xd0 */ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
  251:   /* 0xd8 */ 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
  252:   /* 0xe0 */ 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
  253:   /* 0xe8 */ 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
  254:   /* 0xf0 */ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
  255:   /* 0xf8 */ 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xffffffff,
  256:   /* 0x00 */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
  257:   /* 0x08 */ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
  258:   /* 0x10 */ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
  259:   /* 0x18 */ 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
  260:   /* 0x20 */ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
  261:   /* 0x28 */ 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
  262:   /* 0x30 */ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
  263:   /* 0x38 */ 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
  264:   /* 0x40 */ 0x40, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
  265:   /* 0x48 */ 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
  266:   /* 0x50 */ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
  267:   /* 0x58 */ 0x78, 0x79, 0x7a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
  268:   /* 0x60 */ 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
  269:   /* 0x68 */ 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
  270:   /* 0x70 */ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
  271:   /* 0x78 */ 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
  272:   /* 0x80 */ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
  273:   /* 0x88 */ 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
  274:   /* 0x90 */ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
  275:   /* 0x98 */ 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
  276:   /* 0xa0 */ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
  277:   /* 0xa8 */ 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
  278:   /* 0xb0 */ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
  279:   /* 0xb8 */ 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
  280:   /* 0xc0 */ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
  281:   /* 0xc8 */ 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
  282:   /* 0xd0 */ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
  283:   /* 0xd8 */ 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
  284:   /* 0xe0 */ 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
  285:   /* 0xe8 */ 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
  286:   /* 0xf0 */ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
  287:   /* 0xf8 */ 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff
  288: };
  289: 
  290: #define STRUCT_CTYPE_CLASS(p, q) \
  291:   struct                                                                      \
  292:     {                                                                         \
  293:       uint32_t isctype_data[8];                                               \
  294:       uint32_t header[5];                                                     \
  295:       uint32_t level1[1];                                                     \
  296:       uint32_t level2[1 << q];                                                \
  297:       uint32_t level3[1 << p];                                                \
  298:     }
  299: 
  300: const STRUCT_CTYPE_CLASS(1, 1) _nl_C_LC_CTYPE_class_upper attribute_hidden =
  301: {
  302:   { 0x00000000, 0x00000000, 0x07fffffe, 0x00000000,
  303:     0x00000000, 0x00000000, 0x00000000, 0x00000000
  304:   },
  305:   { 7, 1, 6, 1, 1 },
  306:   /* 1st-level table */
  307:   { 6 * sizeof (uint32_t) },
  308:   /* 2nd-level table */
  309:   { 0, 8 * sizeof (uint32_t) },
  310:   /* 3rd-level table */
  311:   { 0x07fffffe, 0x00000000 }
  312: };
  313: const STRUCT_CTYPE_CLASS(1, 1) _nl_C_LC_CTYPE_class_lower attribute_hidden =
  314: {
  315:   { 0x00000000, 0x00000000, 0x00000000, 0x07fffffe,
  316:     0x00000000, 0x00000000, 0x00000000, 0x00000000
  317:   },
  318:   { 7, 1, 6, 1, 1 },
  319:   /* 1st-level table */
  320:   { 6 * sizeof (uint32_t) },
  321:   /* 2nd-level table */
  322:   { 0, 8 * sizeof (uint32_t) },
  323:   /* 3rd-level table */
  324:   { 0x00000000, 0x07fffffe }
  325: };
  326: const STRUCT_CTYPE_CLASS(1, 1) _nl_C_LC_CTYPE_class_alpha attribute_hidden =
  327: {
  328:   { 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
  329:     0x00000000, 0x00000000, 0x00000000, 0x00000000
  330:   },
  331:   { 7, 1, 6, 1, 1 },
  332:   /* 1st-level table */
  333:   { 6 * sizeof (uint32_t) },
  334:   /* 2nd-level table */
  335:   { 0, 8 * sizeof (uint32_t) },
  336:   /* 3rd-level table */
  337:   { 0x07fffffe, 0x07fffffe }
  338: };
  339: const STRUCT_CTYPE_CLASS(1, 0) _nl_C_LC_CTYPE_class_digit attribute_hidden =
  340: {
  341:   { 0x00000000, 0x03ff0000, 0x00000000, 0x00000000,
  342:     0x00000000, 0x00000000, 0x00000000, 0x00000000
  343:   },
  344:   { 6, 1, 6, 0, 1 },
  345:   /* 1st-level table */
  346:   { 6 * sizeof (uint32_t) },
  347:   /* 2nd-level table */
  348:   { 7 * sizeof (uint32_t) },
  349:   /* 3rd-level table */
  350:   { 0x00000000, 0x03ff0000 }
  351: };
  352: const STRUCT_CTYPE_CLASS(2, 0) _nl_C_LC_CTYPE_class_xdigit attribute_hidden =
  353: {
  354:   { 0x00000000, 0x03ff0000, 0x0000007e, 0x0000007e,
  355:     0x00000000, 0x00000000, 0x00000000, 0x00000000
  356:   },
  357:   { 7, 1, 7, 0, 3 },
  358:   /* 1st-level table */
  359:   { 6 * sizeof (uint32_t) },
  360:   /* 2nd-level table */
  361:   { 7 * sizeof (uint32_t) },
  362:   /* 3rd-level table */
  363:   { 0x00000000, 0x03ff0000, 0x0000007e, 0x0000007e }
  364: };
  365: const STRUCT_CTYPE_CLASS(1, 0) _nl_C_LC_CTYPE_class_space attribute_hidden =
  366: {
  367:   { 0x00003e00, 0x00000001, 0x00000000, 0x00000000,
  368:     0x00000000, 0x00000000, 0x00000000, 0x00000000
  369:   },
  370:   { 6, 1, 6, 0, 1 },
  371:   /* 1st-level table */
  372:   { 6 * sizeof (uint32_t) },
  373:   /* 2nd-level table */
  374:   { 7 * sizeof (uint32_t) },
  375:   /* 3rd-level table */
  376:   { 0x00003e00, 0x00000001 }
  377: };
  378: const STRUCT_CTYPE_CLASS(2, 0) _nl_C_LC_CTYPE_class_print attribute_hidden =
  379: {
  380:   { 0x00000000, 0xffffffff, 0xffffffff, 0x7fffffff,
  381:     0x00000000, 0x00000000, 0x00000000, 0x00000000
  382:   },
  383:   { 7, 1, 7, 0, 3 },
  384:   /* 1st-level table */
  385:   { 6 * sizeof (uint32_t) },
  386:   /* 2nd-level table */
  387:   { 7 * sizeof (uint32_t) },
  388:   /* 3rd-level table */
  389:   { 0x00000000, 0xffffffff, 0xffffffff, 0x7fffffff }
  390: };
  391: