YAZ 5.35.1
iso5426.c
Go to the documentation of this file.
1
6#include <string.h>
7#if HAVE_CONFIG_H
8#include <config.h>
9#endif
10
12 char from[6];
13 unsigned combining : 1;
14 unsigned to : 24;
15 };
17 int ptr : 15;
18 unsigned combining : 1;
19 unsigned to : 24;
20 };
21
26
27
28 static unsigned long lookup(struct yaz_iconv_trie **ptrs, int ptr, unsigned char *inp,
29 size_t inbytesleft, size_t *no_read, int *combining, unsigned mask, unsigned int boffset)
30 {
31 struct yaz_iconv_trie *t = ptrs[ptr-1];
32 if (inbytesleft < 1)
33 return 0;
34 if (t->dir)
35 {
36 size_t ch = (inp[0] & mask) + boffset;
37 unsigned long code;
38 if (t->dir[ch].ptr)
39 {
40 code = lookup(ptrs, t->dir[ch].ptr, inp+1, inbytesleft-1, no_read, combining, mask, boffset);
41 if (code)
42 {
43 (*no_read)++;
44 return code;
45 }
46 }
47 if (t->dir[ch].to)
48 {
49 code = t->dir[ch].to;
50 *combining = t->dir[ch].combining;
51 *no_read = 1;
52 return code;
53 }
54 }
55 else
56 {
57 struct yaz_iconv_trie_flat *flat = t->flat;
58 while (flat->to)
59 {
60 size_t len = strlen(flat->from);
61 if (len <= inbytesleft)
62 {
63 size_t i;
64 for (i = 0; i < len; i++)
65 {
66 if (((unsigned char *) flat->from)[i] != (inp[i] & mask) + boffset)
67 break;
68 }
69 if (i == len)
70 {
71 *no_read = len;
72 *combining = flat->combining;
73 return flat->to;
74 }
75 }
76 flat++;
77 }
78 }
79 return 0;
80 }
81
82/* TRIE: size 98 */
83/* PAGE 0 */
85 {0, 0, 0},
86 {0, 0, 0},
87 {0, 0, 0},
88 {0, 0, 0},
89 {0, 0, 0},
90 {0, 0, 0},
91 {0, 0, 0},
92 {0, 0, 0},
93 {0, 0, 0},
94 {0, 0, 0},
95 {0, 0, 0},
96 {0, 0, 0},
97 {0, 0, 0},
98 {0, 0, 0},
99 {0, 0, 0},
100 {0, 0, 0},
101 {0, 0, 0},
102 {0, 0, 0},
103 {0, 0, 0},
104 {0, 0, 0},
105 {0, 0, 0},
106 {0, 0, 0},
107 {0, 0, 0},
108 {0, 0, 0},
109 {0, 0, 0},
110 {0, 0, 0},
111 {0, 0, 0},
112 {0, 0, 0},
113 {0, 0, 0},
114 {0, 0, 0x001D} /* RECORD TERMINATOR / GROUP SEPARATOR */,
115 {0, 0, 0x001E} /* FIELD TERMINATOR / RECORD SEPARATOR */,
116 {0, 0, 0x001F} /* SUBFIELD DELIMITER / UNIT SEPARATOR */,
117 {0, 0, 0x0020} /* SPACE, BLANK / SPACE */,
118 {0, 0, 0x0021} /* EXCLAMATION MARK */,
119 {0, 0, 0x0022} /* QUOTATION MARK */,
120 {0, 0, 0x0023} /* NUMBER SIGN */,
121 {0, 0, 0x0024} /* DOLLAR SIGN */,
122 {0, 0, 0x0025} /* PERCENT SIGN */,
123 {0, 0, 0x0026} /* AMPERSAND */,
124 {0, 0, 0x0027} /* APOSTROPHE */,
125 {0, 0, 0x0028} /* OPENING PARENTHESIS / LEFT PARENTHESIS */,
126 {0, 0, 0x0029} /* CLOSING PARENTHESIS / CLOSING PARENTHESIS */,
127 {0, 0, 0x002A} /* ASTERISK */,
128 {0, 0, 0x002B} /* PLUS SIGN */,
129 {0, 0, 0x002C} /* COMMA */,
130 {0, 0, 0x002D} /* HYPHEN-MINUS */,
131 {0, 0, 0x002E} /* PERIOD, DECIMAL POINT / FULL STOP */,
132 {0, 0, 0x002F} /* SLASH / SOLIDUS */,
133 {0, 0, 0x0030} /* DIGIT ZERO */,
134 {0, 0, 0x0031} /* DIGIT ONE */,
135 {0, 0, 0x0032} /* DIGIT TWO */,
136 {0, 0, 0x0033} /* DIGIT THREE */,
137 {0, 0, 0x0034} /* DIGIT FOUR */,
138 {0, 0, 0x0035} /* DIGIT FIVE */,
139 {0, 0, 0x0036} /* DIGIT SIX */,
140 {0, 0, 0x0037} /* DIGIT SEVEN */,
141 {0, 0, 0x0038} /* DIGIT EIGHT */,
142 {0, 0, 0x0039} /* DIGIT NINE */,
143 {0, 0, 0x003A} /* COLON */,
144 {0, 0, 0x003B} /* SEMICOLON */,
145 {0, 0, 0x003C} /* LESS-THAN SIGN */,
146 {0, 0, 0x003D} /* EQUALS SIGN */,
147 {0, 0, 0x003E} /* GREATER-THAN SIGN */,
148 {0, 0, 0x003F} /* QUESTION MARK */,
149 {0, 0, 0x0040} /* COMMERCIAL AT */,
150 {0, 0, 0x0041} /* LATIN CAPITAL LETTER A */,
151 {0, 0, 0x0042} /* LATIN CAPITAL LETTER B */,
152 {0, 0, 0x0043} /* LATIN CAPITAL LETTER C */,
153 {0, 0, 0x0044} /* LATIN CAPITAL LETTER D */,
154 {0, 0, 0x0045} /* LATIN CAPITAL LETTER E */,
155 {0, 0, 0x0046} /* LATIN CAPITAL LETTER F */,
156 {0, 0, 0x0047} /* LATIN CAPITAL LETTER G */,
157 {0, 0, 0x0048} /* LATIN CAPITAL LETTER H */,
158 {0, 0, 0x0049} /* LATIN CAPITAL LETTER I */,
159 {0, 0, 0x004A} /* LATIN CAPITAL LETTER J */,
160 {0, 0, 0x004B} /* LATIN CAPITAL LETTER K */,
161 {0, 0, 0x004C} /* LATIN CAPITAL LETTER L */,
162 {0, 0, 0x004D} /* LATIN CAPITAL LETTER M */,
163 {0, 0, 0x004E} /* LATIN CAPITAL LETTER N */,
164 {0, 0, 0x004F} /* LATIN CAPITAL LETTER O */,
165 {0, 0, 0x0050} /* LATIN CAPITAL LETTER P */,
166 {0, 0, 0x0051} /* LATIN CAPITAL LETTER Q */,
167 {0, 0, 0x0052} /* LATIN CAPITAL LETTER R */,
168 {0, 0, 0x0053} /* LATIN CAPITAL LETTER S */,
169 {0, 0, 0x0054} /* LATIN CAPITAL LETTER T */,
170 {0, 0, 0x0055} /* LATIN CAPITAL LETTER U */,
171 {0, 0, 0x0056} /* LATIN CAPITAL LETTER V */,
172 {0, 0, 0x0057} /* LATIN CAPITAL LETTER W */,
173 {0, 0, 0x0058} /* LATIN CAPITAL LETTER X */,
174 {0, 0, 0x0059} /* LATIN CAPITAL LETTER Y */,
175 {0, 0, 0x005A} /* LATIN CAPITAL LETTER Z */,
176 {0, 0, 0x005B} /* OPENING SQUARE BRACKET / LEFT SQUARE BRACKET */,
177 {0, 0, 0x005C} /* REVERSE SLASH / REVERSE SOLIDUS */,
178 {0, 0, 0x005D} /* CLOSING SQUARE BRACKET / RIGHT SQUARE BRACKET */,
179 {0, 0, 0x005E} /* SPACING CIRCUMFLEX / CIRCUMFLEX ACCENT */,
180 {0, 0, 0x005F} /* SPACING UNDERSCORE / LOW LINE */,
181 {0, 0, 0x0060} /* SPACING GRAVE / GRAVE ACCENT */,
182 {0, 0, 0x0061} /* LATIN SMALL LETTER A */,
183 {0, 0, 0x0062} /* LATIN SMALL LETTER B */,
184 {0, 0, 0x0063} /* LATIN SMALL LETTER C */,
185 {0, 0, 0x0064} /* LATIN SMALL LETTER D */,
186 {0, 0, 0x0065} /* LATIN SMALL LETTER E */,
187 {0, 0, 0x0066} /* LATIN SMALL LETTER F */,
188 {0, 0, 0x0067} /* LATIN SMALL LETTER G */,
189 {0, 0, 0x0068} /* LATIN SMALL LETTER H */,
190 {0, 0, 0x0069} /* LATIN SMALL LETTER I */,
191 {0, 0, 0x006A} /* LATIN SMALL LETTER J */,
192 {0, 0, 0x006B} /* LATIN SMALL LETTER K */,
193 {0, 0, 0x006C} /* LATIN SMALL LETTER L */,
194 {0, 0, 0x006D} /* LATIN SMALL LETTER M */,
195 {0, 0, 0x006E} /* LATIN SMALL LETTER N */,
196 {0, 0, 0x006F} /* LATIN SMALL LETTER O */,
197 {0, 0, 0x0070} /* LATIN SMALL LETTER P */,
198 {0, 0, 0x0071} /* LATIN SMALL LETTER Q */,
199 {0, 0, 0x0072} /* LATIN SMALL LETTER R */,
200 {0, 0, 0x0073} /* LATIN SMALL LETTER S */,
201 {0, 0, 0x0074} /* LATIN SMALL LETTER T */,
202 {0, 0, 0x0075} /* LATIN SMALL LETTER U */,
203 {0, 0, 0x0076} /* LATIN SMALL LETTER V */,
204 {0, 0, 0x0077} /* LATIN SMALL LETTER W */,
205 {0, 0, 0x0078} /* LATIN SMALL LETTER X */,
206 {0, 0, 0x0079} /* LATIN SMALL LETTER Y */,
207 {0, 0, 0x007A} /* LATIN SMALL LETTER Z */,
208 {0, 0, 0x007B} /* OPENING CURLY BRACKET / LEFT CURLY BRACKET */,
209 {0, 0, 0x007C} /* VERTICAL BAR (FILL) / VERTICAL LINE */,
210 {0, 0, 0x007D} /* CLOSING CURLY BRACKET / RIGHT CURLY BRACKET */,
211 {0, 0, 0x007E} /* SPACING TILDE / TILDE */,
212 {0, 0, 0},
213 {0, 0, 0},
214 {0, 0, 0},
215 {0, 0, 0},
216 {0, 0, 0},
217 {0, 0, 0},
218 {0, 0, 0},
219 {0, 0, 0},
220 {0, 0, 0},
221 {0, 0, 0},
222 {0, 0, 0},
223 {0, 0, 0},
224 {0, 0, 0},
225 {0, 0, 0},
226 {0, 0, 0},
227 {0, 0, 0},
228 {0, 0, 0},
229 {0, 0, 0},
230 {0, 0, 0},
231 {0, 0, 0},
232 {0, 0, 0},
233 {0, 0, 0},
234 {0, 0, 0},
235 {0, 0, 0},
236 {0, 0, 0},
237 {0, 0, 0},
238 {0, 0, 0},
239 {0, 0, 0},
240 {0, 0, 0},
241 {0, 0, 0},
242 {0, 0, 0},
243 {0, 0, 0},
244 {0, 0, 0},
245 {0, 0, 0},
246 {0, 0, 0},
247 {0, 0, 0},
248 {0, 0, 0},
249 {0, 0, 0},
250 {0, 0, 0},
251 {0, 0, 0},
252 {0, 0, 0},
253 {0, 0, 0},
254 {0, 0, 0},
255 {0, 0, 0},
256 {0, 0, 0},
257 {0, 0, 0},
258 {0, 0, 0},
259 {0, 0, 0},
260 {0, 0, 0},
261 {0, 0, 0},
262 {0, 0, 0},
263 {0, 0, 0},
264 {0, 0, 0},
265 {0, 0, 0},
266 {0, 0, 0},
267 {0, 0, 0},
268 {0, 0, 0},
269 {0, 0, 0},
270 {0, 0, 0},
271 {0, 0, 0},
272 {0, 0, 0},
273 {0, 0, 0},
274 {0, 0, 0},
275 {0, 0, 0},
276 {0, 0, 0},
277 {0, 0, 0},
278 {0, 0, 0},
279 {0, 0, 0},
280 {0, 0, 0},
281 {0, 0, 0},
282 {0, 0, 0},
283 {0, 0, 0},
284 {0, 0, 0},
285 {0, 0, 0},
286 {0, 0, 0},
287 {0, 0, 0},
288 {0, 0, 0},
289 {0, 0, 0},
290 {0, 0, 0},
291 {0, 0, 0},
292 {0, 0, 0},
293 {0, 0, 0},
294 {0, 0, 0},
295 {0, 0, 0},
296 {0, 0, 0},
297 {0, 0, 0},
298 {0, 0, 0},
299 {0, 0, 0},
300 {0, 0, 0},
301 {0, 0, 0},
302 {0, 0, 0},
303 {0, 0, 0},
304 {0, 0, 0},
305 {0, 0, 0},
306 {0, 0, 0},
307 {0, 0, 0},
308 {0, 0, 0},
309 {0, 0, 0},
310 {0, 0, 0},
311 {0, 0, 0},
312 {0, 0, 0},
313 {0, 0, 0},
314 {0, 0, 0},
315 {0, 0, 0},
316 {0, 0, 0},
317 {0, 0, 0},
318 {0, 0, 0},
319 {0, 0, 0},
320 {0, 0, 0},
321 {0, 0, 0},
322 {0, 0, 0},
323 {0, 0, 0},
324 {0, 0, 0},
325 {0, 0, 0},
326 {0, 0, 0},
327 {0, 0, 0},
328 {0, 0, 0},
329 {0, 0, 0},
330 {0, 0, 0},
331 {0, 0, 0},
332 {0, 0, 0},
333 {0, 0, 0},
334 {0, 0, 0},
335 {0, 0, 0},
336 {0, 0, 0},
337 {0, 0, 0},
338 {0, 0, 0},
339 {0, 0, 0},
340 {0, 0, 0}
341};
3470, };
348
350 (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining, unsigned mask, unsigned int boffset)
351 {
352 unsigned long code;
353
354 code = lookup(iso5426_42ptrs, 1, inp, inbytesleft, no_read, combining, mask, boffset);
355 if (!code)
356 {
357 *no_read = 1;
358 }
359 return code;
360 }
361
362/* TRIE: size 76 */
363/* PAGE 0 */
365 {0, 0, 0},
366 {0, 0, 0},
367 {0, 0, 0},
368 {0, 0, 0},
369 {0, 0, 0},
370 {0, 0, 0},
371 {0, 0, 0},
372 {0, 0, 0},
373 {0, 0, 0},
374 {0, 0, 0},
375 {0, 0, 0},
376 {0, 0, 0},
377 {0, 0, 0},
378 {0, 0, 0},
379 {0, 0, 0},
380 {0, 0, 0},
381 {0, 0, 0},
382 {0, 0, 0},
383 {0, 0, 0},
384 {0, 0, 0},
385 {0, 0, 0},
386 {0, 0, 0},
387 {0, 0, 0},
388 {0, 0, 0},
389 {0, 0, 0},
390 {0, 0, 0},
391 {0, 0, 0},
392 {0, 0, 0},
393 {0, 0, 0},
394 {0, 0, 0},
395 {0, 0, 0},
396 {0, 0, 0},
397 {0, 0, 0},
398 {0, 0, 0},
399 {0, 0, 0},
400 {0, 0, 0},
401 {0, 0, 0},
402 {0, 0, 0},
403 {0, 0, 0},
404 {0, 0, 0},
405 {0, 0, 0},
406 {0, 0, 0},
407 {0, 0, 0},
408 {0, 0, 0},
409 {0, 0, 0},
410 {0, 0, 0},
411 {0, 0, 0},
412 {0, 0, 0},
413 {0, 0, 0},
414 {0, 0, 0},
415 {0, 0, 0},
416 {0, 0, 0},
417 {0, 0, 0},
418 {0, 0, 0},
419 {0, 0, 0},
420 {0, 0, 0},
421 {0, 0, 0},
422 {0, 0, 0},
423 {0, 0, 0},
424 {0, 0, 0},
425 {0, 0, 0},
426 {0, 0, 0},
427 {0, 0, 0},
428 {0, 0, 0},
429 {0, 0, 0},
430 {0, 0, 0},
431 {0, 0, 0},
432 {0, 0, 0},
433 {0, 0, 0},
434 {0, 0, 0},
435 {0, 0, 0},
436 {0, 0, 0},
437 {0, 0, 0},
438 {0, 0, 0},
439 {0, 0, 0},
440 {0, 0, 0},
441 {0, 0, 0},
442 {0, 0, 0},
443 {0, 0, 0},
444 {0, 0, 0},
445 {0, 0, 0},
446 {0, 0, 0},
447 {0, 0, 0},
448 {0, 0, 0},
449 {0, 0, 0},
450 {0, 0, 0},
451 {0, 0, 0},
452 {0, 0, 0},
453 {0, 0, 0},
454 {0, 0, 0},
455 {0, 0, 0},
456 {0, 0, 0},
457 {0, 0, 0},
458 {0, 0, 0},
459 {0, 0, 0},
460 {0, 0, 0},
461 {0, 0, 0},
462 {0, 0, 0},
463 {0, 0, 0},
464 {0, 0, 0},
465 {0, 0, 0},
466 {0, 0, 0},
467 {0, 0, 0},
468 {0, 0, 0},
469 {0, 0, 0},
470 {0, 0, 0},
471 {0, 0, 0},
472 {0, 0, 0},
473 {0, 0, 0},
474 {0, 0, 0},
475 {0, 0, 0},
476 {0, 0, 0},
477 {0, 0, 0},
478 {0, 0, 0},
479 {0, 0, 0},
480 {0, 0, 0},
481 {0, 0, 0},
482 {0, 0, 0},
483 {0, 0, 0},
484 {0, 0, 0},
485 {0, 0, 0},
486 {0, 0, 0},
487 {0, 0, 0},
488 {0, 0, 0},
489 {0, 0, 0},
490 {0, 0, 0},
491 {0, 0, 0},
492 {0, 0, 0},
493 {0, 0, 0},
494 {0, 0, 0},
495 {0, 0, 0},
496 {0, 0, 0},
497 {0, 0, 0},
498 {0, 0, 0},
499 {0, 0, 0},
500 {0, 0, 0},
501 {0, 0, 0x0098} /* NON-SORT BEGIN / START OF STRING */,
502 {0, 0, 0x009C} /* NON-SORT END / STRING TERMINATOR */,
503 {0, 0, 0},
504 {0, 0, 0},
505 {0, 0, 0},
506 {0, 0, 0},
507 {0, 0, 0},
508 {0, 0, 0},
509 {0, 0, 0},
510 {0, 0, 0},
511 {0, 0, 0},
512 {0, 0, 0},
513 {0, 0, 0},
514 {0, 0, 0},
515 {0, 0, 0},
516 {0, 0, 0},
517 {0, 0, 0},
518 {0, 0, 0},
519 {0, 0, 0},
520 {0, 0, 0},
521 {0, 0, 0},
522 {0, 0, 0},
523 {0, 0, 0},
524 {0, 0, 0},
525 {0, 0, 0},
526 {0, 0, 0x00A1} /* INVERTED EXCLAMATION MARK */,
527 {0, 0, 0x201E} /* LOW DOUBLE COMMA QUOTATION MARK */,
528 {0, 0, 0x00A3} /* BRITISH POUND / POUND SIGN */,
529 {0, 0, 0x0024} /* DOLLAR SIGN */,
530 {0, 0, 0x00A5} /* YEN SIGN */,
531 {0, 0, 0x2020} /* DAGGER */,
532 {0, 0, 0x00A7} /* SECTION SIGN */,
533 {0, 0, 0x2032} /* PRIME */,
534 {0, 0, 0x2018} /* SINGLE TURNED COMMA QUOTATION MARK */,
535 {0, 0, 0x201C} /* DOUBLE TURNED COMMA QUOTATION MARK */,
536 {0, 0, 0x00AB} /* LEFT-POINTING DOUBLE ANGLE QUOTATION MARK (LEFT POINTING GUILLEMET) */,
537 {0, 0, 0x266D} /* MUSIC FLAT SIGN (FLAT) */,
538 {0, 0, 0x00A9} /* COPYRIGHT SIGN */,
539 {0, 0, 0x2117} /* SOUND RECORDING COPYRIGHT */,
540 {0, 0, 0x00AE} /* PATENT MARK / REGISTERED SIGN */,
541 {0, 0, 0x02BB} /* AYN / MODIFIER LETTER TURNED COMMA */,
542 {0, 0, 0x02BC} /* ALIF / MODIFIER LETTER APOSTROPHE */,
543 {0, 0, 0x201A} /* SINGLE LOW-9 QUOTATION MARK (LOW SINGLE COMMA QUOTATION MARK) */,
544 {0, 0, 0},
545 {0, 0, 0},
546 {0, 0, 0},
547 {0, 0, 0x2021} /* */,
548 {0, 0, 0x00B7} /* MIDDLE DOT */,
549 {0, 0, 0x2033} /* DOUBLE PRIME */,
550 {0, 0, 0x2019} /* RIGHT SINGLE QUOTATION MARK (SINGLE COMMA QUOTATION MARK) */,
551 {0, 0, 0x201D} /* RIGHT DOUBLE QUOTATION MARK (DOUBLE COMMA QUOTATION MARK) */,
552 {0, 0, 0x00BB} /* RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK (RIGHT POINTING GUILLEMET) */,
553 {0, 0, 0x266F} /* MUSIC SHARP SIGN */,
554 {0, 0, 0x02B9} /* SOFT SIGN, PRIME / MODIFIER LETTER PRIME */,
555 {0, 0, 0x02BA} /* HARD SIGN, DOUBLE PRIME / MODIFIER LETTER DOUBLE PRIME */,
556 {0, 0, 0x00BF} /* INVERTED QUESTION MARK */,
557 {0, 1, 0x0309} /* PSEUDO QUESTION MARK / COMBINING HOOK ABOVE */,
558 {0, 1, 0x0300} /* GRAVE / COMBINING GRAVE ACCENT (Varia) */,
559 {0, 1, 0x0301} /* ACUTE / COMBINING ACUTE ACCENT (Oxia) */,
560 {0, 1, 0x0302} /* CIRCUMFLEX / COMBINING CIRCUMFLEX ACCENT */,
561 {0, 1, 0x0303} /* TILDE / COMBINING TILDE */,
562 {0, 1, 0x0304} /* MACRON / COMBINING MACRON */,
563 {0, 1, 0x0306} /* BREVE / COMBINING BREVE (Vrachy) */,
564 {0, 1, 0x0307} /* SUPERIOR DOT / COMBINING DOT ABOVE */,
565 {0, 1, 0x0308} /* U+034F COMBINING GRAPHEME JOINER (CGJ) / tréma */,
566 {0, 1, 0x0308} /* UMLAUT, DIAERESIS / COMBINING DIAERESIS (Dialytika) */,
567 {0, 1, 0x030A} /* CIRCLE ABOVE, ANGSTROM / COMBINING RING ABOVE */,
568 {0, 1, 0x0315} /* HIGH COMMA, OFF CENTER / COMBINING COMMA ABOVE RIGHT */,
569 {0, 1, 0x0313} /* HIGH COMMA, CENTERED / COMBINING COMMA ABOVE (Psili) */,
570 {0, 1, 0x030B} /* DOUBLE ACUTE / COMBINING DOUBLE ACUTE ACCENT */,
571 {0, 1, 0x031B} /* COMBINING HORN (NON-SPACING HORN) */,
572 {0, 1, 0x030C} /* HACEK / COMBINING CARON */,
573 {0, 1, 0x0327} /* CEDILLA / COMBINING CEDILLA */,
574 {0, 1, 0x031C} /* RIGHT CEDILLA / COMBINING LEFT HALF RING BELOW */,
575 {0, 1, 0x0326} /* LEFT HOOK (COMMA BELOW) / COMBINING COMMA BELOW */,
576 {0, 1, 0x0328} /* RIGHT HOOK, OGONEK / COMBINING OGONEK */,
577 {0, 1, 0x0325} /* CIRCLE BELOW / COMBINING RING BELOW */,
578 {0, 1, 0x032E} /* UPADHMANIYA / COMBINING BREVE BELOW */,
579 {0, 1, 0x0323} /* DOT BELOW / COMBINING DOT BELOW */,
580 {0, 1, 0x0324} /* DOUBLE DOT BELOW / COMBINING DIAERESIS BELOW */,
581 {0, 1, 0x0332} /* UNDERSCORE / COMBINING LOW LINE */,
582 {0, 1, 0x0333} /* DOUBLE UNDERSCORE / COMBINING DOUBLE LOW LINE */,
583 {0, 1, 0x0329} /* COMBINING VERTICAL LINE BELOW (NON-SPACING VERTICAL LINE BELOW) */,
584 {0, 1, 0x032D} /* COMBINING CIRCUMFLEX ACCENT BELOW (NON-SPACING CIRCUMFLEX BELOW) */,
585 {0, 0, 0},
586 {0, 1, 0x0360} /* DOUBLE TILDE, FIRST HALF / COMBINING DOUBLE TILDE */,
587 {0, 0, 0},
588 {0, 0, 0},
589 {0, 0, 0},
590 {0, 0, 0x00C6} /* UPPERCASE DIGRAPH AE / LATIN CAPITAL LIGATURE AE */,
591 {0, 0, 0x0110} /* UPPERCASE D WITH CROSSBAR / LATIN CAPITAL LETTER D WITH STROKE */,
592 {0, 0, 0},
593 {0, 0, 0},
594 {0, 0, 0},
595 {0, 0, 0x0132} /* LATIN CAPITAL LIGATURE IJ (LATIN CAPITAL LETTER I J) */,
596 {0, 0, 0},
597 {0, 0, 0x0141} /* UPPERCASE POLISH L / LATIN CAPITAL LETTER L WITH STROKE */,
598 {0, 0, 0x00D8} /* UPPERCASE SCANDINAVIAN O / LATIN CAPITAL LETTER O WITH STROKE */,
599 {0, 0, 0x0152} /* UPPERCASE DIGRAPH OE / LATIN CAPITAL LIGATURE OE */,
600 {0, 0, 0},
601 {0, 0, 0x00DE} /* UPPERCASE ICELANDIC THORN / LATIN CAPITAL LETTER THORN (Icelandic) */,
602 {0, 0, 0},
603 {0, 0, 0},
604 {0, 0, 0},
605 {0, 0, 0},
606 {0, 0, 0x00E6} /* LOWERCASE DIGRAPH AE / LATIN SMALL LIGATURE AE */,
607 {0, 0, 0x0111} /* LOWERCASE D WITH CROSSBAR / LATIN SMALL LETTER D WITH STROKE */,
608 {0, 0, 0x00F0} /* LOWERCASE ETH / LATIN SMALL LETTER ETH (Icelandic) */,
609 {0, 0, 0},
610 {0, 0, 0x0131} /* LOWERCASE TURKISH I / LATIN SMALL LETTER DOTLESS I */,
611 {0, 0, 0x0133} /* LATIN SMALL LIGATURE IJ (LATIN SMALL LETTER I J) */,
612 {0, 0, 0},
613 {0, 0, 0x0142} /* LOWERCASE POLISH L / LATIN SMALL LETTER L WITH STROKE */,
614 {0, 0, 0x00F8} /* LOWERCASE SCANDINAVIAN O / LATIN SMALL LETTER O WITH STROKE */,
615 {0, 0, 0x0153} /* LOWERCASE DIGRAPH OE / LATIN SMALL LIGATURE OE */,
616 {0, 0, 0x00DF} /* ESZETT SYMBOL */,
617 {0, 0, 0x00FE} /* LOWERCASE ICELANDIC THORN / LATIN SMALL LETTER THORN (Icelandic) */,
618 {0, 0, 0},
619 {0, 0, 0},
620 {0, 0, 0}
621};
6270, };
628
630 (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining, unsigned mask, unsigned int boffset)
631 {
632 unsigned long code;
633
634 code = lookup(iso5426_45ptrs, 1, inp, inbytesleft, no_read, combining, mask, boffset);
635 if (!code)
636 {
637 *no_read = 1;
638 }
639 return code;
640 }
641
yaz_conv_func_t yaz_iso5426_45_conv
yaz_conv_func_t yaz_iso5426_42_conv
struct yaz_iconv_trie * iso5426_42ptrs[]
Definition iso5426.c:345
struct yaz_iconv_trie iso5426_45page0
Definition iso5426.c:622
struct yaz_iconv_trie * iso5426_45ptrs[]
Definition iso5426.c:625
static unsigned long lookup(struct yaz_iconv_trie **ptrs, int ptr, unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining, unsigned mask, unsigned int boffset)
Definition iso5426.c:28
struct yaz_iconv_trie iso5426_42page0
Definition iso5426.c:342
struct yaz_iconv_trie_dir iso5426_42page0_dir[256]
Definition iso5426.c:84
struct yaz_iconv_trie_dir iso5426_45page0_dir[256]
Definition iso5426.c:364
int mask
Definition log.c:83
unsigned combining
Definition iso5426.c:18
unsigned combining
Definition iso5426.c:13
struct yaz_iconv_trie_dir * dir
Definition iso5426.c:24
struct yaz_iconv_trie_flat * flat
Definition iso5426.c:23