TortoiseGitMerge: Updated libsvn stuff
[TortoiseGit.git] / src / TortoiseMerge / libsvn_diff / ctype.c
blob23a98085014ac89a4fc9f28efb2281456052c956
1 /*
2 * ctype.c: Character classification routines
4 * ====================================================================
5 * Licensed to the Apache Software Foundation (ASF) under one
6 * or more contributor license agreements. See the NOTICE file
7 * distributed with this work for additional information
8 * regarding copyright ownership. The ASF licenses this file
9 * to you under the Apache License, Version 2.0 (the
10 * "License"); you may not use this file except in compliance
11 * with the License. You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing,
16 * software distributed under the License is distributed on an
17 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
18 * KIND, either express or implied. See the License for the
19 * specific language governing permissions and limitations
20 * under the License.
21 * ====================================================================
26 #include "svn_ctype.h"
28 const apr_uint32_t svn_ctype_table_internal[256] =
30 /* **** DO NOT EDIT! ****
31 This table was generated by genctype.py, make changes there. */
32 /* nul */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL,
33 /* soh */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL,
34 /* stx */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL,
35 /* etx */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL,
36 /* eot */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL,
37 /* enq */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL,
38 /* ack */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL,
39 /* bel */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL,
40 /* bs */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL,
41 /* ht */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL | SVN_CTYPE_SPACE,
42 /* nl */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL | SVN_CTYPE_SPACE,
43 /* vt */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL | SVN_CTYPE_SPACE,
44 /* np */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL | SVN_CTYPE_SPACE,
45 /* cr */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL | SVN_CTYPE_SPACE,
46 /* so */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL,
47 /* si */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL,
48 /* dle */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL,
49 /* dc1 */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL,
50 /* dc2 */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL,
51 /* dc3 */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL,
52 /* dc4 */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL,
53 /* nak */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL,
54 /* syn */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL,
55 /* etb */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL,
56 /* can */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL,
57 /* em */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL,
58 /* sub */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL,
59 /* esc */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL,
60 /* fs */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL,
61 /* gs */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL,
62 /* rs */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL,
63 /* us */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL,
64 /* sp */ SVN_CTYPE_ASCII | SVN_CTYPE_SPACE,
65 /* ! */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT,
66 /* " */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT,
67 /* # */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT,
68 /* $ */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT,
69 /* % */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT,
70 /* & */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT,
71 /* ' */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT,
72 /* ( */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT,
73 /* ) */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT,
74 /* * */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT,
75 /* + */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT,
76 /* , */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT,
77 /* - */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT,
78 /* . */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT,
79 /* / */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT,
80 /* 0 */ SVN_CTYPE_ASCII | SVN_CTYPE_DIGIT,
81 /* 1 */ SVN_CTYPE_ASCII | SVN_CTYPE_DIGIT,
82 /* 2 */ SVN_CTYPE_ASCII | SVN_CTYPE_DIGIT,
83 /* 3 */ SVN_CTYPE_ASCII | SVN_CTYPE_DIGIT,
84 /* 4 */ SVN_CTYPE_ASCII | SVN_CTYPE_DIGIT,
85 /* 5 */ SVN_CTYPE_ASCII | SVN_CTYPE_DIGIT,
86 /* 6 */ SVN_CTYPE_ASCII | SVN_CTYPE_DIGIT,
87 /* 7 */ SVN_CTYPE_ASCII | SVN_CTYPE_DIGIT,
88 /* 8 */ SVN_CTYPE_ASCII | SVN_CTYPE_DIGIT,
89 /* 9 */ SVN_CTYPE_ASCII | SVN_CTYPE_DIGIT,
90 /* : */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT,
91 /* ; */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT,
92 /* < */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT,
93 /* = */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT,
94 /* > */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT,
95 /* ? */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT,
96 /* @ */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT,
97 /* A */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER | SVN_CTYPE_XALPHA,
98 /* B */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER | SVN_CTYPE_XALPHA,
99 /* C */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER | SVN_CTYPE_XALPHA,
100 /* D */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER | SVN_CTYPE_XALPHA,
101 /* E */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER | SVN_CTYPE_XALPHA,
102 /* F */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER | SVN_CTYPE_XALPHA,
103 /* G */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER,
104 /* H */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER,
105 /* I */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER,
106 /* J */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER,
107 /* K */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER,
108 /* L */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER,
109 /* M */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER,
110 /* N */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER,
111 /* O */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER,
112 /* P */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER,
113 /* Q */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER,
114 /* R */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER,
115 /* S */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER,
116 /* T */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER,
117 /* U */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER,
118 /* V */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER,
119 /* W */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER,
120 /* X */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER,
121 /* Y */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER,
122 /* Z */ SVN_CTYPE_ASCII | SVN_CTYPE_UPPER,
123 /* [ */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT,
124 /* \ */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT,
125 /* ] */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT,
126 /* ^ */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT,
127 /* _ */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT,
128 /* ` */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT,
129 /* a */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER | SVN_CTYPE_XALPHA,
130 /* b */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER | SVN_CTYPE_XALPHA,
131 /* c */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER | SVN_CTYPE_XALPHA,
132 /* d */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER | SVN_CTYPE_XALPHA,
133 /* e */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER | SVN_CTYPE_XALPHA,
134 /* f */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER | SVN_CTYPE_XALPHA,
135 /* g */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER,
136 /* h */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER,
137 /* i */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER,
138 /* j */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER,
139 /* k */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER,
140 /* l */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER,
141 /* m */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER,
142 /* n */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER,
143 /* o */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER,
144 /* p */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER,
145 /* q */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER,
146 /* r */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER,
147 /* s */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER,
148 /* t */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER,
149 /* u */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER,
150 /* v */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER,
151 /* w */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER,
152 /* x */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER,
153 /* y */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER,
154 /* z */ SVN_CTYPE_ASCII | SVN_CTYPE_LOWER,
155 /* { */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT,
156 /* | */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT,
157 /* } */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT,
158 /* ~ */ SVN_CTYPE_ASCII | SVN_CTYPE_PUNCT,
159 /* del */ SVN_CTYPE_ASCII | SVN_CTYPE_CNTRL,
160 /* x80 */ SVN_CTYPE_UTF8CONT,
161 /* x81 */ SVN_CTYPE_UTF8CONT,
162 /* x82 */ SVN_CTYPE_UTF8CONT,
163 /* x83 */ SVN_CTYPE_UTF8CONT,
164 /* x84 */ SVN_CTYPE_UTF8CONT,
165 /* x85 */ SVN_CTYPE_UTF8CONT,
166 /* x86 */ SVN_CTYPE_UTF8CONT,
167 /* x87 */ SVN_CTYPE_UTF8CONT,
168 /* x88 */ SVN_CTYPE_UTF8CONT,
169 /* x89 */ SVN_CTYPE_UTF8CONT,
170 /* x8a */ SVN_CTYPE_UTF8CONT,
171 /* x8b */ SVN_CTYPE_UTF8CONT,
172 /* x8c */ SVN_CTYPE_UTF8CONT,
173 /* x8d */ SVN_CTYPE_UTF8CONT,
174 /* x8e */ SVN_CTYPE_UTF8CONT,
175 /* x8f */ SVN_CTYPE_UTF8CONT,
176 /* x90 */ SVN_CTYPE_UTF8CONT,
177 /* x91 */ SVN_CTYPE_UTF8CONT,
178 /* x92 */ SVN_CTYPE_UTF8CONT,
179 /* x93 */ SVN_CTYPE_UTF8CONT,
180 /* x94 */ SVN_CTYPE_UTF8CONT,
181 /* x95 */ SVN_CTYPE_UTF8CONT,
182 /* x96 */ SVN_CTYPE_UTF8CONT,
183 /* x97 */ SVN_CTYPE_UTF8CONT,
184 /* x98 */ SVN_CTYPE_UTF8CONT,
185 /* x99 */ SVN_CTYPE_UTF8CONT,
186 /* x9a */ SVN_CTYPE_UTF8CONT,
187 /* x9b */ SVN_CTYPE_UTF8CONT,
188 /* x9c */ SVN_CTYPE_UTF8CONT,
189 /* x9d */ SVN_CTYPE_UTF8CONT,
190 /* x9e */ SVN_CTYPE_UTF8CONT,
191 /* x9f */ SVN_CTYPE_UTF8CONT,
192 /* xa0 */ SVN_CTYPE_UTF8CONT,
193 /* xa1 */ SVN_CTYPE_UTF8CONT,
194 /* xa2 */ SVN_CTYPE_UTF8CONT,
195 /* xa3 */ SVN_CTYPE_UTF8CONT,
196 /* xa4 */ SVN_CTYPE_UTF8CONT,
197 /* xa5 */ SVN_CTYPE_UTF8CONT,
198 /* xa6 */ SVN_CTYPE_UTF8CONT,
199 /* xa7 */ SVN_CTYPE_UTF8CONT,
200 /* xa8 */ SVN_CTYPE_UTF8CONT,
201 /* xa9 */ SVN_CTYPE_UTF8CONT,
202 /* xaa */ SVN_CTYPE_UTF8CONT,
203 /* xab */ SVN_CTYPE_UTF8CONT,
204 /* xac */ SVN_CTYPE_UTF8CONT,
205 /* xad */ SVN_CTYPE_UTF8CONT,
206 /* xae */ SVN_CTYPE_UTF8CONT,
207 /* xaf */ SVN_CTYPE_UTF8CONT,
208 /* xb0 */ SVN_CTYPE_UTF8CONT,
209 /* xb1 */ SVN_CTYPE_UTF8CONT,
210 /* xb2 */ SVN_CTYPE_UTF8CONT,
211 /* xb3 */ SVN_CTYPE_UTF8CONT,
212 /* xb4 */ SVN_CTYPE_UTF8CONT,
213 /* xb5 */ SVN_CTYPE_UTF8CONT,
214 /* xb6 */ SVN_CTYPE_UTF8CONT,
215 /* xb7 */ SVN_CTYPE_UTF8CONT,
216 /* xb8 */ SVN_CTYPE_UTF8CONT,
217 /* xb9 */ SVN_CTYPE_UTF8CONT,
218 /* xba */ SVN_CTYPE_UTF8CONT,
219 /* xbb */ SVN_CTYPE_UTF8CONT,
220 /* xbc */ SVN_CTYPE_UTF8CONT,
221 /* xbd */ SVN_CTYPE_UTF8CONT,
222 /* xbe */ SVN_CTYPE_UTF8CONT,
223 /* xbf */ SVN_CTYPE_UTF8CONT,
224 /* xc0 */ 0,
225 /* xc1 */ SVN_CTYPE_UTF8LEAD,
226 /* xc2 */ SVN_CTYPE_UTF8LEAD,
227 /* xc3 */ SVN_CTYPE_UTF8LEAD,
228 /* xc4 */ SVN_CTYPE_UTF8LEAD,
229 /* xc5 */ SVN_CTYPE_UTF8LEAD,
230 /* xc6 */ SVN_CTYPE_UTF8LEAD,
231 /* xc7 */ SVN_CTYPE_UTF8LEAD,
232 /* xc8 */ SVN_CTYPE_UTF8LEAD,
233 /* xc9 */ SVN_CTYPE_UTF8LEAD,
234 /* xca */ SVN_CTYPE_UTF8LEAD,
235 /* xcb */ SVN_CTYPE_UTF8LEAD,
236 /* xcc */ SVN_CTYPE_UTF8LEAD,
237 /* xcd */ SVN_CTYPE_UTF8LEAD,
238 /* xce */ SVN_CTYPE_UTF8LEAD,
239 /* xcf */ SVN_CTYPE_UTF8LEAD,
240 /* xd0 */ SVN_CTYPE_UTF8LEAD,
241 /* xd1 */ SVN_CTYPE_UTF8LEAD,
242 /* xd2 */ SVN_CTYPE_UTF8LEAD,
243 /* xd3 */ SVN_CTYPE_UTF8LEAD,
244 /* xd4 */ SVN_CTYPE_UTF8LEAD,
245 /* xd5 */ SVN_CTYPE_UTF8LEAD,
246 /* xd6 */ SVN_CTYPE_UTF8LEAD,
247 /* xd7 */ SVN_CTYPE_UTF8LEAD,
248 /* xd8 */ SVN_CTYPE_UTF8LEAD,
249 /* xd9 */ SVN_CTYPE_UTF8LEAD,
250 /* xda */ SVN_CTYPE_UTF8LEAD,
251 /* xdb */ SVN_CTYPE_UTF8LEAD,
252 /* xdc */ SVN_CTYPE_UTF8LEAD,
253 /* xdd */ SVN_CTYPE_UTF8LEAD,
254 /* xde */ SVN_CTYPE_UTF8LEAD,
255 /* xdf */ SVN_CTYPE_UTF8LEAD,
256 /* xe0 */ 0,
257 /* xe1 */ SVN_CTYPE_UTF8LEAD,
258 /* xe2 */ SVN_CTYPE_UTF8LEAD,
259 /* xe3 */ SVN_CTYPE_UTF8LEAD,
260 /* xe4 */ SVN_CTYPE_UTF8LEAD,
261 /* xe5 */ SVN_CTYPE_UTF8LEAD,
262 /* xe6 */ SVN_CTYPE_UTF8LEAD,
263 /* xe7 */ SVN_CTYPE_UTF8LEAD,
264 /* xe8 */ SVN_CTYPE_UTF8LEAD,
265 /* xe9 */ SVN_CTYPE_UTF8LEAD,
266 /* xea */ SVN_CTYPE_UTF8LEAD,
267 /* xeb */ SVN_CTYPE_UTF8LEAD,
268 /* xec */ SVN_CTYPE_UTF8LEAD,
269 /* xed */ SVN_CTYPE_UTF8LEAD,
270 /* xee */ SVN_CTYPE_UTF8LEAD,
271 /* xef */ SVN_CTYPE_UTF8LEAD,
272 /* xf0 */ 0,
273 /* xf1 */ SVN_CTYPE_UTF8LEAD,
274 /* xf2 */ SVN_CTYPE_UTF8LEAD,
275 /* xf3 */ SVN_CTYPE_UTF8LEAD,
276 /* xf4 */ SVN_CTYPE_UTF8LEAD,
277 /* xf5 */ SVN_CTYPE_UTF8LEAD,
278 /* xf6 */ SVN_CTYPE_UTF8LEAD,
279 /* xf7 */ SVN_CTYPE_UTF8LEAD,
280 /* xf8 */ 0,
281 /* xf9 */ SVN_CTYPE_UTF8LEAD,
282 /* xfa */ SVN_CTYPE_UTF8LEAD,
283 /* xfb */ SVN_CTYPE_UTF8LEAD,
284 /* xfc */ 0,
285 /* xfd */ SVN_CTYPE_UTF8LEAD,
286 /* xfe */ 0,
287 /* xff */ 0
290 const apr_uint32_t *const svn_ctype_table = svn_ctype_table_internal;
292 static const unsigned char casefold_table[256] =
294 /* Identity, except {97:122} => {65:90} */
295 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
296 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
297 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
298 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
299 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
300 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
301 96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
302 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,123,124,125,126,127,
303 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
304 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,
305 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,
306 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,
307 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,
308 208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,
309 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,
310 240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255
314 svn_ctype_casecmp(int a, int b)
316 const int A = casefold_table[(unsigned char)a];
317 const int B = casefold_table[(unsigned char)b];
318 return A - B;