1251881Speter/* 2251881Speter * ctype.c: Character classification routines 3251881Speter * 4251881Speter * ==================================================================== 5251881Speter * Licensed to the Apache Software Foundation (ASF) under one 6251881Speter * or more contributor license agreements. See the NOTICE file 7251881Speter * distributed with this work for additional information 8251881Speter * regarding copyright ownership. The ASF licenses this file 9251881Speter * to you under the Apache License, Version 2.0 (the 10251881Speter * "License"); you may not use this file except in compliance 11251881Speter * with the License. You may obtain a copy of the License at 12251881Speter * 13251881Speter * http://www.apache.org/licenses/LICENSE-2.0 14251881Speter * 15251881Speter * Unless required by applicable law or agreed to in writing, 16251881Speter * software distributed under the License is distributed on an 17251881Speter * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 18251881Speter * KIND, either express or implied. See the License for the 19251881Speter * specific language governing permissions and limitations 20251881Speter * under the License. 21251881Speter * ==================================================================== 22251881Speter */ 23251881Speter 24251881Speter 25251881Speter 26251881Speter#include "svn_ctype.h" 27251881Speter 28289180Speter#ifndef WIN32 29289180Speterstatic 30289180Speter#else 31289180Speter/* This variable is exported as 'CONSTANT' in our .def file for libsvn_subr, 32289180Speter with the name svn_ctype_table. 33289180Speter 34289180Speter This long deprecated construct will export *a pointer to* the 35289180Speter variable exported. 36289180Speter 37289180Speter See http://support.microsoft.com/kb/90530/en-us for the ugly details on 38289180Speter this system that was already deprecated when we started Subversion and 39289180Speter on why we should have used __declspec(dllexport) when initially exporting 40289180Speter this variable. (It would allow avoiding the pointer transformation). 41289180Speter 42289180Speter But to keep backwards compatibility this symbol will have to stay public 43289180Speter on Windows until Subversion 2.0. */ 44289180Speter#endif 45251881Speterconst apr_uint32_t svn_ctype_table_internal[256] = 46251881Speter { 47251881Speter /* **** DO NOT EDIT! **** 48251881Speter This table was generated by genctype.py, make changes there. */ 49251881Speter /* nul */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL, 50251881Speter /* soh */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL, 51251881Speter /* stx */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL, 52251881Speter /* etx */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL, 53251881Speter /* eot */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL, 54251881Speter /* enq */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL, 55251881Speter /* ack */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL, 56251881Speter /* bel */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL, 57251881Speter /* bs */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL, 58251881Speter /* ht */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL | SVN_CTYPE_SPACE, 59251881Speter /* nl */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL | SVN_CTYPE_SPACE, 60251881Speter /* vt */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL | SVN_CTYPE_SPACE, 61251881Speter /* np */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL | SVN_CTYPE_SPACE, 62251881Speter /* cr */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL | SVN_CTYPE_SPACE, 63251881Speter /* so */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL, 64251881Speter /* si */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL, 65251881Speter /* dle */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL, 66251881Speter /* dc1 */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL, 67251881Speter /* dc2 */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL, 68251881Speter /* dc3 */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL, 69251881Speter /* dc4 */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL, 70251881Speter /* nak */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL, 71251881Speter /* syn */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL, 72251881Speter /* etb */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL, 73251881Speter /* can */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL, 74251881Speter /* em */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL, 75251881Speter /* sub */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL, 76251881Speter /* esc */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL, 77251881Speter /* fs */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL, 78251881Speter /* gs */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL, 79251881Speter /* rs */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL, 80251881Speter /* us */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL, 81251881Speter /* sp */ SVN_CTYPE_ASCII | SVN_CTYPE_SPACE, 82251881Speter /* ! */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT, 83251881Speter /* " */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT, 84251881Speter /* # */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT, 85251881Speter /* $ */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT, 86251881Speter /* % */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT, 87251881Speter /* & */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT, 88251881Speter /* ' */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT, 89251881Speter /* ( */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT, 90251881Speter /* ) */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT, 91251881Speter /* * */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT, 92251881Speter /* + */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT, 93251881Speter /* , */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT, 94251881Speter /* - */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT, 95251881Speter /* . */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT, 96251881Speter /* / */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT, 97251881Speter /* 0 */ SVN_CTYPE_ASCII | SVN_CTYPE_DIGIT, 98251881Speter /* 1 */ SVN_CTYPE_ASCII | SVN_CTYPE_DIGIT, 99251881Speter /* 2 */ SVN_CTYPE_ASCII | SVN_CTYPE_DIGIT, 100251881Speter /* 3 */ SVN_CTYPE_ASCII | SVN_CTYPE_DIGIT, 101251881Speter /* 4 */ SVN_CTYPE_ASCII | SVN_CTYPE_DIGIT, 102251881Speter /* 5 */ SVN_CTYPE_ASCII | SVN_CTYPE_DIGIT, 103251881Speter /* 6 */ SVN_CTYPE_ASCII | SVN_CTYPE_DIGIT, 104251881Speter /* 7 */ SVN_CTYPE_ASCII | SVN_CTYPE_DIGIT, 105251881Speter /* 8 */ SVN_CTYPE_ASCII | SVN_CTYPE_DIGIT, 106251881Speter /* 9 */ SVN_CTYPE_ASCII | SVN_CTYPE_DIGIT, 107251881Speter /* : */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT, 108251881Speter /* ; */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT, 109251881Speter /* < */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT, 110251881Speter /* = */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT, 111251881Speter /* > */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT, 112251881Speter /* ? */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT, 113251881Speter /* @ */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT, 114251881Speter /* A */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER | SVN_CTYPE_XALPHA, 115251881Speter /* B */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER | SVN_CTYPE_XALPHA, 116251881Speter /* C */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER | SVN_CTYPE_XALPHA, 117251881Speter /* D */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER | SVN_CTYPE_XALPHA, 118251881Speter /* E */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER | SVN_CTYPE_XALPHA, 119251881Speter /* F */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER | SVN_CTYPE_XALPHA, 120251881Speter /* G */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER, 121251881Speter /* H */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER, 122251881Speter /* I */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER, 123251881Speter /* J */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER, 124251881Speter /* K */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER, 125251881Speter /* L */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER, 126251881Speter /* M */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER, 127251881Speter /* N */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER, 128251881Speter /* O */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER, 129251881Speter /* P */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER, 130251881Speter /* Q */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER, 131251881Speter /* R */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER, 132251881Speter /* S */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER, 133251881Speter /* T */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER, 134251881Speter /* U */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER, 135251881Speter /* V */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER, 136251881Speter /* W */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER, 137251881Speter /* X */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER, 138251881Speter /* Y */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER, 139251881Speter /* Z */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER, 140251881Speter /* [ */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT, 141251881Speter /* \ */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT, 142251881Speter /* ] */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT, 143251881Speter /* ^ */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT, 144251881Speter /* _ */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT, 145251881Speter /* ` */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT, 146251881Speter /* a */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER | SVN_CTYPE_XALPHA, 147251881Speter /* b */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER | SVN_CTYPE_XALPHA, 148251881Speter /* c */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER | SVN_CTYPE_XALPHA, 149251881Speter /* d */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER | SVN_CTYPE_XALPHA, 150251881Speter /* e */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER | SVN_CTYPE_XALPHA, 151251881Speter /* f */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER | SVN_CTYPE_XALPHA, 152251881Speter /* g */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER, 153251881Speter /* h */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER, 154251881Speter /* i */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER, 155251881Speter /* j */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER, 156251881Speter /* k */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER, 157251881Speter /* l */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER, 158251881Speter /* m */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER, 159251881Speter /* n */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER, 160251881Speter /* o */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER, 161251881Speter /* p */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER, 162251881Speter /* q */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER, 163251881Speter /* r */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER, 164251881Speter /* s */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER, 165251881Speter /* t */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER, 166251881Speter /* u */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER, 167251881Speter /* v */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER, 168251881Speter /* w */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER, 169251881Speter /* x */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER, 170251881Speter /* y */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER, 171251881Speter /* z */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER, 172251881Speter /* { */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT, 173251881Speter /* | */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT, 174251881Speter /* } */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT, 175251881Speter /* ~ */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT, 176251881Speter /* del */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL, 177251881Speter /* x80 */ SVN_CTYPE_UTF8CONT, 178251881Speter /* x81 */ SVN_CTYPE_UTF8CONT, 179251881Speter /* x82 */ SVN_CTYPE_UTF8CONT, 180251881Speter /* x83 */ SVN_CTYPE_UTF8CONT, 181251881Speter /* x84 */ SVN_CTYPE_UTF8CONT, 182251881Speter /* x85 */ SVN_CTYPE_UTF8CONT, 183251881Speter /* x86 */ SVN_CTYPE_UTF8CONT, 184251881Speter /* x87 */ SVN_CTYPE_UTF8CONT, 185251881Speter /* x88 */ SVN_CTYPE_UTF8CONT, 186251881Speter /* x89 */ SVN_CTYPE_UTF8CONT, 187251881Speter /* x8a */ SVN_CTYPE_UTF8CONT, 188251881Speter /* x8b */ SVN_CTYPE_UTF8CONT, 189251881Speter /* x8c */ SVN_CTYPE_UTF8CONT, 190251881Speter /* x8d */ SVN_CTYPE_UTF8CONT, 191251881Speter /* x8e */ SVN_CTYPE_UTF8CONT, 192251881Speter /* x8f */ SVN_CTYPE_UTF8CONT, 193251881Speter /* x90 */ SVN_CTYPE_UTF8CONT, 194251881Speter /* x91 */ SVN_CTYPE_UTF8CONT, 195251881Speter /* x92 */ SVN_CTYPE_UTF8CONT, 196251881Speter /* x93 */ SVN_CTYPE_UTF8CONT, 197251881Speter /* x94 */ SVN_CTYPE_UTF8CONT, 198251881Speter /* x95 */ SVN_CTYPE_UTF8CONT, 199251881Speter /* x96 */ SVN_CTYPE_UTF8CONT, 200251881Speter /* x97 */ SVN_CTYPE_UTF8CONT, 201251881Speter /* x98 */ SVN_CTYPE_UTF8CONT, 202251881Speter /* x99 */ SVN_CTYPE_UTF8CONT, 203251881Speter /* x9a */ SVN_CTYPE_UTF8CONT, 204251881Speter /* x9b */ SVN_CTYPE_UTF8CONT, 205251881Speter /* x9c */ SVN_CTYPE_UTF8CONT, 206251881Speter /* x9d */ SVN_CTYPE_UTF8CONT, 207251881Speter /* x9e */ SVN_CTYPE_UTF8CONT, 208251881Speter /* x9f */ SVN_CTYPE_UTF8CONT, 209251881Speter /* xa0 */ SVN_CTYPE_UTF8CONT, 210251881Speter /* xa1 */ SVN_CTYPE_UTF8CONT, 211251881Speter /* xa2 */ SVN_CTYPE_UTF8CONT, 212251881Speter /* xa3 */ SVN_CTYPE_UTF8CONT, 213251881Speter /* xa4 */ SVN_CTYPE_UTF8CONT, 214251881Speter /* xa5 */ SVN_CTYPE_UTF8CONT, 215251881Speter /* xa6 */ SVN_CTYPE_UTF8CONT, 216251881Speter /* xa7 */ SVN_CTYPE_UTF8CONT, 217251881Speter /* xa8 */ SVN_CTYPE_UTF8CONT, 218251881Speter /* xa9 */ SVN_CTYPE_UTF8CONT, 219251881Speter /* xaa */ SVN_CTYPE_UTF8CONT, 220251881Speter /* xab */ SVN_CTYPE_UTF8CONT, 221251881Speter /* xac */ SVN_CTYPE_UTF8CONT, 222251881Speter /* xad */ SVN_CTYPE_UTF8CONT, 223251881Speter /* xae */ SVN_CTYPE_UTF8CONT, 224251881Speter /* xaf */ SVN_CTYPE_UTF8CONT, 225251881Speter /* xb0 */ SVN_CTYPE_UTF8CONT, 226251881Speter /* xb1 */ SVN_CTYPE_UTF8CONT, 227251881Speter /* xb2 */ SVN_CTYPE_UTF8CONT, 228251881Speter /* xb3 */ SVN_CTYPE_UTF8CONT, 229251881Speter /* xb4 */ SVN_CTYPE_UTF8CONT, 230251881Speter /* xb5 */ SVN_CTYPE_UTF8CONT, 231251881Speter /* xb6 */ SVN_CTYPE_UTF8CONT, 232251881Speter /* xb7 */ SVN_CTYPE_UTF8CONT, 233251881Speter /* xb8 */ SVN_CTYPE_UTF8CONT, 234251881Speter /* xb9 */ SVN_CTYPE_UTF8CONT, 235251881Speter /* xba */ SVN_CTYPE_UTF8CONT, 236251881Speter /* xbb */ SVN_CTYPE_UTF8CONT, 237251881Speter /* xbc */ SVN_CTYPE_UTF8CONT, 238251881Speter /* xbd */ SVN_CTYPE_UTF8CONT, 239251881Speter /* xbe */ SVN_CTYPE_UTF8CONT, 240251881Speter /* xbf */ SVN_CTYPE_UTF8CONT, 241251881Speter /* xc0 */ 0, 242251881Speter /* xc1 */ SVN_CTYPE_UTF8LEAD, 243251881Speter /* xc2 */ SVN_CTYPE_UTF8LEAD, 244251881Speter /* xc3 */ SVN_CTYPE_UTF8LEAD, 245251881Speter /* xc4 */ SVN_CTYPE_UTF8LEAD, 246251881Speter /* xc5 */ SVN_CTYPE_UTF8LEAD, 247251881Speter /* xc6 */ SVN_CTYPE_UTF8LEAD, 248251881Speter /* xc7 */ SVN_CTYPE_UTF8LEAD, 249251881Speter /* xc8 */ SVN_CTYPE_UTF8LEAD, 250251881Speter /* xc9 */ SVN_CTYPE_UTF8LEAD, 251251881Speter /* xca */ SVN_CTYPE_UTF8LEAD, 252251881Speter /* xcb */ SVN_CTYPE_UTF8LEAD, 253251881Speter /* xcc */ SVN_CTYPE_UTF8LEAD, 254251881Speter /* xcd */ SVN_CTYPE_UTF8LEAD, 255251881Speter /* xce */ SVN_CTYPE_UTF8LEAD, 256251881Speter /* xcf */ SVN_CTYPE_UTF8LEAD, 257251881Speter /* xd0 */ SVN_CTYPE_UTF8LEAD, 258251881Speter /* xd1 */ SVN_CTYPE_UTF8LEAD, 259251881Speter /* xd2 */ SVN_CTYPE_UTF8LEAD, 260251881Speter /* xd3 */ SVN_CTYPE_UTF8LEAD, 261251881Speter /* xd4 */ SVN_CTYPE_UTF8LEAD, 262251881Speter /* xd5 */ SVN_CTYPE_UTF8LEAD, 263251881Speter /* xd6 */ SVN_CTYPE_UTF8LEAD, 264251881Speter /* xd7 */ SVN_CTYPE_UTF8LEAD, 265251881Speter /* xd8 */ SVN_CTYPE_UTF8LEAD, 266251881Speter /* xd9 */ SVN_CTYPE_UTF8LEAD, 267251881Speter /* xda */ SVN_CTYPE_UTF8LEAD, 268251881Speter /* xdb */ SVN_CTYPE_UTF8LEAD, 269251881Speter /* xdc */ SVN_CTYPE_UTF8LEAD, 270251881Speter /* xdd */ SVN_CTYPE_UTF8LEAD, 271251881Speter /* xde */ SVN_CTYPE_UTF8LEAD, 272251881Speter /* xdf */ SVN_CTYPE_UTF8LEAD, 273251881Speter /* xe0 */ 0, 274251881Speter /* xe1 */ SVN_CTYPE_UTF8LEAD, 275251881Speter /* xe2 */ SVN_CTYPE_UTF8LEAD, 276251881Speter /* xe3 */ SVN_CTYPE_UTF8LEAD, 277251881Speter /* xe4 */ SVN_CTYPE_UTF8LEAD, 278251881Speter /* xe5 */ SVN_CTYPE_UTF8LEAD, 279251881Speter /* xe6 */ SVN_CTYPE_UTF8LEAD, 280251881Speter /* xe7 */ SVN_CTYPE_UTF8LEAD, 281251881Speter /* xe8 */ SVN_CTYPE_UTF8LEAD, 282251881Speter /* xe9 */ SVN_CTYPE_UTF8LEAD, 283251881Speter /* xea */ SVN_CTYPE_UTF8LEAD, 284251881Speter /* xeb */ SVN_CTYPE_UTF8LEAD, 285251881Speter /* xec */ SVN_CTYPE_UTF8LEAD, 286251881Speter /* xed */ SVN_CTYPE_UTF8LEAD, 287251881Speter /* xee */ SVN_CTYPE_UTF8LEAD, 288251881Speter /* xef */ SVN_CTYPE_UTF8LEAD, 289251881Speter /* xf0 */ 0, 290251881Speter /* xf1 */ SVN_CTYPE_UTF8LEAD, 291251881Speter /* xf2 */ SVN_CTYPE_UTF8LEAD, 292251881Speter /* xf3 */ SVN_CTYPE_UTF8LEAD, 293251881Speter /* xf4 */ SVN_CTYPE_UTF8LEAD, 294251881Speter /* xf5 */ SVN_CTYPE_UTF8LEAD, 295251881Speter /* xf6 */ SVN_CTYPE_UTF8LEAD, 296251881Speter /* xf7 */ SVN_CTYPE_UTF8LEAD, 297251881Speter /* xf8 */ 0, 298251881Speter /* xf9 */ SVN_CTYPE_UTF8LEAD, 299251881Speter /* xfa */ SVN_CTYPE_UTF8LEAD, 300251881Speter /* xfb */ SVN_CTYPE_UTF8LEAD, 301251881Speter /* xfc */ 0, 302251881Speter /* xfd */ SVN_CTYPE_UTF8LEAD, 303251881Speter /* xfe */ 0, 304251881Speter /* xff */ 0 305251881Speter }; 306251881Speter 307251881Speterconst apr_uint32_t *const svn_ctype_table = svn_ctype_table_internal; 308251881Speter 309251881Speterstatic const unsigned char casefold_table[256] = 310251881Speter { 311251881Speter /* Identity, except {97:122} => {65:90} */ 312251881Speter 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 313251881Speter 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 314251881Speter 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 315251881Speter 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 316251881Speter 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 317251881Speter 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 318251881Speter 96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 319251881Speter 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,123,124,125,126,127, 320251881Speter 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, 321251881Speter 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159, 322251881Speter 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175, 323251881Speter 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191, 324251881Speter 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207, 325251881Speter 208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223, 326251881Speter 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239, 327251881Speter 240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255 328251881Speter }; 329251881Speter 330251881Speterint 331251881Spetersvn_ctype_casecmp(int a, int b) 332251881Speter{ 333251881Speter const int A = casefold_table[(unsigned char)a]; 334251881Speter const int B = casefold_table[(unsigned char)b]; 335251881Speter return A - B; 336251881Speter} 337