5
#include <atalk/util.h>
7
const int _diacasemap[] = {
137
128 /* 128 Adieresis*/,
139
130 /* 130 Ccedilla*/,
142
133 /* 133 Odieresis*/,
143
134 /* 134 Udieresis*/,
146
229 /* 137 acircumflex*/,
147
128 /* 138 adieresis*/,
150
130 /* 141 ccedilla*/,
153
230 /* 144 ecircumflex*/,
154
232 /* 145 edieresis*/,
157
235 /* 148 icircumflex*/,
158
236 /* 149 idieresis*/,
162
239 /* 153 ocircumflex*/,
163
133 /* 154 odieresis*/,
167
243 /* 158 ucircumflex*/,
168
134 /* 159 udieresis*/,
172
163 /* 163 sterling*/,
173
164 /* 164 section*/,
175
166 /* 166 paragraph*/,
176
167 /* 167 germandbls*/,
177
168 /* 168 registered*/,
178
169 /* 169 copyright*/,
179
170 /* 170 trademark*/,
181
172 /* 172 dieresis*/,
182
173 /* 173 notequal*/,
185
176 /* 176 infinity*/,
186
177 /* 177 plusminus*/,
187
178 /* 178 lessequal*/,
188
179 /* 179 greaterequal*/,
195
186 /* 186 intergral*/,
196
187 /* 187 ordfeminine*/,
197
188 /* 188 ordmasculine*/,
201
192 /* 192 questiondown*/,
202
193 /* 193 exclamdown*/,
204
195 /* 195 radical*/,
208
199 /* 199 guillemotleft*/,
209
200 /* 200 guillemotright*/,
210
201 /* 201 ellipsis*/,
219
210 /* 210 quotedblleft*/,
220
211 /* 211 quotedblright*/,
221
212 /* 212 quoteleft*/,
222
213 /* 213 quoteright*/,
224
215 /* 215 diamond*/,
225
217 /* 216 ydieresis*/,
226
217 /* 217 Ydieresis*/,
227
218 /* 218 fraction*/,
228
219 /* 219 currency*/,
229
220 /* 220 guilsinglleft*/,
230
221 /* 221 guilsinglright*/,
233
224 /* 224 daggardbl*/,
234
225 /* 225 periodcentered*/,
235
226 /* 226 quotesinglbase*/,
236
227 /* 227 quotedblbase*/,
237
228 /* 228 perthousand*/,
238
229 /* 229 Acircumflex*/,
239
230 /* 230 Ecircumflex*/,
240
231 /* 231 Aaccute*/,
241
232 /* 232 Edieresis*/,
243
234 /* 234 Iaccute*/,
244
235 /* 235 Icircumflex*/,
245
236 /* 236 Idieresis*/,
247
238 /* 238 Oaccute*/,
248
239 /* 239 Ocircumflex*/,
251
242 /* 242 Uaccute*/,
252
243 /* 243 Ucircumflex*/,
254
245 /* 245 dotlessi*/,
255
246 /* 246 circumflex*/,
259
250 /* 250 dotaccent*/,
261
252 /* 252 cedilla*/,
262
253 /* 253 hungarumlaut*/,
267
const int _dialowermap[] = {
397
138 /* 128 Adieresis*/,
399
141 /* 130 Ccedilla*/,
402
154 /* 133 Odieresis*/,
403
159 /* 134 Udieresis*/,
406
137 /* 137 acircumflex*/,
407
138 /* 138 adieresis*/,
410
141 /* 141 ccedilla*/,
413
144 /* 144 ecircumflex*/,
414
145 /* 145 edieresis*/,
417
148 /* 148 icircumflex*/,
418
149 /* 149 idieresis*/,
422
153 /* 153 ocircumflex*/,
423
154 /* 154 odieresis*/,
427
158 /* 158 ucircumflex*/,
428
159 /* 159 udieresis*/,
432
163 /* 163 sterling*/,
433
164 /* 164 section*/,
435
166 /* 166 paragraph*/,
436
167 /* 167 germandbls*/,
437
168 /* 168 registered*/,
438
169 /* 169 copyright*/,
439
170 /* 170 trademark*/,
441
172 /* 172 dieresis*/,
442
173 /* 173 notequal*/,
445
176 /* 176 infinity*/,
446
177 /* 177 plusminus*/,
447
178 /* 178 lessequal*/,
448
179 /* 179 greaterequal*/,
455
186 /* 186 intergral*/,
456
187 /* 187 ordfeminine*/,
457
188 /* 188 ordmasculine*/,
461
192 /* 192 questiondown*/,
462
193 /* 193 exclamdown*/,
464
195 /* 195 radical*/,
468
199 /* 199 guillemotleft*/,
469
200 /* 200 guillemotright*/,
470
201 /* 201 ellipsis*/,
479
210 /* 210 quotedblleft*/,
480
211 /* 211 quotedblright*/,
481
212 /* 212 quoteleft*/,
482
213 /* 213 quoteright*/,
484
215 /* 215 diamond*/,
485
217 /* 216 ydieresis*/,
486
217 /* 217 Ydieresis*/,
487
218 /* 218 fraction*/,
488
219 /* 219 currency*/,
489
220 /* 220 guilsinglleft*/,
490
221 /* 221 guilsinglright*/,
493
224 /* 224 daggardbl*/,
494
225 /* 225 periodcentered*/,
495
226 /* 226 quotesinglbase*/,
496
227 /* 227 quotedblbase*/,
497
228 /* 228 perthousand*/,
498
137 /* 229 Acircumflex*/,
499
144 /* 230 Ecircumflex*/,
501
145 /* 232 Edieresis*/,
503
146 /* 234 Iaccute*/,
504
148 /* 235 Icircumflex*/,
505
149 /* 236 Idieresis*/,
508
153 /* 239 Ocircumflex*/,
512
158 /* 243 Ucircumflex*/,
514
245 /* 245 dotlessi*/,
515
246 /* 246 circumflex*/,
519
250 /* 250 dotaccent*/,
521
252 /* 252 cedilla*/,
522
253 /* 253 hungarumlaut*/,
527
int strdiacasecmp( const char *s1, const char *s2 )
529
while ( _diacasemap[ (unsigned char) *s1 ] ==
530
_diacasemap[ (unsigned char) *s2++ ] ) {
531
if ( *s1++ == '\0' ) {
535
return( _diacasemap[ (unsigned char) *s1 ] -
536
_diacasemap[ (unsigned char) *--s2 ] );
539
int strndiacasecmp( const char *s1, const char *s2, size_t n )
542
_diacasemap[ (unsigned char) *s1 ] ==
543
_diacasemap[ (unsigned char) *s2++ ] ) {
544
if ( *s1++ == '\0' ) {
552
return _diacasemap[ (unsigned char) *s1 ] -
553
_diacasemap[ (unsigned char) *--s2 ];