~ubuntu-branches/ubuntu/trusty/ruby1.9/trusty

« back to all changes in this revision

Viewing changes to enc/trans/single_byte.c

  • Committer: Bazaar Package Importer
  • Author(s): Stephan Hermann
  • Date: 2008-01-24 11:42:29 UTC
  • mfrom: (1.1.9 upstream)
  • Revision ID: james.westby@ubuntu.com-20080124114229-jw2f87rdxlq6gp11
Tags: 1.9.0.0-2ubuntu1
* Merge from debian unstable, remaining changes:
  - Robustify check for target_os, fixing build failure on lpia.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include "transcode_data.h"
 
2
 
 
3
static const unsigned char
 
4
from_ISO_8859_1_offsets[256] = {
 
5
  /* used from from_ISO_8859_1 */
 
6
  /* used from from_ISO_8859_2 */
 
7
  /* used from from_ISO_8859_4 */
 
8
  /* used from from_ISO_8859_5 */
 
9
  /* used from from_ISO_8859_9 */
 
10
  /* used from from_ISO_8859_10 */
 
11
  /* used from from_ISO_8859_13 */
 
12
  /* used from from_ISO_8859_14 */
 
13
  /* used from from_ISO_8859_15 */
 
14
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
15
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
16
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
17
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
18
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
19
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
20
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
21
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
22
      1,  2,  3,  4,  5,  6,  7,  8,    9, 10, 11, 12, 13, 14, 15, 16,
 
23
     17, 18, 19, 20, 21, 22, 23, 24,   25, 26, 27, 28, 29, 30, 31, 32,
 
24
     33, 34, 35, 36, 37, 38, 39, 40,   41, 42, 43, 44, 45, 46, 47, 48,
 
25
     49, 50, 51, 52, 53, 54, 55, 56,   57, 58, 59, 60, 61, 62, 63, 64,
 
26
     65, 66, 67, 68, 69, 70, 71, 72,   73, 74, 75, 76, 77, 78, 79, 80,
 
27
     81, 82, 83, 84, 85, 86, 87, 88,   89, 90, 91, 92, 93, 94, 95, 96,
 
28
     97, 98, 99,100,101,102,103,104,  105,106,107,108,109,110,111,112,
 
29
    113,114,115,116,117,118,119,120,  121,122,123,124,125,126,127,128,
 
30
};
 
31
static const struct byte_lookup* const
 
32
from_ISO_8859_1_infos[129] = {
 
33
             NOMAP, o2(0xC2,0x80), o2(0xC2,0x81), o2(0xC2,0x82),
 
34
     o2(0xC2,0x83), o2(0xC2,0x84), o2(0xC2,0x85), o2(0xC2,0x86),
 
35
     o2(0xC2,0x87), o2(0xC2,0x88), o2(0xC2,0x89), o2(0xC2,0x8A),
 
36
     o2(0xC2,0x8B), o2(0xC2,0x8C), o2(0xC2,0x8D), o2(0xC2,0x8E),
 
37
     o2(0xC2,0x8F), o2(0xC2,0x90), o2(0xC2,0x91), o2(0xC2,0x92),
 
38
     o2(0xC2,0x93), o2(0xC2,0x94), o2(0xC2,0x95), o2(0xC2,0x96),
 
39
     o2(0xC2,0x97), o2(0xC2,0x98), o2(0xC2,0x99), o2(0xC2,0x9A),
 
40
     o2(0xC2,0x9B), o2(0xC2,0x9C), o2(0xC2,0x9D), o2(0xC2,0x9E),
 
41
     o2(0xC2,0x9F), o2(0xC2,0xA0), o2(0xC2,0xA1), o2(0xC2,0xA2),
 
42
     o2(0xC2,0xA3), o2(0xC2,0xA4), o2(0xC2,0xA5), o2(0xC2,0xA6),
 
43
     o2(0xC2,0xA7), o2(0xC2,0xA8), o2(0xC2,0xA9), o2(0xC2,0xAA),
 
44
     o2(0xC2,0xAB), o2(0xC2,0xAC), o2(0xC2,0xAD), o2(0xC2,0xAE),
 
45
     o2(0xC2,0xAF), o2(0xC2,0xB0), o2(0xC2,0xB1), o2(0xC2,0xB2),
 
46
     o2(0xC2,0xB3), o2(0xC2,0xB4), o2(0xC2,0xB5), o2(0xC2,0xB6),
 
47
     o2(0xC2,0xB7), o2(0xC2,0xB8), o2(0xC2,0xB9), o2(0xC2,0xBA),
 
48
     o2(0xC2,0xBB), o2(0xC2,0xBC), o2(0xC2,0xBD), o2(0xC2,0xBE),
 
49
     o2(0xC2,0xBF), o2(0xC3,0x80), o2(0xC3,0x81), o2(0xC3,0x82),
 
50
     o2(0xC3,0x83), o2(0xC3,0x84), o2(0xC3,0x85), o2(0xC3,0x86),
 
51
     o2(0xC3,0x87), o2(0xC3,0x88), o2(0xC3,0x89), o2(0xC3,0x8A),
 
52
     o2(0xC3,0x8B), o2(0xC3,0x8C), o2(0xC3,0x8D), o2(0xC3,0x8E),
 
53
     o2(0xC3,0x8F), o2(0xC3,0x90), o2(0xC3,0x91), o2(0xC3,0x92),
 
54
     o2(0xC3,0x93), o2(0xC3,0x94), o2(0xC3,0x95), o2(0xC3,0x96),
 
55
     o2(0xC3,0x97), o2(0xC3,0x98), o2(0xC3,0x99), o2(0xC3,0x9A),
 
56
     o2(0xC3,0x9B), o2(0xC3,0x9C), o2(0xC3,0x9D), o2(0xC3,0x9E),
 
57
     o2(0xC3,0x9F), o2(0xC3,0xA0), o2(0xC3,0xA1), o2(0xC3,0xA2),
 
58
     o2(0xC3,0xA3), o2(0xC3,0xA4), o2(0xC3,0xA5), o2(0xC3,0xA6),
 
59
     o2(0xC3,0xA7), o2(0xC3,0xA8), o2(0xC3,0xA9), o2(0xC3,0xAA),
 
60
     o2(0xC3,0xAB), o2(0xC3,0xAC), o2(0xC3,0xAD), o2(0xC3,0xAE),
 
61
     o2(0xC3,0xAF), o2(0xC3,0xB0), o2(0xC3,0xB1), o2(0xC3,0xB2),
 
62
     o2(0xC3,0xB3), o2(0xC3,0xB4), o2(0xC3,0xB5), o2(0xC3,0xB6),
 
63
     o2(0xC3,0xB7), o2(0xC3,0xB8), o2(0xC3,0xB9), o2(0xC3,0xBA),
 
64
     o2(0xC3,0xBB), o2(0xC3,0xBC), o2(0xC3,0xBD), o2(0xC3,0xBE),
 
65
     o2(0xC3,0xBF),
 
66
};
 
67
static const BYTE_LOOKUP
 
68
from_ISO_8859_1 = {
 
69
    from_ISO_8859_1_offsets,
 
70
    from_ISO_8859_1_infos
 
71
};
 
72
static rb_transcoder
 
73
rb_from_ISO_8859_1 = {
 
74
    "ISO-8859-1", "UTF-8", &from_ISO_8859_1, 2, 0,
 
75
    NULL, NULL,
 
76
};
 
77
 
 
78
static const unsigned char
 
79
to_ISO_8859_1_C2_offsets[64] = {
 
80
  /* used from to_ISO_8859_1_C2 */
 
81
  /* used from to_ISO_8859_1_C3 */
 
82
      0,  1,  2,  3,  4,  5,  6,  7,    8,  9, 10, 11, 12, 13, 14, 15,
 
83
     16, 17, 18, 19, 20, 21, 22, 23,   24, 25, 26, 27, 28, 29, 30, 31,
 
84
     32, 33, 34, 35, 36, 37, 38, 39,   40, 41, 42, 43, 44, 45, 46, 47,
 
85
     48, 49, 50, 51, 52, 53, 54, 55,   56, 57, 58, 59, 60, 61, 62, 63,
 
86
};
 
87
static const struct byte_lookup* const
 
88
to_ISO_8859_1_C2_infos[64] = {
 
89
     o1(0x80), o1(0x81), o1(0x82), o1(0x83),
 
90
     o1(0x84), o1(0x85), o1(0x86), o1(0x87),
 
91
     o1(0x88), o1(0x89), o1(0x8A), o1(0x8B),
 
92
     o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F),
 
93
     o1(0x90), o1(0x91), o1(0x92), o1(0x93),
 
94
     o1(0x94), o1(0x95), o1(0x96), o1(0x97),
 
95
     o1(0x98), o1(0x99), o1(0x9A), o1(0x9B),
 
96
     o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F),
 
97
     o1(0xA0), o1(0xA1), o1(0xA2), o1(0xA3),
 
98
     o1(0xA4), o1(0xA5), o1(0xA6), o1(0xA7),
 
99
     o1(0xA8), o1(0xA9), o1(0xAA), o1(0xAB),
 
100
     o1(0xAC), o1(0xAD), o1(0xAE), o1(0xAF),
 
101
     o1(0xB0), o1(0xB1), o1(0xB2), o1(0xB3),
 
102
     o1(0xB4), o1(0xB5), o1(0xB6), o1(0xB7),
 
103
     o1(0xB8), o1(0xB9), o1(0xBA), o1(0xBB),
 
104
     o1(0xBC), o1(0xBD), o1(0xBE), o1(0xBF),
 
105
};
 
106
static const BYTE_LOOKUP
 
107
to_ISO_8859_1_C2 = {
 
108
  /* used from to_ISO_8859_1 */
 
109
  /* used from to_ISO_8859_9 */
 
110
    to_ISO_8859_1_C2_offsets,
 
111
    to_ISO_8859_1_C2_infos
 
112
};
 
113
 
 
114
static const struct byte_lookup* const
 
115
to_ISO_8859_1_C3_infos[64] = {
 
116
     o1(0xC0), o1(0xC1), o1(0xC2), o1(0xC3),
 
117
     o1(0xC4), o1(0xC5), o1(0xC6), o1(0xC7),
 
118
     o1(0xC8), o1(0xC9), o1(0xCA), o1(0xCB),
 
119
     o1(0xCC), o1(0xCD), o1(0xCE), o1(0xCF),
 
120
     o1(0xD0), o1(0xD1), o1(0xD2), o1(0xD3),
 
121
     o1(0xD4), o1(0xD5), o1(0xD6), o1(0xD7),
 
122
     o1(0xD8), o1(0xD9), o1(0xDA), o1(0xDB),
 
123
     o1(0xDC), o1(0xDD), o1(0xDE), o1(0xDF),
 
124
     o1(0xE0), o1(0xE1), o1(0xE2), o1(0xE3),
 
125
     o1(0xE4), o1(0xE5), o1(0xE6), o1(0xE7),
 
126
     o1(0xE8), o1(0xE9), o1(0xEA), o1(0xEB),
 
127
     o1(0xEC), o1(0xED), o1(0xEE), o1(0xEF),
 
128
     o1(0xF0), o1(0xF1), o1(0xF2), o1(0xF3),
 
129
     o1(0xF4), o1(0xF5), o1(0xF6), o1(0xF7),
 
130
     o1(0xF8), o1(0xF9), o1(0xFA), o1(0xFB),
 
131
     o1(0xFC), o1(0xFD), o1(0xFE), o1(0xFF),
 
132
};
 
133
static const BYTE_LOOKUP
 
134
to_ISO_8859_1_C3 = {
 
135
  /* used from to_ISO_8859_1 */
 
136
  /* used from to_ISO_8859_15 */
 
137
    to_ISO_8859_1_C2_offsets,
 
138
    to_ISO_8859_1_C3_infos
 
139
};
 
140
 
 
141
static const unsigned char
 
142
to_ISO_8859_1_offsets[256] = {
 
143
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
144
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
145
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
146
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
147
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
148
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
149
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
150
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
151
      3,  3,  3,  3,  3,  3,  3,  3,    3,  3,  3,  3,  3,  3,  3,  3,
 
152
      3,  3,  3,  3,  3,  3,  3,  3,    3,  3,  3,  3,  3,  3,  3,  3,
 
153
      3,  3,  3,  3,  3,  3,  3,  3,    3,  3,  3,  3,  3,  3,  3,  3,
 
154
      3,  3,  3,  3,  3,  3,  3,  3,    3,  3,  3,  3,  3,  3,  3,  3,
 
155
      3,  3,  1,  2,  3,  3,  3,  3,    3,  3,  3,  3,  3,  3,  3,  3,
 
156
      3,  3,  3,  3,  3,  3,  3,  3,    3,  3,  3,  3,  3,  3,  3,  3,
 
157
      3,  3,  3,  3,  3,  3,  3,  3,    3,  3,  3,  3,  3,  3,  3,  3,
 
158
      3,  3,  3,  3,  3,  3,  3,  3,    3,  3,  3,  3,  3,  3,  3,  3,
 
159
};
 
160
static const struct byte_lookup* const
 
161
to_ISO_8859_1_infos[4] = {
 
162
                 NOMAP, &to_ISO_8859_1_C2,
 
163
     &to_ISO_8859_1_C3,             UNDEF,
 
164
};
 
165
static const BYTE_LOOKUP
 
166
to_ISO_8859_1 = {
 
167
    to_ISO_8859_1_offsets,
 
168
    to_ISO_8859_1_infos
 
169
};
 
170
static rb_transcoder
 
171
rb_to_ISO_8859_1 = {
 
172
    "UTF-8", "ISO-8859-1", &to_ISO_8859_1, 1, 1,
 
173
    NULL, NULL,
 
174
};
 
175
 
 
176
static const struct byte_lookup* const
 
177
from_ISO_8859_2_infos[129] = {
 
178
             NOMAP, o2(0xC2,0x80), o2(0xC2,0x81), o2(0xC2,0x82),
 
179
     o2(0xC2,0x83), o2(0xC2,0x84), o2(0xC2,0x85), o2(0xC2,0x86),
 
180
     o2(0xC2,0x87), o2(0xC2,0x88), o2(0xC2,0x89), o2(0xC2,0x8A),
 
181
     o2(0xC2,0x8B), o2(0xC2,0x8C), o2(0xC2,0x8D), o2(0xC2,0x8E),
 
182
     o2(0xC2,0x8F), o2(0xC2,0x90), o2(0xC2,0x91), o2(0xC2,0x92),
 
183
     o2(0xC2,0x93), o2(0xC2,0x94), o2(0xC2,0x95), o2(0xC2,0x96),
 
184
     o2(0xC2,0x97), o2(0xC2,0x98), o2(0xC2,0x99), o2(0xC2,0x9A),
 
185
     o2(0xC2,0x9B), o2(0xC2,0x9C), o2(0xC2,0x9D), o2(0xC2,0x9E),
 
186
     o2(0xC2,0x9F), o2(0xC2,0xA0), o2(0xC4,0x84), o2(0xCB,0x98),
 
187
     o2(0xC5,0x81), o2(0xC2,0xA4), o2(0xC4,0xBD), o2(0xC5,0x9A),
 
188
     o2(0xC2,0xA7), o2(0xC2,0xA8), o2(0xC5,0xA0), o2(0xC5,0x9E),
 
189
     o2(0xC5,0xA4), o2(0xC5,0xB9), o2(0xC2,0xAD), o2(0xC5,0xBD),
 
190
     o2(0xC5,0xBB), o2(0xC2,0xB0), o2(0xC4,0x85), o2(0xCB,0x9B),
 
191
     o2(0xC5,0x82), o2(0xC2,0xB4), o2(0xC4,0xBE), o2(0xC5,0x9B),
 
192
     o2(0xCB,0x87), o2(0xC2,0xB8), o2(0xC5,0xA1), o2(0xC5,0x9F),
 
193
     o2(0xC5,0xA5), o2(0xC5,0xBA), o2(0xCB,0x9D), o2(0xC5,0xBE),
 
194
     o2(0xC5,0xBC), o2(0xC5,0x94), o2(0xC3,0x81), o2(0xC3,0x82),
 
195
     o2(0xC4,0x82), o2(0xC3,0x84), o2(0xC4,0xB9), o2(0xC4,0x86),
 
196
     o2(0xC3,0x87), o2(0xC4,0x8C), o2(0xC3,0x89), o2(0xC4,0x98),
 
197
     o2(0xC3,0x8B), o2(0xC4,0x9A), o2(0xC3,0x8D), o2(0xC3,0x8E),
 
198
     o2(0xC4,0x8E), o2(0xC4,0x90), o2(0xC5,0x83), o2(0xC5,0x87),
 
199
     o2(0xC3,0x93), o2(0xC3,0x94), o2(0xC5,0x90), o2(0xC3,0x96),
 
200
     o2(0xC3,0x97), o2(0xC5,0x98), o2(0xC5,0xAE), o2(0xC3,0x9A),
 
201
     o2(0xC5,0xB0), o2(0xC3,0x9C), o2(0xC3,0x9D), o2(0xC5,0xA2),
 
202
     o2(0xC3,0x9F), o2(0xC5,0x95), o2(0xC3,0xA1), o2(0xC3,0xA2),
 
203
     o2(0xC4,0x83), o2(0xC3,0xA4), o2(0xC4,0xBA), o2(0xC4,0x87),
 
204
     o2(0xC3,0xA7), o2(0xC4,0x8D), o2(0xC3,0xA9), o2(0xC4,0x99),
 
205
     o2(0xC3,0xAB), o2(0xC4,0x9B), o2(0xC3,0xAD), o2(0xC3,0xAE),
 
206
     o2(0xC4,0x8F), o2(0xC4,0x91), o2(0xC5,0x84), o2(0xC5,0x88),
 
207
     o2(0xC3,0xB3), o2(0xC3,0xB4), o2(0xC5,0x91), o2(0xC3,0xB6),
 
208
     o2(0xC3,0xB7), o2(0xC5,0x99), o2(0xC5,0xAF), o2(0xC3,0xBA),
 
209
     o2(0xC5,0xB1), o2(0xC3,0xBC), o2(0xC3,0xBD), o2(0xC5,0xA3),
 
210
     o2(0xCB,0x99),
 
211
};
 
212
static const BYTE_LOOKUP
 
213
from_ISO_8859_2 = {
 
214
    from_ISO_8859_1_offsets,
 
215
    from_ISO_8859_2_infos
 
216
};
 
217
static rb_transcoder
 
218
rb_from_ISO_8859_2 = {
 
219
    "ISO-8859-2", "UTF-8", &from_ISO_8859_2, 2, 0,
 
220
    NULL, NULL,
 
221
};
 
222
 
 
223
static const unsigned char
 
224
to_ISO_8859_2_C2_offsets[64] = {
 
225
      0,  1,  2,  3,  4,  5,  6,  7,    8,  9, 10, 11, 12, 13, 14, 15,
 
226
     16, 17, 18, 19, 20, 21, 22, 23,   24, 25, 26, 27, 28, 29, 30, 31,
 
227
     32, 40, 40, 40, 33, 40, 40, 34,   35, 40, 40, 40, 40, 36, 40, 40,
 
228
     37, 40, 40, 40, 38, 40, 40, 40,   39, 40, 40, 40, 40, 40, 40, 40,
 
229
};
 
230
static const struct byte_lookup* const
 
231
to_ISO_8859_2_C2_infos[41] = {
 
232
     o1(0x80), o1(0x81), o1(0x82), o1(0x83),
 
233
     o1(0x84), o1(0x85), o1(0x86), o1(0x87),
 
234
     o1(0x88), o1(0x89), o1(0x8A), o1(0x8B),
 
235
     o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F),
 
236
     o1(0x90), o1(0x91), o1(0x92), o1(0x93),
 
237
     o1(0x94), o1(0x95), o1(0x96), o1(0x97),
 
238
     o1(0x98), o1(0x99), o1(0x9A), o1(0x9B),
 
239
     o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F),
 
240
     o1(0xA0), o1(0xA4), o1(0xA7), o1(0xA8),
 
241
     o1(0xAD), o1(0xB0), o1(0xB4), o1(0xB8),
 
242
        UNDEF,
 
243
};
 
244
static const BYTE_LOOKUP
 
245
to_ISO_8859_2_C2 = {
 
246
    to_ISO_8859_2_C2_offsets,
 
247
    to_ISO_8859_2_C2_infos
 
248
};
 
249
 
 
250
static const unsigned char
 
251
to_ISO_8859_2_C3_offsets[64] = {
 
252
     31,  0,  1, 31,  2, 31, 31,  3,   31,  4, 31,  5, 31,  6,  7, 31,
 
253
     31, 31, 31,  8,  9, 31, 10, 11,   31, 31, 12, 31, 13, 14, 31, 15,
 
254
     31, 16, 17, 31, 18, 31, 31, 19,   31, 20, 31, 21, 31, 22, 23, 31,
 
255
     31, 31, 31, 24, 25, 31, 26, 27,   31, 31, 28, 31, 29, 30, 31, 31,
 
256
};
 
257
static const struct byte_lookup* const
 
258
to_ISO_8859_2_C3_infos[32] = {
 
259
     o1(0xC1), o1(0xC2), o1(0xC4), o1(0xC7),
 
260
     o1(0xC9), o1(0xCB), o1(0xCD), o1(0xCE),
 
261
     o1(0xD3), o1(0xD4), o1(0xD6), o1(0xD7),
 
262
     o1(0xDA), o1(0xDC), o1(0xDD), o1(0xDF),
 
263
     o1(0xE1), o1(0xE2), o1(0xE4), o1(0xE7),
 
264
     o1(0xE9), o1(0xEB), o1(0xED), o1(0xEE),
 
265
     o1(0xF3), o1(0xF4), o1(0xF6), o1(0xF7),
 
266
     o1(0xFA), o1(0xFC), o1(0xFD),    UNDEF,
 
267
};
 
268
static const BYTE_LOOKUP
 
269
to_ISO_8859_2_C3 = {
 
270
    to_ISO_8859_2_C3_offsets,
 
271
    to_ISO_8859_2_C3_infos
 
272
};
 
273
 
 
274
static const unsigned char
 
275
to_ISO_8859_2_C4_offsets[64] = {
 
276
     20, 20,  0,  1,  2,  3,  4,  5,   20, 20, 20, 20,  6,  7,  8,  9,
 
277
     10, 11, 20, 20, 20, 20, 20, 20,   12, 13, 14, 15, 20, 20, 20, 20,
 
278
     20, 20, 20, 20, 20, 20, 20, 20,   20, 20, 20, 20, 20, 20, 20, 20,
 
279
     20, 20, 20, 20, 20, 20, 20, 20,   20, 16, 17, 20, 20, 18, 19, 20,
 
280
};
 
281
static const struct byte_lookup* const
 
282
to_ISO_8859_2_C4_infos[21] = {
 
283
     o1(0xC3), o1(0xE3), o1(0xA1), o1(0xB1),
 
284
     o1(0xC6), o1(0xE6), o1(0xC8), o1(0xE8),
 
285
     o1(0xCF), o1(0xEF), o1(0xD0), o1(0xF0),
 
286
     o1(0xCA), o1(0xEA), o1(0xCC), o1(0xEC),
 
287
     o1(0xC5), o1(0xE5), o1(0xA5), o1(0xB5),
 
288
        UNDEF,
 
289
};
 
290
static const BYTE_LOOKUP
 
291
to_ISO_8859_2_C4 = {
 
292
    to_ISO_8859_2_C4_offsets,
 
293
    to_ISO_8859_2_C4_infos
 
294
};
 
295
 
 
296
static const unsigned char
 
297
to_ISO_8859_2_C5_offsets[64] = {
 
298
     32,  0,  1,  2,  3, 32, 32,  4,    5, 32, 32, 32, 32, 32, 32, 32,
 
299
      6,  7, 32, 32,  8,  9, 32, 32,   10, 11, 12, 13, 32, 32, 14, 15,
 
300
     16, 17, 18, 19, 20, 21, 32, 32,   32, 32, 32, 32, 32, 32, 22, 23,
 
301
     24, 25, 32, 32, 32, 32, 32, 32,   32, 26, 27, 28, 29, 30, 31, 32,
 
302
};
 
303
static const struct byte_lookup* const
 
304
to_ISO_8859_2_C5_infos[33] = {
 
305
     o1(0xA3), o1(0xB3), o1(0xD1), o1(0xF1),
 
306
     o1(0xD2), o1(0xF2), o1(0xD5), o1(0xF5),
 
307
     o1(0xC0), o1(0xE0), o1(0xD8), o1(0xF8),
 
308
     o1(0xA6), o1(0xB6), o1(0xAA), o1(0xBA),
 
309
     o1(0xA9), o1(0xB9), o1(0xDE), o1(0xFE),
 
310
     o1(0xAB), o1(0xBB), o1(0xD9), o1(0xF9),
 
311
     o1(0xDB), o1(0xFB), o1(0xAC), o1(0xBC),
 
312
     o1(0xAF), o1(0xBF), o1(0xAE), o1(0xBE),
 
313
        UNDEF,
 
314
};
 
315
static const BYTE_LOOKUP
 
316
to_ISO_8859_2_C5 = {
 
317
    to_ISO_8859_2_C5_offsets,
 
318
    to_ISO_8859_2_C5_infos
 
319
};
 
320
 
 
321
static const unsigned char
 
322
to_ISO_8859_2_CB_offsets[64] = {
 
323
      5,  5,  5,  5,  5,  5,  5,  0,    5,  5,  5,  5,  5,  5,  5,  5,
 
324
      5,  5,  5,  5,  5,  5,  5,  5,    1,  2,  5,  3,  5,  4,  5,  5,
 
325
      5,  5,  5,  5,  5,  5,  5,  5,    5,  5,  5,  5,  5,  5,  5,  5,
 
326
      5,  5,  5,  5,  5,  5,  5,  5,    5,  5,  5,  5,  5,  5,  5,  5,
 
327
};
 
328
static const struct byte_lookup* const
 
329
to_ISO_8859_2_CB_infos[6] = {
 
330
     o1(0xB7), o1(0xA2), o1(0xFF), o1(0xB2),
 
331
     o1(0xBD),    UNDEF,
 
332
};
 
333
static const BYTE_LOOKUP
 
334
to_ISO_8859_2_CB = {
 
335
    to_ISO_8859_2_CB_offsets,
 
336
    to_ISO_8859_2_CB_infos
 
337
};
 
338
 
 
339
static const unsigned char
 
340
to_ISO_8859_2_offsets[256] = {
 
341
  /* used from to_ISO_8859_2 */
 
342
  /* used from to_ISO_8859_3 */
 
343
  /* used from to_ISO_8859_4 */
 
344
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
345
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
346
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
347
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
348
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
349
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
350
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
351
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
352
      6,  6,  6,  6,  6,  6,  6,  6,    6,  6,  6,  6,  6,  6,  6,  6,
 
353
      6,  6,  6,  6,  6,  6,  6,  6,    6,  6,  6,  6,  6,  6,  6,  6,
 
354
      6,  6,  6,  6,  6,  6,  6,  6,    6,  6,  6,  6,  6,  6,  6,  6,
 
355
      6,  6,  6,  6,  6,  6,  6,  6,    6,  6,  6,  6,  6,  6,  6,  6,
 
356
      6,  6,  1,  2,  3,  4,  6,  6,    6,  6,  6,  5,  6,  6,  6,  6,
 
357
      6,  6,  6,  6,  6,  6,  6,  6,    6,  6,  6,  6,  6,  6,  6,  6,
 
358
      6,  6,  6,  6,  6,  6,  6,  6,    6,  6,  6,  6,  6,  6,  6,  6,
 
359
      6,  6,  6,  6,  6,  6,  6,  6,    6,  6,  6,  6,  6,  6,  6,  6,
 
360
};
 
361
static const struct byte_lookup* const
 
362
to_ISO_8859_2_infos[7] = {
 
363
                 NOMAP, &to_ISO_8859_2_C2,
 
364
     &to_ISO_8859_2_C3, &to_ISO_8859_2_C4,
 
365
     &to_ISO_8859_2_C5, &to_ISO_8859_2_CB,
 
366
                 UNDEF,
 
367
};
 
368
static const BYTE_LOOKUP
 
369
to_ISO_8859_2 = {
 
370
    to_ISO_8859_2_offsets,
 
371
    to_ISO_8859_2_infos
 
372
};
 
373
static rb_transcoder
 
374
rb_to_ISO_8859_2 = {
 
375
    "UTF-8", "ISO-8859-2", &to_ISO_8859_2, 1, 1,
 
376
    NULL, NULL,
 
377
};
 
378
 
 
379
static const unsigned char
 
380
from_ISO_8859_3_offsets[256] = {
 
381
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
382
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
383
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
384
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
385
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
386
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
387
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
388
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
389
      1,  2,  3,  4,  5,  6,  7,  8,    9, 10, 11, 12, 13, 14, 15, 16,
 
390
     17, 18, 19, 20, 21, 22, 23, 24,   25, 26, 27, 28, 29, 30, 31, 32,
 
391
     33, 34, 35, 36, 37,122, 38, 39,   40, 41, 42, 43, 44, 45,122, 46,
 
392
     47, 48, 49, 50, 51, 52, 53, 54,   55, 56, 57, 58, 59, 60,122, 61,
 
393
     62, 63, 64,122, 65, 66, 67, 68,   69, 70, 71, 72, 73, 74, 75, 76,
 
394
    122, 77, 78, 79, 80, 81, 82, 83,   84, 85, 86, 87, 88, 89, 90, 91,
 
395
     92, 93, 94,122, 95, 96, 97, 98,   99,100,101,102,103,104,105,106,
 
396
    122,107,108,109,110,111,112,113,  114,115,116,117,118,119,120,121,
 
397
};
 
398
static const struct byte_lookup* const
 
399
from_ISO_8859_3_infos[123] = {
 
400
             NOMAP, o2(0xC2,0x80), o2(0xC2,0x81), o2(0xC2,0x82),
 
401
     o2(0xC2,0x83), o2(0xC2,0x84), o2(0xC2,0x85), o2(0xC2,0x86),
 
402
     o2(0xC2,0x87), o2(0xC2,0x88), o2(0xC2,0x89), o2(0xC2,0x8A),
 
403
     o2(0xC2,0x8B), o2(0xC2,0x8C), o2(0xC2,0x8D), o2(0xC2,0x8E),
 
404
     o2(0xC2,0x8F), o2(0xC2,0x90), o2(0xC2,0x91), o2(0xC2,0x92),
 
405
     o2(0xC2,0x93), o2(0xC2,0x94), o2(0xC2,0x95), o2(0xC2,0x96),
 
406
     o2(0xC2,0x97), o2(0xC2,0x98), o2(0xC2,0x99), o2(0xC2,0x9A),
 
407
     o2(0xC2,0x9B), o2(0xC2,0x9C), o2(0xC2,0x9D), o2(0xC2,0x9E),
 
408
     o2(0xC2,0x9F), o2(0xC2,0xA0), o2(0xC4,0xA6), o2(0xCB,0x98),
 
409
     o2(0xC2,0xA3), o2(0xC2,0xA4), o2(0xC4,0xA4), o2(0xC2,0xA7),
 
410
     o2(0xC2,0xA8), o2(0xC4,0xB0), o2(0xC5,0x9E), o2(0xC4,0x9E),
 
411
     o2(0xC4,0xB4), o2(0xC2,0xAD), o2(0xC5,0xBB), o2(0xC2,0xB0),
 
412
     o2(0xC4,0xA7), o2(0xC2,0xB2), o2(0xC2,0xB3), o2(0xC2,0xB4),
 
413
     o2(0xC2,0xB5), o2(0xC4,0xA5), o2(0xC2,0xB7), o2(0xC2,0xB8),
 
414
     o2(0xC4,0xB1), o2(0xC5,0x9F), o2(0xC4,0x9F), o2(0xC4,0xB5),
 
415
     o2(0xC2,0xBD), o2(0xC5,0xBC), o2(0xC3,0x80), o2(0xC3,0x81),
 
416
     o2(0xC3,0x82), o2(0xC3,0x84), o2(0xC4,0x8A), o2(0xC4,0x88),
 
417
     o2(0xC3,0x87), o2(0xC3,0x88), o2(0xC3,0x89), o2(0xC3,0x8A),
 
418
     o2(0xC3,0x8B), o2(0xC3,0x8C), o2(0xC3,0x8D), o2(0xC3,0x8E),
 
419
     o2(0xC3,0x8F), o2(0xC3,0x91), o2(0xC3,0x92), o2(0xC3,0x93),
 
420
     o2(0xC3,0x94), o2(0xC4,0xA0), o2(0xC3,0x96), o2(0xC3,0x97),
 
421
     o2(0xC4,0x9C), o2(0xC3,0x99), o2(0xC3,0x9A), o2(0xC3,0x9B),
 
422
     o2(0xC3,0x9C), o2(0xC5,0xAC), o2(0xC5,0x9C), o2(0xC3,0x9F),
 
423
     o2(0xC3,0xA0), o2(0xC3,0xA1), o2(0xC3,0xA2), o2(0xC3,0xA4),
 
424
     o2(0xC4,0x8B), o2(0xC4,0x89), o2(0xC3,0xA7), o2(0xC3,0xA8),
 
425
     o2(0xC3,0xA9), o2(0xC3,0xAA), o2(0xC3,0xAB), o2(0xC3,0xAC),
 
426
     o2(0xC3,0xAD), o2(0xC3,0xAE), o2(0xC3,0xAF), o2(0xC3,0xB1),
 
427
     o2(0xC3,0xB2), o2(0xC3,0xB3), o2(0xC3,0xB4), o2(0xC4,0xA1),
 
428
     o2(0xC3,0xB6), o2(0xC3,0xB7), o2(0xC4,0x9D), o2(0xC3,0xB9),
 
429
     o2(0xC3,0xBA), o2(0xC3,0xBB), o2(0xC3,0xBC), o2(0xC5,0xAD),
 
430
     o2(0xC5,0x9D), o2(0xCB,0x99),         UNDEF,
 
431
};
 
432
static const BYTE_LOOKUP
 
433
from_ISO_8859_3 = {
 
434
    from_ISO_8859_3_offsets,
 
435
    from_ISO_8859_3_infos
 
436
};
 
437
static rb_transcoder
 
438
rb_from_ISO_8859_3 = {
 
439
    "ISO-8859-3", "UTF-8", &from_ISO_8859_3, 2, 0,
 
440
    NULL, NULL,
 
441
};
 
442
 
 
443
static const unsigned char
 
444
to_ISO_8859_3_C2_offsets[64] = {
 
445
      0,  1,  2,  3,  4,  5,  6,  7,    8,  9, 10, 11, 12, 13, 14, 15,
 
446
     16, 17, 18, 19, 20, 21, 22, 23,   24, 25, 26, 27, 28, 29, 30, 31,
 
447
     32, 46, 46, 33, 34, 46, 46, 35,   36, 46, 46, 46, 46, 37, 46, 46,
 
448
     38, 46, 39, 40, 41, 42, 46, 43,   44, 46, 46, 46, 46, 45, 46, 46,
 
449
};
 
450
static const struct byte_lookup* const
 
451
to_ISO_8859_3_C2_infos[47] = {
 
452
     o1(0x80), o1(0x81), o1(0x82), o1(0x83),
 
453
     o1(0x84), o1(0x85), o1(0x86), o1(0x87),
 
454
     o1(0x88), o1(0x89), o1(0x8A), o1(0x8B),
 
455
     o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F),
 
456
     o1(0x90), o1(0x91), o1(0x92), o1(0x93),
 
457
     o1(0x94), o1(0x95), o1(0x96), o1(0x97),
 
458
     o1(0x98), o1(0x99), o1(0x9A), o1(0x9B),
 
459
     o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F),
 
460
     o1(0xA0), o1(0xA3), o1(0xA4), o1(0xA7),
 
461
     o1(0xA8), o1(0xAD), o1(0xB0), o1(0xB2),
 
462
     o1(0xB3), o1(0xB4), o1(0xB5), o1(0xB7),
 
463
     o1(0xB8), o1(0xBD),    UNDEF,
 
464
};
 
465
static const BYTE_LOOKUP
 
466
to_ISO_8859_3_C2 = {
 
467
    to_ISO_8859_3_C2_offsets,
 
468
    to_ISO_8859_3_C2_infos
 
469
};
 
470
 
 
471
static const unsigned char
 
472
to_ISO_8859_3_C3_offsets[64] = {
 
473
      0,  1,  2, 47,  3, 47, 47,  4,    5,  6,  7,  8,  9, 10, 11, 12,
 
474
     47, 13, 14, 15, 16, 47, 17, 18,   47, 19, 20, 21, 22, 47, 47, 23,
 
475
     24, 25, 26, 47, 27, 47, 47, 28,   29, 30, 31, 32, 33, 34, 35, 36,
 
476
     47, 37, 38, 39, 40, 47, 41, 42,   47, 43, 44, 45, 46, 47, 47, 47,
 
477
};
 
478
static const struct byte_lookup* const
 
479
to_ISO_8859_3_C3_infos[48] = {
 
480
     o1(0xC0), o1(0xC1), o1(0xC2), o1(0xC4),
 
481
     o1(0xC7), o1(0xC8), o1(0xC9), o1(0xCA),
 
482
     o1(0xCB), o1(0xCC), o1(0xCD), o1(0xCE),
 
483
     o1(0xCF), o1(0xD1), o1(0xD2), o1(0xD3),
 
484
     o1(0xD4), o1(0xD6), o1(0xD7), o1(0xD9),
 
485
     o1(0xDA), o1(0xDB), o1(0xDC), o1(0xDF),
 
486
     o1(0xE0), o1(0xE1), o1(0xE2), o1(0xE4),
 
487
     o1(0xE7), o1(0xE8), o1(0xE9), o1(0xEA),
 
488
     o1(0xEB), o1(0xEC), o1(0xED), o1(0xEE),
 
489
     o1(0xEF), o1(0xF1), o1(0xF2), o1(0xF3),
 
490
     o1(0xF4), o1(0xF6), o1(0xF7), o1(0xF9),
 
491
     o1(0xFA), o1(0xFB), o1(0xFC),    UNDEF,
 
492
};
 
493
static const BYTE_LOOKUP
 
494
to_ISO_8859_3_C3 = {
 
495
    to_ISO_8859_3_C3_offsets,
 
496
    to_ISO_8859_3_C3_infos
 
497
};
 
498
 
 
499
static const unsigned char
 
500
to_ISO_8859_3_C4_offsets[64] = {
 
501
     18, 18, 18, 18, 18, 18, 18, 18,    0,  1,  2,  3, 18, 18, 18, 18,
 
502
     18, 18, 18, 18, 18, 18, 18, 18,   18, 18, 18, 18,  4,  5,  6,  7,
 
503
      8,  9, 18, 18, 10, 11, 12, 13,   18, 18, 18, 18, 18, 18, 18, 18,
 
504
     14, 15, 18, 18, 16, 17, 18, 18,   18, 18, 18, 18, 18, 18, 18, 18,
 
505
};
 
506
static const struct byte_lookup* const
 
507
to_ISO_8859_3_C4_infos[19] = {
 
508
     o1(0xC6), o1(0xE6), o1(0xC5), o1(0xE5),
 
509
     o1(0xD8), o1(0xF8), o1(0xAB), o1(0xBB),
 
510
     o1(0xD5), o1(0xF5), o1(0xA6), o1(0xB6),
 
511
     o1(0xA1), o1(0xB1), o1(0xA9), o1(0xB9),
 
512
     o1(0xAC), o1(0xBC),    UNDEF,
 
513
};
 
514
static const BYTE_LOOKUP
 
515
to_ISO_8859_3_C4 = {
 
516
    to_ISO_8859_3_C4_offsets,
 
517
    to_ISO_8859_3_C4_infos
 
518
};
 
519
 
 
520
static const unsigned char
 
521
to_ISO_8859_3_C5_offsets[64] = {
 
522
      8,  8,  8,  8,  8,  8,  8,  8,    8,  8,  8,  8,  8,  8,  8,  8,
 
523
      8,  8,  8,  8,  8,  8,  8,  8,    8,  8,  8,  8,  0,  1,  2,  3,
 
524
      8,  8,  8,  8,  8,  8,  8,  8,    8,  8,  8,  8,  4,  5,  8,  8,
 
525
      8,  8,  8,  8,  8,  8,  8,  8,    8,  8,  8,  6,  7,  8,  8,  8,
 
526
};
 
527
static const struct byte_lookup* const
 
528
to_ISO_8859_3_C5_infos[9] = {
 
529
     o1(0xDE), o1(0xFE), o1(0xAA), o1(0xBA),
 
530
     o1(0xDD), o1(0xFD), o1(0xAF), o1(0xBF),
 
531
        UNDEF,
 
532
};
 
533
static const BYTE_LOOKUP
 
534
to_ISO_8859_3_C5 = {
 
535
    to_ISO_8859_3_C5_offsets,
 
536
    to_ISO_8859_3_C5_infos
 
537
};
 
538
 
 
539
static const unsigned char
 
540
to_ISO_8859_3_CB_offsets[64] = {
 
541
      2,  2,  2,  2,  2,  2,  2,  2,    2,  2,  2,  2,  2,  2,  2,  2,
 
542
      2,  2,  2,  2,  2,  2,  2,  2,    0,  1,  2,  2,  2,  2,  2,  2,
 
543
      2,  2,  2,  2,  2,  2,  2,  2,    2,  2,  2,  2,  2,  2,  2,  2,
 
544
      2,  2,  2,  2,  2,  2,  2,  2,    2,  2,  2,  2,  2,  2,  2,  2,
 
545
};
 
546
static const struct byte_lookup* const
 
547
to_ISO_8859_3_CB_infos[3] = {
 
548
     o1(0xA2), o1(0xFF),    UNDEF,
 
549
};
 
550
static const BYTE_LOOKUP
 
551
to_ISO_8859_3_CB = {
 
552
    to_ISO_8859_3_CB_offsets,
 
553
    to_ISO_8859_3_CB_infos
 
554
};
 
555
 
 
556
static const struct byte_lookup* const
 
557
to_ISO_8859_3_infos[7] = {
 
558
                 NOMAP, &to_ISO_8859_3_C2,
 
559
     &to_ISO_8859_3_C3, &to_ISO_8859_3_C4,
 
560
     &to_ISO_8859_3_C5, &to_ISO_8859_3_CB,
 
561
                 UNDEF,
 
562
};
 
563
static const BYTE_LOOKUP
 
564
to_ISO_8859_3 = {
 
565
    to_ISO_8859_2_offsets,
 
566
    to_ISO_8859_3_infos
 
567
};
 
568
static rb_transcoder
 
569
rb_to_ISO_8859_3 = {
 
570
    "UTF-8", "ISO-8859-3", &to_ISO_8859_3, 1, 1,
 
571
    NULL, NULL,
 
572
};
 
573
 
 
574
static const struct byte_lookup* const
 
575
from_ISO_8859_4_infos[129] = {
 
576
             NOMAP, o2(0xC2,0x80), o2(0xC2,0x81), o2(0xC2,0x82),
 
577
     o2(0xC2,0x83), o2(0xC2,0x84), o2(0xC2,0x85), o2(0xC2,0x86),
 
578
     o2(0xC2,0x87), o2(0xC2,0x88), o2(0xC2,0x89), o2(0xC2,0x8A),
 
579
     o2(0xC2,0x8B), o2(0xC2,0x8C), o2(0xC2,0x8D), o2(0xC2,0x8E),
 
580
     o2(0xC2,0x8F), o2(0xC2,0x90), o2(0xC2,0x91), o2(0xC2,0x92),
 
581
     o2(0xC2,0x93), o2(0xC2,0x94), o2(0xC2,0x95), o2(0xC2,0x96),
 
582
     o2(0xC2,0x97), o2(0xC2,0x98), o2(0xC2,0x99), o2(0xC2,0x9A),
 
583
     o2(0xC2,0x9B), o2(0xC2,0x9C), o2(0xC2,0x9D), o2(0xC2,0x9E),
 
584
     o2(0xC2,0x9F), o2(0xC2,0xA0), o2(0xC4,0x84), o2(0xC4,0xB8),
 
585
     o2(0xC5,0x96), o2(0xC2,0xA4), o2(0xC4,0xA8), o2(0xC4,0xBB),
 
586
     o2(0xC2,0xA7), o2(0xC2,0xA8), o2(0xC5,0xA0), o2(0xC4,0x92),
 
587
     o2(0xC4,0xA2), o2(0xC5,0xA6), o2(0xC2,0xAD), o2(0xC5,0xBD),
 
588
     o2(0xC2,0xAF), o2(0xC2,0xB0), o2(0xC4,0x85), o2(0xCB,0x9B),
 
589
     o2(0xC5,0x97), o2(0xC2,0xB4), o2(0xC4,0xA9), o2(0xC4,0xBC),
 
590
     o2(0xCB,0x87), o2(0xC2,0xB8), o2(0xC5,0xA1), o2(0xC4,0x93),
 
591
     o2(0xC4,0xA3), o2(0xC5,0xA7), o2(0xC5,0x8A), o2(0xC5,0xBE),
 
592
     o2(0xC5,0x8B), o2(0xC4,0x80), o2(0xC3,0x81), o2(0xC3,0x82),
 
593
     o2(0xC3,0x83), o2(0xC3,0x84), o2(0xC3,0x85), o2(0xC3,0x86),
 
594
     o2(0xC4,0xAE), o2(0xC4,0x8C), o2(0xC3,0x89), o2(0xC4,0x98),
 
595
     o2(0xC3,0x8B), o2(0xC4,0x96), o2(0xC3,0x8D), o2(0xC3,0x8E),
 
596
     o2(0xC4,0xAA), o2(0xC4,0x90), o2(0xC5,0x85), o2(0xC5,0x8C),
 
597
     o2(0xC4,0xB6), o2(0xC3,0x94), o2(0xC3,0x95), o2(0xC3,0x96),
 
598
     o2(0xC3,0x97), o2(0xC3,0x98), o2(0xC5,0xB2), o2(0xC3,0x9A),
 
599
     o2(0xC3,0x9B), o2(0xC3,0x9C), o2(0xC5,0xA8), o2(0xC5,0xAA),
 
600
     o2(0xC3,0x9F), o2(0xC4,0x81), o2(0xC3,0xA1), o2(0xC3,0xA2),
 
601
     o2(0xC3,0xA3), o2(0xC3,0xA4), o2(0xC3,0xA5), o2(0xC3,0xA6),
 
602
     o2(0xC4,0xAF), o2(0xC4,0x8D), o2(0xC3,0xA9), o2(0xC4,0x99),
 
603
     o2(0xC3,0xAB), o2(0xC4,0x97), o2(0xC3,0xAD), o2(0xC3,0xAE),
 
604
     o2(0xC4,0xAB), o2(0xC4,0x91), o2(0xC5,0x86), o2(0xC5,0x8D),
 
605
     o2(0xC4,0xB7), o2(0xC3,0xB4), o2(0xC3,0xB5), o2(0xC3,0xB6),
 
606
     o2(0xC3,0xB7), o2(0xC3,0xB8), o2(0xC5,0xB3), o2(0xC3,0xBA),
 
607
     o2(0xC3,0xBB), o2(0xC3,0xBC), o2(0xC5,0xA9), o2(0xC5,0xAB),
 
608
     o2(0xCB,0x99),
 
609
};
 
610
static const BYTE_LOOKUP
 
611
from_ISO_8859_4 = {
 
612
    from_ISO_8859_1_offsets,
 
613
    from_ISO_8859_4_infos
 
614
};
 
615
static rb_transcoder
 
616
rb_from_ISO_8859_4 = {
 
617
    "ISO-8859-4", "UTF-8", &from_ISO_8859_4, 2, 0,
 
618
    NULL, NULL,
 
619
};
 
620
 
 
621
static const unsigned char
 
622
to_ISO_8859_4_C2_offsets[64] = {
 
623
      0,  1,  2,  3,  4,  5,  6,  7,    8,  9, 10, 11, 12, 13, 14, 15,
 
624
     16, 17, 18, 19, 20, 21, 22, 23,   24, 25, 26, 27, 28, 29, 30, 31,
 
625
     32, 41, 41, 41, 33, 41, 41, 34,   35, 41, 41, 41, 41, 36, 41, 37,
 
626
     38, 41, 41, 41, 39, 41, 41, 41,   40, 41, 41, 41, 41, 41, 41, 41,
 
627
};
 
628
static const struct byte_lookup* const
 
629
to_ISO_8859_4_C2_infos[42] = {
 
630
     o1(0x80), o1(0x81), o1(0x82), o1(0x83),
 
631
     o1(0x84), o1(0x85), o1(0x86), o1(0x87),
 
632
     o1(0x88), o1(0x89), o1(0x8A), o1(0x8B),
 
633
     o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F),
 
634
     o1(0x90), o1(0x91), o1(0x92), o1(0x93),
 
635
     o1(0x94), o1(0x95), o1(0x96), o1(0x97),
 
636
     o1(0x98), o1(0x99), o1(0x9A), o1(0x9B),
 
637
     o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F),
 
638
     o1(0xA0), o1(0xA4), o1(0xA7), o1(0xA8),
 
639
     o1(0xAD), o1(0xAF), o1(0xB0), o1(0xB4),
 
640
     o1(0xB8),    UNDEF,
 
641
};
 
642
static const BYTE_LOOKUP
 
643
to_ISO_8859_4_C2 = {
 
644
    to_ISO_8859_4_C2_offsets,
 
645
    to_ISO_8859_4_C2_infos
 
646
};
 
647
 
 
648
static const unsigned char
 
649
to_ISO_8859_4_C3_offsets[64] = {
 
650
     37,  0,  1,  2,  3,  4,  5, 37,   37,  6, 37,  7, 37,  8,  9, 37,
 
651
     37, 37, 37, 37, 10, 11, 12, 13,   14, 37, 15, 16, 17, 37, 37, 18,
 
652
     37, 19, 20, 21, 22, 23, 24, 37,   37, 25, 37, 26, 37, 27, 28, 37,
 
653
     37, 37, 37, 37, 29, 30, 31, 32,   33, 37, 34, 35, 36, 37, 37, 37,
 
654
};
 
655
static const struct byte_lookup* const
 
656
to_ISO_8859_4_C3_infos[38] = {
 
657
     o1(0xC1), o1(0xC2), o1(0xC3), o1(0xC4),
 
658
     o1(0xC5), o1(0xC6), o1(0xC9), o1(0xCB),
 
659
     o1(0xCD), o1(0xCE), o1(0xD4), o1(0xD5),
 
660
     o1(0xD6), o1(0xD7), o1(0xD8), o1(0xDA),
 
661
     o1(0xDB), o1(0xDC), o1(0xDF), o1(0xE1),
 
662
     o1(0xE2), o1(0xE3), o1(0xE4), o1(0xE5),
 
663
     o1(0xE6), o1(0xE9), o1(0xEB), o1(0xED),
 
664
     o1(0xEE), o1(0xF4), o1(0xF5), o1(0xF6),
 
665
     o1(0xF7), o1(0xF8), o1(0xFA), o1(0xFB),
 
666
     o1(0xFC),    UNDEF,
 
667
};
 
668
static const BYTE_LOOKUP
 
669
to_ISO_8859_4_C3 = {
 
670
    to_ISO_8859_4_C3_offsets,
 
671
    to_ISO_8859_4_C3_infos
 
672
};
 
673
 
 
674
static const unsigned char
 
675
to_ISO_8859_4_C4_offsets[64] = {
 
676
  /* used from to_ISO_8859_4_C4 */
 
677
  /* used from to_ISO_8859_10_C4 */
 
678
      0,  1, 27, 27,  2,  3, 27, 27,   27, 27, 27, 27,  4,  5, 27, 27,
 
679
      6,  7,  8,  9, 27, 27, 10, 11,   12, 13, 27, 27, 27, 27, 27, 27,
 
680
     27, 27, 14, 15, 27, 27, 27, 27,   16, 17, 18, 19, 27, 27, 20, 21,
 
681
     27, 27, 27, 27, 27, 27, 22, 23,   24, 27, 27, 25, 26, 27, 27, 27,
 
682
};
 
683
static const struct byte_lookup* const
 
684
to_ISO_8859_4_C4_infos[28] = {
 
685
     o1(0xC0), o1(0xE0), o1(0xA1), o1(0xB1),
 
686
     o1(0xC8), o1(0xE8), o1(0xD0), o1(0xF0),
 
687
     o1(0xAA), o1(0xBA), o1(0xCC), o1(0xEC),
 
688
     o1(0xCA), o1(0xEA), o1(0xAB), o1(0xBB),
 
689
     o1(0xA5), o1(0xB5), o1(0xCF), o1(0xEF),
 
690
     o1(0xC7), o1(0xE7), o1(0xD3), o1(0xF3),
 
691
     o1(0xA2), o1(0xA6), o1(0xB6),    UNDEF,
 
692
};
 
693
static const BYTE_LOOKUP
 
694
to_ISO_8859_4_C4 = {
 
695
    to_ISO_8859_4_C4_offsets,
 
696
    to_ISO_8859_4_C4_infos
 
697
};
 
698
 
 
699
static const unsigned char
 
700
to_ISO_8859_4_C5_offsets[64] = {
 
701
     20, 20, 20, 20, 20,  0,  1, 20,   20, 20,  2,  3,  4,  5, 20, 20,
 
702
     20, 20, 20, 20, 20, 20,  6,  7,   20, 20, 20, 20, 20, 20, 20, 20,
 
703
      8,  9, 20, 20, 20, 20, 10, 11,   12, 13, 14, 15, 20, 20, 20, 20,
 
704
     20, 20, 16, 17, 20, 20, 20, 20,   20, 20, 20, 20, 20, 18, 19, 20,
 
705
};
 
706
static const struct byte_lookup* const
 
707
to_ISO_8859_4_C5_infos[21] = {
 
708
     o1(0xD1), o1(0xF1), o1(0xBD), o1(0xBF),
 
709
     o1(0xD2), o1(0xF2), o1(0xA3), o1(0xB3),
 
710
     o1(0xA9), o1(0xB9), o1(0xAC), o1(0xBC),
 
711
     o1(0xDD), o1(0xFD), o1(0xDE), o1(0xFE),
 
712
     o1(0xD9), o1(0xF9), o1(0xAE), o1(0xBE),
 
713
        UNDEF,
 
714
};
 
715
static const BYTE_LOOKUP
 
716
to_ISO_8859_4_C5 = {
 
717
    to_ISO_8859_4_C5_offsets,
 
718
    to_ISO_8859_4_C5_infos
 
719
};
 
720
 
 
721
static const unsigned char
 
722
to_ISO_8859_4_CB_offsets[64] = {
 
723
      3,  3,  3,  3,  3,  3,  3,  0,    3,  3,  3,  3,  3,  3,  3,  3,
 
724
      3,  3,  3,  3,  3,  3,  3,  3,    3,  1,  3,  2,  3,  3,  3,  3,
 
725
      3,  3,  3,  3,  3,  3,  3,  3,    3,  3,  3,  3,  3,  3,  3,  3,
 
726
      3,  3,  3,  3,  3,  3,  3,  3,    3,  3,  3,  3,  3,  3,  3,  3,
 
727
};
 
728
static const struct byte_lookup* const
 
729
to_ISO_8859_4_CB_infos[4] = {
 
730
     o1(0xB7), o1(0xFF), o1(0xB2),    UNDEF,
 
731
};
 
732
static const BYTE_LOOKUP
 
733
to_ISO_8859_4_CB = {
 
734
    to_ISO_8859_4_CB_offsets,
 
735
    to_ISO_8859_4_CB_infos
 
736
};
 
737
 
 
738
static const struct byte_lookup* const
 
739
to_ISO_8859_4_infos[7] = {
 
740
                 NOMAP, &to_ISO_8859_4_C2,
 
741
     &to_ISO_8859_4_C3, &to_ISO_8859_4_C4,
 
742
     &to_ISO_8859_4_C5, &to_ISO_8859_4_CB,
 
743
                 UNDEF,
 
744
};
 
745
static const BYTE_LOOKUP
 
746
to_ISO_8859_4 = {
 
747
    to_ISO_8859_2_offsets,
 
748
    to_ISO_8859_4_infos
 
749
};
 
750
static rb_transcoder
 
751
rb_to_ISO_8859_4 = {
 
752
    "UTF-8", "ISO-8859-4", &to_ISO_8859_4, 1, 1,
 
753
    NULL, NULL,
 
754
};
 
755
 
 
756
static const struct byte_lookup* const
 
757
from_ISO_8859_5_infos[129] = {
 
758
                  NOMAP,      o2(0xC2,0x80),
 
759
          o2(0xC2,0x81),      o2(0xC2,0x82),
 
760
          o2(0xC2,0x83),      o2(0xC2,0x84),
 
761
          o2(0xC2,0x85),      o2(0xC2,0x86),
 
762
          o2(0xC2,0x87),      o2(0xC2,0x88),
 
763
          o2(0xC2,0x89),      o2(0xC2,0x8A),
 
764
          o2(0xC2,0x8B),      o2(0xC2,0x8C),
 
765
          o2(0xC2,0x8D),      o2(0xC2,0x8E),
 
766
          o2(0xC2,0x8F),      o2(0xC2,0x90),
 
767
          o2(0xC2,0x91),      o2(0xC2,0x92),
 
768
          o2(0xC2,0x93),      o2(0xC2,0x94),
 
769
          o2(0xC2,0x95),      o2(0xC2,0x96),
 
770
          o2(0xC2,0x97),      o2(0xC2,0x98),
 
771
          o2(0xC2,0x99),      o2(0xC2,0x9A),
 
772
          o2(0xC2,0x9B),      o2(0xC2,0x9C),
 
773
          o2(0xC2,0x9D),      o2(0xC2,0x9E),
 
774
          o2(0xC2,0x9F),      o2(0xC2,0xA0),
 
775
          o2(0xD0,0x81),      o2(0xD0,0x82),
 
776
          o2(0xD0,0x83),      o2(0xD0,0x84),
 
777
          o2(0xD0,0x85),      o2(0xD0,0x86),
 
778
          o2(0xD0,0x87),      o2(0xD0,0x88),
 
779
          o2(0xD0,0x89),      o2(0xD0,0x8A),
 
780
          o2(0xD0,0x8B),      o2(0xD0,0x8C),
 
781
          o2(0xC2,0xAD),      o2(0xD0,0x8E),
 
782
          o2(0xD0,0x8F),      o2(0xD0,0x90),
 
783
          o2(0xD0,0x91),      o2(0xD0,0x92),
 
784
          o2(0xD0,0x93),      o2(0xD0,0x94),
 
785
          o2(0xD0,0x95),      o2(0xD0,0x96),
 
786
          o2(0xD0,0x97),      o2(0xD0,0x98),
 
787
          o2(0xD0,0x99),      o2(0xD0,0x9A),
 
788
          o2(0xD0,0x9B),      o2(0xD0,0x9C),
 
789
          o2(0xD0,0x9D),      o2(0xD0,0x9E),
 
790
          o2(0xD0,0x9F),      o2(0xD0,0xA0),
 
791
          o2(0xD0,0xA1),      o2(0xD0,0xA2),
 
792
          o2(0xD0,0xA3),      o2(0xD0,0xA4),
 
793
          o2(0xD0,0xA5),      o2(0xD0,0xA6),
 
794
          o2(0xD0,0xA7),      o2(0xD0,0xA8),
 
795
          o2(0xD0,0xA9),      o2(0xD0,0xAA),
 
796
          o2(0xD0,0xAB),      o2(0xD0,0xAC),
 
797
          o2(0xD0,0xAD),      o2(0xD0,0xAE),
 
798
          o2(0xD0,0xAF),      o2(0xD0,0xB0),
 
799
          o2(0xD0,0xB1),      o2(0xD0,0xB2),
 
800
          o2(0xD0,0xB3),      o2(0xD0,0xB4),
 
801
          o2(0xD0,0xB5),      o2(0xD0,0xB6),
 
802
          o2(0xD0,0xB7),      o2(0xD0,0xB8),
 
803
          o2(0xD0,0xB9),      o2(0xD0,0xBA),
 
804
          o2(0xD0,0xBB),      o2(0xD0,0xBC),
 
805
          o2(0xD0,0xBD),      o2(0xD0,0xBE),
 
806
          o2(0xD0,0xBF),      o2(0xD1,0x80),
 
807
          o2(0xD1,0x81),      o2(0xD1,0x82),
 
808
          o2(0xD1,0x83),      o2(0xD1,0x84),
 
809
          o2(0xD1,0x85),      o2(0xD1,0x86),
 
810
          o2(0xD1,0x87),      o2(0xD1,0x88),
 
811
          o2(0xD1,0x89),      o2(0xD1,0x8A),
 
812
          o2(0xD1,0x8B),      o2(0xD1,0x8C),
 
813
          o2(0xD1,0x8D),      o2(0xD1,0x8E),
 
814
          o2(0xD1,0x8F), o3(0xE2,0x84,0x96),
 
815
          o2(0xD1,0x91),      o2(0xD1,0x92),
 
816
          o2(0xD1,0x93),      o2(0xD1,0x94),
 
817
          o2(0xD1,0x95),      o2(0xD1,0x96),
 
818
          o2(0xD1,0x97),      o2(0xD1,0x98),
 
819
          o2(0xD1,0x99),      o2(0xD1,0x9A),
 
820
          o2(0xD1,0x9B),      o2(0xD1,0x9C),
 
821
          o2(0xC2,0xA7),      o2(0xD1,0x9E),
 
822
          o2(0xD1,0x9F),
 
823
};
 
824
static const BYTE_LOOKUP
 
825
from_ISO_8859_5 = {
 
826
    from_ISO_8859_1_offsets,
 
827
    from_ISO_8859_5_infos
 
828
};
 
829
static rb_transcoder
 
830
rb_from_ISO_8859_5 = {
 
831
    "ISO-8859-5", "UTF-8", &from_ISO_8859_5, 3, 0,
 
832
    NULL, NULL,
 
833
};
 
834
 
 
835
static const unsigned char
 
836
to_ISO_8859_5_C2_offsets[64] = {
 
837
      0,  1,  2,  3,  4,  5,  6,  7,    8,  9, 10, 11, 12, 13, 14, 15,
 
838
     16, 17, 18, 19, 20, 21, 22, 23,   24, 25, 26, 27, 28, 29, 30, 31,
 
839
     32, 35, 35, 35, 35, 35, 35, 33,   35, 35, 35, 35, 35, 34, 35, 35,
 
840
     35, 35, 35, 35, 35, 35, 35, 35,   35, 35, 35, 35, 35, 35, 35, 35,
 
841
};
 
842
static const struct byte_lookup* const
 
843
to_ISO_8859_5_C2_infos[36] = {
 
844
     o1(0x80), o1(0x81), o1(0x82), o1(0x83),
 
845
     o1(0x84), o1(0x85), o1(0x86), o1(0x87),
 
846
     o1(0x88), o1(0x89), o1(0x8A), o1(0x8B),
 
847
     o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F),
 
848
     o1(0x90), o1(0x91), o1(0x92), o1(0x93),
 
849
     o1(0x94), o1(0x95), o1(0x96), o1(0x97),
 
850
     o1(0x98), o1(0x99), o1(0x9A), o1(0x9B),
 
851
     o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F),
 
852
     o1(0xA0), o1(0xFD), o1(0xAD),    UNDEF,
 
853
};
 
854
static const BYTE_LOOKUP
 
855
to_ISO_8859_5_C2 = {
 
856
    to_ISO_8859_5_C2_offsets,
 
857
    to_ISO_8859_5_C2_infos
 
858
};
 
859
 
 
860
static const unsigned char
 
861
to_ISO_8859_5_D0_offsets[64] = {
 
862
     62,  0,  1,  2,  3,  4,  5,  6,    7,  8,  9, 10, 11, 62, 12, 13,
 
863
     14, 15, 16, 17, 18, 19, 20, 21,   22, 23, 24, 25, 26, 27, 28, 29,
 
864
     30, 31, 32, 33, 34, 35, 36, 37,   38, 39, 40, 41, 42, 43, 44, 45,
 
865
     46, 47, 48, 49, 50, 51, 52, 53,   54, 55, 56, 57, 58, 59, 60, 61,
 
866
};
 
867
static const struct byte_lookup* const
 
868
to_ISO_8859_5_D0_infos[63] = {
 
869
     o1(0xA1), o1(0xA2), o1(0xA3), o1(0xA4),
 
870
     o1(0xA5), o1(0xA6), o1(0xA7), o1(0xA8),
 
871
     o1(0xA9), o1(0xAA), o1(0xAB), o1(0xAC),
 
872
     o1(0xAE), o1(0xAF), o1(0xB0), o1(0xB1),
 
873
     o1(0xB2), o1(0xB3), o1(0xB4), o1(0xB5),
 
874
     o1(0xB6), o1(0xB7), o1(0xB8), o1(0xB9),
 
875
     o1(0xBA), o1(0xBB), o1(0xBC), o1(0xBD),
 
876
     o1(0xBE), o1(0xBF), o1(0xC0), o1(0xC1),
 
877
     o1(0xC2), o1(0xC3), o1(0xC4), o1(0xC5),
 
878
     o1(0xC6), o1(0xC7), o1(0xC8), o1(0xC9),
 
879
     o1(0xCA), o1(0xCB), o1(0xCC), o1(0xCD),
 
880
     o1(0xCE), o1(0xCF), o1(0xD0), o1(0xD1),
 
881
     o1(0xD2), o1(0xD3), o1(0xD4), o1(0xD5),
 
882
     o1(0xD6), o1(0xD7), o1(0xD8), o1(0xD9),
 
883
     o1(0xDA), o1(0xDB), o1(0xDC), o1(0xDD),
 
884
     o1(0xDE), o1(0xDF),    UNDEF,
 
885
};
 
886
static const BYTE_LOOKUP
 
887
to_ISO_8859_5_D0 = {
 
888
    to_ISO_8859_5_D0_offsets,
 
889
    to_ISO_8859_5_D0_infos
 
890
};
 
891
 
 
892
static const unsigned char
 
893
to_ISO_8859_5_D1_offsets[64] = {
 
894
      0,  1,  2,  3,  4,  5,  6,  7,    8,  9, 10, 11, 12, 13, 14, 15,
 
895
     30, 16, 17, 18, 19, 20, 21, 22,   23, 24, 25, 26, 27, 30, 28, 29,
 
896
     30, 30, 30, 30, 30, 30, 30, 30,   30, 30, 30, 30, 30, 30, 30, 30,
 
897
     30, 30, 30, 30, 30, 30, 30, 30,   30, 30, 30, 30, 30, 30, 30, 30,
 
898
};
 
899
static const struct byte_lookup* const
 
900
to_ISO_8859_5_D1_infos[31] = {
 
901
     o1(0xE0), o1(0xE1), o1(0xE2), o1(0xE3),
 
902
     o1(0xE4), o1(0xE5), o1(0xE6), o1(0xE7),
 
903
     o1(0xE8), o1(0xE9), o1(0xEA), o1(0xEB),
 
904
     o1(0xEC), o1(0xED), o1(0xEE), o1(0xEF),
 
905
     o1(0xF1), o1(0xF2), o1(0xF3), o1(0xF4),
 
906
     o1(0xF5), o1(0xF6), o1(0xF7), o1(0xF8),
 
907
     o1(0xF9), o1(0xFA), o1(0xFB), o1(0xFC),
 
908
     o1(0xFE), o1(0xFF),    UNDEF,
 
909
};
 
910
static const BYTE_LOOKUP
 
911
to_ISO_8859_5_D1 = {
 
912
    to_ISO_8859_5_D1_offsets,
 
913
    to_ISO_8859_5_D1_infos
 
914
};
 
915
 
 
916
static const unsigned char
 
917
to_ISO_8859_5_E2_84_offsets[64] = {
 
918
      1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,
 
919
      1,  1,  1,  1,  1,  1,  0,  1,    1,  1,  1,  1,  1,  1,  1,  1,
 
920
      1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,
 
921
      1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,
 
922
};
 
923
static const struct byte_lookup* const
 
924
to_ISO_8859_5_E2_84_infos[2] = {
 
925
     o1(0xF0),    UNDEF,
 
926
};
 
927
static const BYTE_LOOKUP
 
928
to_ISO_8859_5_E2_84 = {
 
929
    to_ISO_8859_5_E2_84_offsets,
 
930
    to_ISO_8859_5_E2_84_infos
 
931
};
 
932
 
 
933
static const unsigned char
 
934
to_ISO_8859_5_E2_offsets[64] = {
 
935
      1,  1,  1,  1,  0,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,
 
936
      1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,
 
937
      1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,
 
938
      1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,
 
939
};
 
940
static const struct byte_lookup* const
 
941
to_ISO_8859_5_E2_infos[2] = {
 
942
     &to_ISO_8859_5_E2_84,                UNDEF,
 
943
};
 
944
static const BYTE_LOOKUP
 
945
to_ISO_8859_5_E2 = {
 
946
    to_ISO_8859_5_E2_offsets,
 
947
    to_ISO_8859_5_E2_infos
 
948
};
 
949
 
 
950
static const unsigned char
 
951
to_ISO_8859_5_offsets[256] = {
 
952
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
953
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
954
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
955
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
956
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
957
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
958
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
959
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
960
      5,  5,  5,  5,  5,  5,  5,  5,    5,  5,  5,  5,  5,  5,  5,  5,
 
961
      5,  5,  5,  5,  5,  5,  5,  5,    5,  5,  5,  5,  5,  5,  5,  5,
 
962
      5,  5,  5,  5,  5,  5,  5,  5,    5,  5,  5,  5,  5,  5,  5,  5,
 
963
      5,  5,  5,  5,  5,  5,  5,  5,    5,  5,  5,  5,  5,  5,  5,  5,
 
964
      5,  5,  1,  5,  5,  5,  5,  5,    5,  5,  5,  5,  5,  5,  5,  5,
 
965
      2,  3,  5,  5,  5,  5,  5,  5,    5,  5,  5,  5,  5,  5,  5,  5,
 
966
      5,  5,  4,  5,  5,  5,  5,  5,    5,  5,  5,  5,  5,  5,  5,  5,
 
967
      5,  5,  5,  5,  5,  5,  5,  5,    5,  5,  5,  5,  5,  5,  5,  5,
 
968
};
 
969
static const struct byte_lookup* const
 
970
to_ISO_8859_5_infos[6] = {
 
971
                 NOMAP, &to_ISO_8859_5_C2,
 
972
     &to_ISO_8859_5_D0, &to_ISO_8859_5_D1,
 
973
     &to_ISO_8859_5_E2,             UNDEF,
 
974
};
 
975
static const BYTE_LOOKUP
 
976
to_ISO_8859_5 = {
 
977
    to_ISO_8859_5_offsets,
 
978
    to_ISO_8859_5_infos
 
979
};
 
980
static rb_transcoder
 
981
rb_to_ISO_8859_5 = {
 
982
    "UTF-8", "ISO-8859-5", &to_ISO_8859_5, 1, 1,
 
983
    NULL, NULL,
 
984
};
 
985
 
 
986
static const unsigned char
 
987
from_ISO_8859_6_offsets[256] = {
 
988
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
989
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
990
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
991
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
992
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
993
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
994
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
995
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
996
      1,  2,  3,  4,  5,  6,  7,  8,    9, 10, 11, 12, 13, 14, 15, 16,
 
997
     17, 18, 19, 20, 21, 22, 23, 24,   25, 26, 27, 28, 29, 30, 31, 32,
 
998
     33, 84, 84, 84, 34, 84, 84, 84,   84, 84, 84, 84, 35, 36, 84, 84,
 
999
     84, 84, 84, 84, 84, 84, 84, 84,   84, 84, 84, 37, 84, 84, 84, 38,
 
1000
     84, 39, 40, 41, 42, 43, 44, 45,   46, 47, 48, 49, 50, 51, 52, 53,
 
1001
     54, 55, 56, 57, 58, 59, 60, 61,   62, 63, 64, 84, 84, 84, 84, 84,
 
1002
     65, 66, 67, 68, 69, 70, 71, 72,   73, 74, 75, 76, 77, 78, 79, 80,
 
1003
     81, 82, 83, 84, 84, 84, 84, 84,   84, 84, 84, 84, 84, 84, 84, 84,
 
1004
};
 
1005
static const struct byte_lookup* const
 
1006
from_ISO_8859_6_infos[85] = {
 
1007
             NOMAP, o2(0xC2,0x80), o2(0xC2,0x81), o2(0xC2,0x82),
 
1008
     o2(0xC2,0x83), o2(0xC2,0x84), o2(0xC2,0x85), o2(0xC2,0x86),
 
1009
     o2(0xC2,0x87), o2(0xC2,0x88), o2(0xC2,0x89), o2(0xC2,0x8A),
 
1010
     o2(0xC2,0x8B), o2(0xC2,0x8C), o2(0xC2,0x8D), o2(0xC2,0x8E),
 
1011
     o2(0xC2,0x8F), o2(0xC2,0x90), o2(0xC2,0x91), o2(0xC2,0x92),
 
1012
     o2(0xC2,0x93), o2(0xC2,0x94), o2(0xC2,0x95), o2(0xC2,0x96),
 
1013
     o2(0xC2,0x97), o2(0xC2,0x98), o2(0xC2,0x99), o2(0xC2,0x9A),
 
1014
     o2(0xC2,0x9B), o2(0xC2,0x9C), o2(0xC2,0x9D), o2(0xC2,0x9E),
 
1015
     o2(0xC2,0x9F), o2(0xC2,0xA0), o2(0xC2,0xA4), o2(0xD8,0x8C),
 
1016
     o2(0xC2,0xAD), o2(0xD8,0x9B), o2(0xD8,0x9F), o2(0xD8,0xA1),
 
1017
     o2(0xD8,0xA2), o2(0xD8,0xA3), o2(0xD8,0xA4), o2(0xD8,0xA5),
 
1018
     o2(0xD8,0xA6), o2(0xD8,0xA7), o2(0xD8,0xA8), o2(0xD8,0xA9),
 
1019
     o2(0xD8,0xAA), o2(0xD8,0xAB), o2(0xD8,0xAC), o2(0xD8,0xAD),
 
1020
     o2(0xD8,0xAE), o2(0xD8,0xAF), o2(0xD8,0xB0), o2(0xD8,0xB1),
 
1021
     o2(0xD8,0xB2), o2(0xD8,0xB3), o2(0xD8,0xB4), o2(0xD8,0xB5),
 
1022
     o2(0xD8,0xB6), o2(0xD8,0xB7), o2(0xD8,0xB8), o2(0xD8,0xB9),
 
1023
     o2(0xD8,0xBA), o2(0xD9,0x80), o2(0xD9,0x81), o2(0xD9,0x82),
 
1024
     o2(0xD9,0x83), o2(0xD9,0x84), o2(0xD9,0x85), o2(0xD9,0x86),
 
1025
     o2(0xD9,0x87), o2(0xD9,0x88), o2(0xD9,0x89), o2(0xD9,0x8A),
 
1026
     o2(0xD9,0x8B), o2(0xD9,0x8C), o2(0xD9,0x8D), o2(0xD9,0x8E),
 
1027
     o2(0xD9,0x8F), o2(0xD9,0x90), o2(0xD9,0x91), o2(0xD9,0x92),
 
1028
             UNDEF,
 
1029
};
 
1030
static const BYTE_LOOKUP
 
1031
from_ISO_8859_6 = {
 
1032
    from_ISO_8859_6_offsets,
 
1033
    from_ISO_8859_6_infos
 
1034
};
 
1035
static rb_transcoder
 
1036
rb_from_ISO_8859_6 = {
 
1037
    "ISO-8859-6", "UTF-8", &from_ISO_8859_6, 2, 0,
 
1038
    NULL, NULL,
 
1039
};
 
1040
 
 
1041
static const unsigned char
 
1042
to_ISO_8859_6_C2_offsets[64] = {
 
1043
      0,  1,  2,  3,  4,  5,  6,  7,    8,  9, 10, 11, 12, 13, 14, 15,
 
1044
     16, 17, 18, 19, 20, 21, 22, 23,   24, 25, 26, 27, 28, 29, 30, 31,
 
1045
     32, 35, 35, 35, 33, 35, 35, 35,   35, 35, 35, 35, 35, 34, 35, 35,
 
1046
     35, 35, 35, 35, 35, 35, 35, 35,   35, 35, 35, 35, 35, 35, 35, 35,
 
1047
};
 
1048
static const struct byte_lookup* const
 
1049
to_ISO_8859_6_C2_infos[36] = {
 
1050
     o1(0x80), o1(0x81), o1(0x82), o1(0x83),
 
1051
     o1(0x84), o1(0x85), o1(0x86), o1(0x87),
 
1052
     o1(0x88), o1(0x89), o1(0x8A), o1(0x8B),
 
1053
     o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F),
 
1054
     o1(0x90), o1(0x91), o1(0x92), o1(0x93),
 
1055
     o1(0x94), o1(0x95), o1(0x96), o1(0x97),
 
1056
     o1(0x98), o1(0x99), o1(0x9A), o1(0x9B),
 
1057
     o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F),
 
1058
     o1(0xA0), o1(0xA4), o1(0xAD),    UNDEF,
 
1059
};
 
1060
static const BYTE_LOOKUP
 
1061
to_ISO_8859_6_C2 = {
 
1062
    to_ISO_8859_6_C2_offsets,
 
1063
    to_ISO_8859_6_C2_infos
 
1064
};
 
1065
 
 
1066
static const unsigned char
 
1067
to_ISO_8859_6_D8_offsets[64] = {
 
1068
     29, 29, 29, 29, 29, 29, 29, 29,   29, 29, 29, 29,  0, 29, 29, 29,
 
1069
     29, 29, 29, 29, 29, 29, 29, 29,   29, 29, 29,  1, 29, 29, 29,  2,
 
1070
     29,  3,  4,  5,  6,  7,  8,  9,   10, 11, 12, 13, 14, 15, 16, 17,
 
1071
     18, 19, 20, 21, 22, 23, 24, 25,   26, 27, 28, 29, 29, 29, 29, 29,
 
1072
};
 
1073
static const struct byte_lookup* const
 
1074
to_ISO_8859_6_D8_infos[30] = {
 
1075
     o1(0xAC), o1(0xBB), o1(0xBF), o1(0xC1),
 
1076
     o1(0xC2), o1(0xC3), o1(0xC4), o1(0xC5),
 
1077
     o1(0xC6), o1(0xC7), o1(0xC8), o1(0xC9),
 
1078
     o1(0xCA), o1(0xCB), o1(0xCC), o1(0xCD),
 
1079
     o1(0xCE), o1(0xCF), o1(0xD0), o1(0xD1),
 
1080
     o1(0xD2), o1(0xD3), o1(0xD4), o1(0xD5),
 
1081
     o1(0xD6), o1(0xD7), o1(0xD8), o1(0xD9),
 
1082
     o1(0xDA),    UNDEF,
 
1083
};
 
1084
static const BYTE_LOOKUP
 
1085
to_ISO_8859_6_D8 = {
 
1086
    to_ISO_8859_6_D8_offsets,
 
1087
    to_ISO_8859_6_D8_infos
 
1088
};
 
1089
 
 
1090
static const unsigned char
 
1091
to_ISO_8859_6_D9_offsets[64] = {
 
1092
      0,  1,  2,  3,  4,  5,  6,  7,    8,  9, 10, 11, 12, 13, 14, 15,
 
1093
     16, 17, 18, 19, 19, 19, 19, 19,   19, 19, 19, 19, 19, 19, 19, 19,
 
1094
     19, 19, 19, 19, 19, 19, 19, 19,   19, 19, 19, 19, 19, 19, 19, 19,
 
1095
     19, 19, 19, 19, 19, 19, 19, 19,   19, 19, 19, 19, 19, 19, 19, 19,
 
1096
};
 
1097
static const struct byte_lookup* const
 
1098
to_ISO_8859_6_D9_infos[20] = {
 
1099
     o1(0xE0), o1(0xE1), o1(0xE2), o1(0xE3),
 
1100
     o1(0xE4), o1(0xE5), o1(0xE6), o1(0xE7),
 
1101
     o1(0xE8), o1(0xE9), o1(0xEA), o1(0xEB),
 
1102
     o1(0xEC), o1(0xED), o1(0xEE), o1(0xEF),
 
1103
     o1(0xF0), o1(0xF1), o1(0xF2),    UNDEF,
 
1104
};
 
1105
static const BYTE_LOOKUP
 
1106
to_ISO_8859_6_D9 = {
 
1107
    to_ISO_8859_6_D9_offsets,
 
1108
    to_ISO_8859_6_D9_infos
 
1109
};
 
1110
 
 
1111
static const unsigned char
 
1112
to_ISO_8859_6_offsets[256] = {
 
1113
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1114
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1115
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1116
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1117
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1118
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1119
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1120
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1121
      4,  4,  4,  4,  4,  4,  4,  4,    4,  4,  4,  4,  4,  4,  4,  4,
 
1122
      4,  4,  4,  4,  4,  4,  4,  4,    4,  4,  4,  4,  4,  4,  4,  4,
 
1123
      4,  4,  4,  4,  4,  4,  4,  4,    4,  4,  4,  4,  4,  4,  4,  4,
 
1124
      4,  4,  4,  4,  4,  4,  4,  4,    4,  4,  4,  4,  4,  4,  4,  4,
 
1125
      4,  4,  1,  4,  4,  4,  4,  4,    4,  4,  4,  4,  4,  4,  4,  4,
 
1126
      4,  4,  4,  4,  4,  4,  4,  4,    2,  3,  4,  4,  4,  4,  4,  4,
 
1127
      4,  4,  4,  4,  4,  4,  4,  4,    4,  4,  4,  4,  4,  4,  4,  4,
 
1128
      4,  4,  4,  4,  4,  4,  4,  4,    4,  4,  4,  4,  4,  4,  4,  4,
 
1129
};
 
1130
static const struct byte_lookup* const
 
1131
to_ISO_8859_6_infos[5] = {
 
1132
                 NOMAP, &to_ISO_8859_6_C2,
 
1133
     &to_ISO_8859_6_D8, &to_ISO_8859_6_D9,
 
1134
                 UNDEF,
 
1135
};
 
1136
static const BYTE_LOOKUP
 
1137
to_ISO_8859_6 = {
 
1138
    to_ISO_8859_6_offsets,
 
1139
    to_ISO_8859_6_infos
 
1140
};
 
1141
static rb_transcoder
 
1142
rb_to_ISO_8859_6 = {
 
1143
    "UTF-8", "ISO-8859-6", &to_ISO_8859_6, 1, 1,
 
1144
    NULL, NULL,
 
1145
};
 
1146
 
 
1147
static const unsigned char
 
1148
from_ISO_8859_7_offsets[256] = {
 
1149
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1150
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1151
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1152
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1153
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1154
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1155
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1156
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1157
      1,  2,  3,  4,  5,  6,  7,  8,    9, 10, 11, 12, 13, 14, 15, 16,
 
1158
     17, 18, 19, 20, 21, 22, 23, 24,   25, 26, 27, 28, 29, 30, 31, 32,
 
1159
     33, 34, 35, 36, 37, 38, 39, 40,   41, 42, 43, 44, 45, 46,126, 47,
 
1160
     48, 49, 50, 51, 52, 53, 54, 55,   56, 57, 58, 59, 60, 61, 62, 63,
 
1161
     64, 65, 66, 67, 68, 69, 70, 71,   72, 73, 74, 75, 76, 77, 78, 79,
 
1162
     80, 81,126, 82, 83, 84, 85, 86,   87, 88, 89, 90, 91, 92, 93, 94,
 
1163
     95, 96, 97, 98, 99,100,101,102,  103,104,105,106,107,108,109,110,
 
1164
    111,112,113,114,115,116,117,118,  119,120,121,122,123,124,125,126,
 
1165
};
 
1166
static const struct byte_lookup* const
 
1167
from_ISO_8859_7_infos[127] = {
 
1168
                  NOMAP,      o2(0xC2,0x80),
 
1169
          o2(0xC2,0x81),      o2(0xC2,0x82),
 
1170
          o2(0xC2,0x83),      o2(0xC2,0x84),
 
1171
          o2(0xC2,0x85),      o2(0xC2,0x86),
 
1172
          o2(0xC2,0x87),      o2(0xC2,0x88),
 
1173
          o2(0xC2,0x89),      o2(0xC2,0x8A),
 
1174
          o2(0xC2,0x8B),      o2(0xC2,0x8C),
 
1175
          o2(0xC2,0x8D),      o2(0xC2,0x8E),
 
1176
          o2(0xC2,0x8F),      o2(0xC2,0x90),
 
1177
          o2(0xC2,0x91),      o2(0xC2,0x92),
 
1178
          o2(0xC2,0x93),      o2(0xC2,0x94),
 
1179
          o2(0xC2,0x95),      o2(0xC2,0x96),
 
1180
          o2(0xC2,0x97),      o2(0xC2,0x98),
 
1181
          o2(0xC2,0x99),      o2(0xC2,0x9A),
 
1182
          o2(0xC2,0x9B),      o2(0xC2,0x9C),
 
1183
          o2(0xC2,0x9D),      o2(0xC2,0x9E),
 
1184
          o2(0xC2,0x9F),      o2(0xC2,0xA0),
 
1185
     o3(0xE2,0x80,0x98), o3(0xE2,0x80,0x99),
 
1186
          o2(0xC2,0xA3), o3(0xE2,0x82,0xAC),
 
1187
     o3(0xE2,0x82,0xAF),      o2(0xC2,0xA6),
 
1188
          o2(0xC2,0xA7),      o2(0xC2,0xA8),
 
1189
          o2(0xC2,0xA9),      o2(0xCD,0xBA),
 
1190
          o2(0xC2,0xAB),      o2(0xC2,0xAC),
 
1191
          o2(0xC2,0xAD), o3(0xE2,0x80,0x95),
 
1192
          o2(0xC2,0xB0),      o2(0xC2,0xB1),
 
1193
          o2(0xC2,0xB2),      o2(0xC2,0xB3),
 
1194
          o2(0xCE,0x84),      o2(0xCE,0x85),
 
1195
          o2(0xCE,0x86),      o2(0xC2,0xB7),
 
1196
          o2(0xCE,0x88),      o2(0xCE,0x89),
 
1197
          o2(0xCE,0x8A),      o2(0xC2,0xBB),
 
1198
          o2(0xCE,0x8C),      o2(0xC2,0xBD),
 
1199
          o2(0xCE,0x8E),      o2(0xCE,0x8F),
 
1200
          o2(0xCE,0x90),      o2(0xCE,0x91),
 
1201
          o2(0xCE,0x92),      o2(0xCE,0x93),
 
1202
          o2(0xCE,0x94),      o2(0xCE,0x95),
 
1203
          o2(0xCE,0x96),      o2(0xCE,0x97),
 
1204
          o2(0xCE,0x98),      o2(0xCE,0x99),
 
1205
          o2(0xCE,0x9A),      o2(0xCE,0x9B),
 
1206
          o2(0xCE,0x9C),      o2(0xCE,0x9D),
 
1207
          o2(0xCE,0x9E),      o2(0xCE,0x9F),
 
1208
          o2(0xCE,0xA0),      o2(0xCE,0xA1),
 
1209
          o2(0xCE,0xA3),      o2(0xCE,0xA4),
 
1210
          o2(0xCE,0xA5),      o2(0xCE,0xA6),
 
1211
          o2(0xCE,0xA7),      o2(0xCE,0xA8),
 
1212
          o2(0xCE,0xA9),      o2(0xCE,0xAA),
 
1213
          o2(0xCE,0xAB),      o2(0xCE,0xAC),
 
1214
          o2(0xCE,0xAD),      o2(0xCE,0xAE),
 
1215
          o2(0xCE,0xAF),      o2(0xCE,0xB0),
 
1216
          o2(0xCE,0xB1),      o2(0xCE,0xB2),
 
1217
          o2(0xCE,0xB3),      o2(0xCE,0xB4),
 
1218
          o2(0xCE,0xB5),      o2(0xCE,0xB6),
 
1219
          o2(0xCE,0xB7),      o2(0xCE,0xB8),
 
1220
          o2(0xCE,0xB9),      o2(0xCE,0xBA),
 
1221
          o2(0xCE,0xBB),      o2(0xCE,0xBC),
 
1222
          o2(0xCE,0xBD),      o2(0xCE,0xBE),
 
1223
          o2(0xCE,0xBF),      o2(0xCF,0x80),
 
1224
          o2(0xCF,0x81),      o2(0xCF,0x82),
 
1225
          o2(0xCF,0x83),      o2(0xCF,0x84),
 
1226
          o2(0xCF,0x85),      o2(0xCF,0x86),
 
1227
          o2(0xCF,0x87),      o2(0xCF,0x88),
 
1228
          o2(0xCF,0x89),      o2(0xCF,0x8A),
 
1229
          o2(0xCF,0x8B),      o2(0xCF,0x8C),
 
1230
          o2(0xCF,0x8D),      o2(0xCF,0x8E),
 
1231
                  UNDEF,
 
1232
};
 
1233
static const BYTE_LOOKUP
 
1234
from_ISO_8859_7 = {
 
1235
    from_ISO_8859_7_offsets,
 
1236
    from_ISO_8859_7_infos
 
1237
};
 
1238
static rb_transcoder
 
1239
rb_from_ISO_8859_7 = {
 
1240
    "ISO-8859-7", "UTF-8", &from_ISO_8859_7, 3, 0,
 
1241
    NULL, NULL,
 
1242
};
 
1243
 
 
1244
static const unsigned char
 
1245
to_ISO_8859_7_C2_offsets[64] = {
 
1246
      0,  1,  2,  3,  4,  5,  6,  7,    8,  9, 10, 11, 12, 13, 14, 15,
 
1247
     16, 17, 18, 19, 20, 21, 22, 23,   24, 25, 26, 27, 28, 29, 30, 31,
 
1248
     32, 48, 48, 33, 48, 48, 34, 35,   36, 37, 48, 38, 39, 40, 48, 48,
 
1249
     41, 42, 43, 44, 48, 48, 48, 45,   48, 48, 48, 46, 48, 47, 48, 48,
 
1250
};
 
1251
static const struct byte_lookup* const
 
1252
to_ISO_8859_7_C2_infos[49] = {
 
1253
     o1(0x80), o1(0x81), o1(0x82), o1(0x83),
 
1254
     o1(0x84), o1(0x85), o1(0x86), o1(0x87),
 
1255
     o1(0x88), o1(0x89), o1(0x8A), o1(0x8B),
 
1256
     o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F),
 
1257
     o1(0x90), o1(0x91), o1(0x92), o1(0x93),
 
1258
     o1(0x94), o1(0x95), o1(0x96), o1(0x97),
 
1259
     o1(0x98), o1(0x99), o1(0x9A), o1(0x9B),
 
1260
     o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F),
 
1261
     o1(0xA0), o1(0xA3), o1(0xA6), o1(0xA7),
 
1262
     o1(0xA8), o1(0xA9), o1(0xAB), o1(0xAC),
 
1263
     o1(0xAD), o1(0xB0), o1(0xB1), o1(0xB2),
 
1264
     o1(0xB3), o1(0xB7), o1(0xBB), o1(0xBD),
 
1265
        UNDEF,
 
1266
};
 
1267
static const BYTE_LOOKUP
 
1268
to_ISO_8859_7_C2 = {
 
1269
    to_ISO_8859_7_C2_offsets,
 
1270
    to_ISO_8859_7_C2_infos
 
1271
};
 
1272
 
 
1273
static const unsigned char
 
1274
to_ISO_8859_7_CD_offsets[64] = {
 
1275
      1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,
 
1276
      1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,
 
1277
      1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,
 
1278
      1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  0,  1,  1,  1,  1,  1,
 
1279
};
 
1280
static const struct byte_lookup* const
 
1281
to_ISO_8859_7_CD_infos[2] = {
 
1282
     o1(0xAA),    UNDEF,
 
1283
};
 
1284
static const BYTE_LOOKUP
 
1285
to_ISO_8859_7_CD = {
 
1286
    to_ISO_8859_7_CD_offsets,
 
1287
    to_ISO_8859_7_CD_infos
 
1288
};
 
1289
 
 
1290
static const unsigned char
 
1291
to_ISO_8859_7_CE_offsets[64] = {
 
1292
     56, 56, 56, 56,  0,  1,  2, 56,    3,  4,  5, 56,  6, 56,  7,  8,
 
1293
      9, 10, 11, 12, 13, 14, 15, 16,   17, 18, 19, 20, 21, 22, 23, 24,
 
1294
     25, 26, 56, 27, 28, 29, 30, 31,   32, 33, 34, 35, 36, 37, 38, 39,
 
1295
     40, 41, 42, 43, 44, 45, 46, 47,   48, 49, 50, 51, 52, 53, 54, 55,
 
1296
};
 
1297
static const struct byte_lookup* const
 
1298
to_ISO_8859_7_CE_infos[57] = {
 
1299
     o1(0xB4), o1(0xB5), o1(0xB6), o1(0xB8),
 
1300
     o1(0xB9), o1(0xBA), o1(0xBC), o1(0xBE),
 
1301
     o1(0xBF), o1(0xC0), o1(0xC1), o1(0xC2),
 
1302
     o1(0xC3), o1(0xC4), o1(0xC5), o1(0xC6),
 
1303
     o1(0xC7), o1(0xC8), o1(0xC9), o1(0xCA),
 
1304
     o1(0xCB), o1(0xCC), o1(0xCD), o1(0xCE),
 
1305
     o1(0xCF), o1(0xD0), o1(0xD1), o1(0xD3),
 
1306
     o1(0xD4), o1(0xD5), o1(0xD6), o1(0xD7),
 
1307
     o1(0xD8), o1(0xD9), o1(0xDA), o1(0xDB),
 
1308
     o1(0xDC), o1(0xDD), o1(0xDE), o1(0xDF),
 
1309
     o1(0xE0), o1(0xE1), o1(0xE2), o1(0xE3),
 
1310
     o1(0xE4), o1(0xE5), o1(0xE6), o1(0xE7),
 
1311
     o1(0xE8), o1(0xE9), o1(0xEA), o1(0xEB),
 
1312
     o1(0xEC), o1(0xED), o1(0xEE), o1(0xEF),
 
1313
        UNDEF,
 
1314
};
 
1315
static const BYTE_LOOKUP
 
1316
to_ISO_8859_7_CE = {
 
1317
    to_ISO_8859_7_CE_offsets,
 
1318
    to_ISO_8859_7_CE_infos
 
1319
};
 
1320
 
 
1321
static const unsigned char
 
1322
to_ISO_8859_7_CF_offsets[64] = {
 
1323
      0,  1,  2,  3,  4,  5,  6,  7,    8,  9, 10, 11, 12, 13, 14, 15,
 
1324
     15, 15, 15, 15, 15, 15, 15, 15,   15, 15, 15, 15, 15, 15, 15, 15,
 
1325
     15, 15, 15, 15, 15, 15, 15, 15,   15, 15, 15, 15, 15, 15, 15, 15,
 
1326
     15, 15, 15, 15, 15, 15, 15, 15,   15, 15, 15, 15, 15, 15, 15, 15,
 
1327
};
 
1328
static const struct byte_lookup* const
 
1329
to_ISO_8859_7_CF_infos[16] = {
 
1330
     o1(0xF0), o1(0xF1), o1(0xF2), o1(0xF3),
 
1331
     o1(0xF4), o1(0xF5), o1(0xF6), o1(0xF7),
 
1332
     o1(0xF8), o1(0xF9), o1(0xFA), o1(0xFB),
 
1333
     o1(0xFC), o1(0xFD), o1(0xFE),    UNDEF,
 
1334
};
 
1335
static const BYTE_LOOKUP
 
1336
to_ISO_8859_7_CF = {
 
1337
    to_ISO_8859_7_CF_offsets,
 
1338
    to_ISO_8859_7_CF_infos
 
1339
};
 
1340
 
 
1341
static const unsigned char
 
1342
to_ISO_8859_7_E2_80_offsets[64] = {
 
1343
      3,  3,  3,  3,  3,  3,  3,  3,    3,  3,  3,  3,  3,  3,  3,  3,
 
1344
      3,  3,  3,  3,  3,  0,  3,  3,    1,  2,  3,  3,  3,  3,  3,  3,
 
1345
      3,  3,  3,  3,  3,  3,  3,  3,    3,  3,  3,  3,  3,  3,  3,  3,
 
1346
      3,  3,  3,  3,  3,  3,  3,  3,    3,  3,  3,  3,  3,  3,  3,  3,
 
1347
};
 
1348
static const struct byte_lookup* const
 
1349
to_ISO_8859_7_E2_80_infos[4] = {
 
1350
     o1(0xAF), o1(0xA1), o1(0xA2),    UNDEF,
 
1351
};
 
1352
static const BYTE_LOOKUP
 
1353
to_ISO_8859_7_E2_80 = {
 
1354
    to_ISO_8859_7_E2_80_offsets,
 
1355
    to_ISO_8859_7_E2_80_infos
 
1356
};
 
1357
 
 
1358
static const unsigned char
 
1359
to_ISO_8859_7_E2_82_offsets[64] = {
 
1360
      2,  2,  2,  2,  2,  2,  2,  2,    2,  2,  2,  2,  2,  2,  2,  2,
 
1361
      2,  2,  2,  2,  2,  2,  2,  2,    2,  2,  2,  2,  2,  2,  2,  2,
 
1362
      2,  2,  2,  2,  2,  2,  2,  2,    2,  2,  2,  2,  0,  2,  2,  1,
 
1363
      2,  2,  2,  2,  2,  2,  2,  2,    2,  2,  2,  2,  2,  2,  2,  2,
 
1364
};
 
1365
static const struct byte_lookup* const
 
1366
to_ISO_8859_7_E2_82_infos[3] = {
 
1367
     o1(0xA4), o1(0xA5),    UNDEF,
 
1368
};
 
1369
static const BYTE_LOOKUP
 
1370
to_ISO_8859_7_E2_82 = {
 
1371
    to_ISO_8859_7_E2_82_offsets,
 
1372
    to_ISO_8859_7_E2_82_infos
 
1373
};
 
1374
 
 
1375
static const unsigned char
 
1376
to_ISO_8859_7_E2_offsets[64] = {
 
1377
      0,  2,  1,  2,  2,  2,  2,  2,    2,  2,  2,  2,  2,  2,  2,  2,
 
1378
      2,  2,  2,  2,  2,  2,  2,  2,    2,  2,  2,  2,  2,  2,  2,  2,
 
1379
      2,  2,  2,  2,  2,  2,  2,  2,    2,  2,  2,  2,  2,  2,  2,  2,
 
1380
      2,  2,  2,  2,  2,  2,  2,  2,    2,  2,  2,  2,  2,  2,  2,  2,
 
1381
};
 
1382
static const struct byte_lookup* const
 
1383
to_ISO_8859_7_E2_infos[3] = {
 
1384
     &to_ISO_8859_7_E2_80, &to_ISO_8859_7_E2_82,
 
1385
                    UNDEF,
 
1386
};
 
1387
static const BYTE_LOOKUP
 
1388
to_ISO_8859_7_E2 = {
 
1389
    to_ISO_8859_7_E2_offsets,
 
1390
    to_ISO_8859_7_E2_infos
 
1391
};
 
1392
 
 
1393
static const unsigned char
 
1394
to_ISO_8859_7_offsets[256] = {
 
1395
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1396
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1397
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1398
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1399
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1400
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1401
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1402
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1403
      6,  6,  6,  6,  6,  6,  6,  6,    6,  6,  6,  6,  6,  6,  6,  6,
 
1404
      6,  6,  6,  6,  6,  6,  6,  6,    6,  6,  6,  6,  6,  6,  6,  6,
 
1405
      6,  6,  6,  6,  6,  6,  6,  6,    6,  6,  6,  6,  6,  6,  6,  6,
 
1406
      6,  6,  6,  6,  6,  6,  6,  6,    6,  6,  6,  6,  6,  6,  6,  6,
 
1407
      6,  6,  1,  6,  6,  6,  6,  6,    6,  6,  6,  6,  6,  2,  3,  4,
 
1408
      6,  6,  6,  6,  6,  6,  6,  6,    6,  6,  6,  6,  6,  6,  6,  6,
 
1409
      6,  6,  5,  6,  6,  6,  6,  6,    6,  6,  6,  6,  6,  6,  6,  6,
 
1410
      6,  6,  6,  6,  6,  6,  6,  6,    6,  6,  6,  6,  6,  6,  6,  6,
 
1411
};
 
1412
static const struct byte_lookup* const
 
1413
to_ISO_8859_7_infos[7] = {
 
1414
                 NOMAP, &to_ISO_8859_7_C2,
 
1415
     &to_ISO_8859_7_CD, &to_ISO_8859_7_CE,
 
1416
     &to_ISO_8859_7_CF, &to_ISO_8859_7_E2,
 
1417
                 UNDEF,
 
1418
};
 
1419
static const BYTE_LOOKUP
 
1420
to_ISO_8859_7 = {
 
1421
    to_ISO_8859_7_offsets,
 
1422
    to_ISO_8859_7_infos
 
1423
};
 
1424
static rb_transcoder
 
1425
rb_to_ISO_8859_7 = {
 
1426
    "UTF-8", "ISO-8859-7", &to_ISO_8859_7, 1, 1,
 
1427
    NULL, NULL,
 
1428
};
 
1429
 
 
1430
static const unsigned char
 
1431
from_ISO_8859_8_offsets[256] = {
 
1432
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1433
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1434
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1435
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1436
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1437
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1438
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1439
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1440
      1,  2,  3,  4,  5,  6,  7,  8,    9, 10, 11, 12, 13, 14, 15, 16,
 
1441
     17, 18, 19, 20, 21, 22, 23, 24,   25, 26, 27, 28, 29, 30, 31, 32,
 
1442
     33, 93, 34, 35, 36, 37, 38, 39,   40, 41, 42, 43, 44, 45, 46, 47,
 
1443
     48, 49, 50, 51, 52, 53, 54, 55,   56, 57, 58, 59, 60, 61, 62, 93,
 
1444
     93, 93, 93, 93, 93, 93, 93, 93,   93, 93, 93, 93, 93, 93, 93, 93,
 
1445
     93, 93, 93, 93, 93, 93, 93, 93,   93, 93, 93, 93, 93, 93, 93, 63,
 
1446
     64, 65, 66, 67, 68, 69, 70, 71,   72, 73, 74, 75, 76, 77, 78, 79,
 
1447
     80, 81, 82, 83, 84, 85, 86, 87,   88, 89, 90, 93, 93, 91, 92, 93,
 
1448
};
 
1449
static const struct byte_lookup* const
 
1450
from_ISO_8859_8_infos[94] = {
 
1451
                  NOMAP,      o2(0xC2,0x80),
 
1452
          o2(0xC2,0x81),      o2(0xC2,0x82),
 
1453
          o2(0xC2,0x83),      o2(0xC2,0x84),
 
1454
          o2(0xC2,0x85),      o2(0xC2,0x86),
 
1455
          o2(0xC2,0x87),      o2(0xC2,0x88),
 
1456
          o2(0xC2,0x89),      o2(0xC2,0x8A),
 
1457
          o2(0xC2,0x8B),      o2(0xC2,0x8C),
 
1458
          o2(0xC2,0x8D),      o2(0xC2,0x8E),
 
1459
          o2(0xC2,0x8F),      o2(0xC2,0x90),
 
1460
          o2(0xC2,0x91),      o2(0xC2,0x92),
 
1461
          o2(0xC2,0x93),      o2(0xC2,0x94),
 
1462
          o2(0xC2,0x95),      o2(0xC2,0x96),
 
1463
          o2(0xC2,0x97),      o2(0xC2,0x98),
 
1464
          o2(0xC2,0x99),      o2(0xC2,0x9A),
 
1465
          o2(0xC2,0x9B),      o2(0xC2,0x9C),
 
1466
          o2(0xC2,0x9D),      o2(0xC2,0x9E),
 
1467
          o2(0xC2,0x9F),      o2(0xC2,0xA0),
 
1468
          o2(0xC2,0xA2),      o2(0xC2,0xA3),
 
1469
          o2(0xC2,0xA4),      o2(0xC2,0xA5),
 
1470
          o2(0xC2,0xA6),      o2(0xC2,0xA7),
 
1471
          o2(0xC2,0xA8),      o2(0xC2,0xA9),
 
1472
          o2(0xC3,0x97),      o2(0xC2,0xAB),
 
1473
          o2(0xC2,0xAC),      o2(0xC2,0xAD),
 
1474
          o2(0xC2,0xAE),      o2(0xC2,0xAF),
 
1475
          o2(0xC2,0xB0),      o2(0xC2,0xB1),
 
1476
          o2(0xC2,0xB2),      o2(0xC2,0xB3),
 
1477
          o2(0xC2,0xB4),      o2(0xC2,0xB5),
 
1478
          o2(0xC2,0xB6),      o2(0xC2,0xB7),
 
1479
          o2(0xC2,0xB8),      o2(0xC2,0xB9),
 
1480
          o2(0xC3,0xB7),      o2(0xC2,0xBB),
 
1481
          o2(0xC2,0xBC),      o2(0xC2,0xBD),
 
1482
          o2(0xC2,0xBE), o3(0xE2,0x80,0x97),
 
1483
          o2(0xD7,0x90),      o2(0xD7,0x91),
 
1484
          o2(0xD7,0x92),      o2(0xD7,0x93),
 
1485
          o2(0xD7,0x94),      o2(0xD7,0x95),
 
1486
          o2(0xD7,0x96),      o2(0xD7,0x97),
 
1487
          o2(0xD7,0x98),      o2(0xD7,0x99),
 
1488
          o2(0xD7,0x9A),      o2(0xD7,0x9B),
 
1489
          o2(0xD7,0x9C),      o2(0xD7,0x9D),
 
1490
          o2(0xD7,0x9E),      o2(0xD7,0x9F),
 
1491
          o2(0xD7,0xA0),      o2(0xD7,0xA1),
 
1492
          o2(0xD7,0xA2),      o2(0xD7,0xA3),
 
1493
          o2(0xD7,0xA4),      o2(0xD7,0xA5),
 
1494
          o2(0xD7,0xA6),      o2(0xD7,0xA7),
 
1495
          o2(0xD7,0xA8),      o2(0xD7,0xA9),
 
1496
          o2(0xD7,0xAA), o3(0xE2,0x80,0x8E),
 
1497
     o3(0xE2,0x80,0x8F),              UNDEF,
 
1498
};
 
1499
static const BYTE_LOOKUP
 
1500
from_ISO_8859_8 = {
 
1501
    from_ISO_8859_8_offsets,
 
1502
    from_ISO_8859_8_infos
 
1503
};
 
1504
static rb_transcoder
 
1505
rb_from_ISO_8859_8 = {
 
1506
    "ISO-8859-8", "UTF-8", &from_ISO_8859_8, 3, 0,
 
1507
    NULL, NULL,
 
1508
};
 
1509
 
 
1510
static const unsigned char
 
1511
to_ISO_8859_8_C2_offsets[64] = {
 
1512
      0,  1,  2,  3,  4,  5,  6,  7,    8,  9, 10, 11, 12, 13, 14, 15,
 
1513
     16, 17, 18, 19, 20, 21, 22, 23,   24, 25, 26, 27, 28, 29, 30, 31,
 
1514
     32, 60, 33, 34, 35, 36, 37, 38,   39, 40, 60, 41, 42, 43, 44, 45,
 
1515
     46, 47, 48, 49, 50, 51, 52, 53,   54, 55, 60, 56, 57, 58, 59, 60,
 
1516
};
 
1517
static const struct byte_lookup* const
 
1518
to_ISO_8859_8_C2_infos[61] = {
 
1519
     o1(0x80), o1(0x81), o1(0x82), o1(0x83),
 
1520
     o1(0x84), o1(0x85), o1(0x86), o1(0x87),
 
1521
     o1(0x88), o1(0x89), o1(0x8A), o1(0x8B),
 
1522
     o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F),
 
1523
     o1(0x90), o1(0x91), o1(0x92), o1(0x93),
 
1524
     o1(0x94), o1(0x95), o1(0x96), o1(0x97),
 
1525
     o1(0x98), o1(0x99), o1(0x9A), o1(0x9B),
 
1526
     o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F),
 
1527
     o1(0xA0), o1(0xA2), o1(0xA3), o1(0xA4),
 
1528
     o1(0xA5), o1(0xA6), o1(0xA7), o1(0xA8),
 
1529
     o1(0xA9), o1(0xAB), o1(0xAC), o1(0xAD),
 
1530
     o1(0xAE), o1(0xAF), o1(0xB0), o1(0xB1),
 
1531
     o1(0xB2), o1(0xB3), o1(0xB4), o1(0xB5),
 
1532
     o1(0xB6), o1(0xB7), o1(0xB8), o1(0xB9),
 
1533
     o1(0xBB), o1(0xBC), o1(0xBD), o1(0xBE),
 
1534
        UNDEF,
 
1535
};
 
1536
static const BYTE_LOOKUP
 
1537
to_ISO_8859_8_C2 = {
 
1538
    to_ISO_8859_8_C2_offsets,
 
1539
    to_ISO_8859_8_C2_infos
 
1540
};
 
1541
 
 
1542
static const unsigned char
 
1543
to_ISO_8859_8_C3_offsets[64] = {
 
1544
      2,  2,  2,  2,  2,  2,  2,  2,    2,  2,  2,  2,  2,  2,  2,  2,
 
1545
      2,  2,  2,  2,  2,  2,  2,  0,    2,  2,  2,  2,  2,  2,  2,  2,
 
1546
      2,  2,  2,  2,  2,  2,  2,  2,    2,  2,  2,  2,  2,  2,  2,  2,
 
1547
      2,  2,  2,  2,  2,  2,  2,  1,    2,  2,  2,  2,  2,  2,  2,  2,
 
1548
};
 
1549
static const struct byte_lookup* const
 
1550
to_ISO_8859_8_C3_infos[3] = {
 
1551
     o1(0xAA), o1(0xBA),    UNDEF,
 
1552
};
 
1553
static const BYTE_LOOKUP
 
1554
to_ISO_8859_8_C3 = {
 
1555
    to_ISO_8859_8_C3_offsets,
 
1556
    to_ISO_8859_8_C3_infos
 
1557
};
 
1558
 
 
1559
static const unsigned char
 
1560
to_ISO_8859_8_D7_offsets[64] = {
 
1561
     27, 27, 27, 27, 27, 27, 27, 27,   27, 27, 27, 27, 27, 27, 27, 27,
 
1562
      0,  1,  2,  3,  4,  5,  6,  7,    8,  9, 10, 11, 12, 13, 14, 15,
 
1563
     16, 17, 18, 19, 20, 21, 22, 23,   24, 25, 26, 27, 27, 27, 27, 27,
 
1564
     27, 27, 27, 27, 27, 27, 27, 27,   27, 27, 27, 27, 27, 27, 27, 27,
 
1565
};
 
1566
static const struct byte_lookup* const
 
1567
to_ISO_8859_8_D7_infos[28] = {
 
1568
     o1(0xE0), o1(0xE1), o1(0xE2), o1(0xE3),
 
1569
     o1(0xE4), o1(0xE5), o1(0xE6), o1(0xE7),
 
1570
     o1(0xE8), o1(0xE9), o1(0xEA), o1(0xEB),
 
1571
     o1(0xEC), o1(0xED), o1(0xEE), o1(0xEF),
 
1572
     o1(0xF0), o1(0xF1), o1(0xF2), o1(0xF3),
 
1573
     o1(0xF4), o1(0xF5), o1(0xF6), o1(0xF7),
 
1574
     o1(0xF8), o1(0xF9), o1(0xFA),    UNDEF,
 
1575
};
 
1576
static const BYTE_LOOKUP
 
1577
to_ISO_8859_8_D7 = {
 
1578
    to_ISO_8859_8_D7_offsets,
 
1579
    to_ISO_8859_8_D7_infos
 
1580
};
 
1581
 
 
1582
static const unsigned char
 
1583
to_ISO_8859_8_E2_80_offsets[64] = {
 
1584
      3,  3,  3,  3,  3,  3,  3,  3,    3,  3,  3,  3,  3,  3,  0,  1,
 
1585
      3,  3,  3,  3,  3,  3,  3,  2,    3,  3,  3,  3,  3,  3,  3,  3,
 
1586
      3,  3,  3,  3,  3,  3,  3,  3,    3,  3,  3,  3,  3,  3,  3,  3,
 
1587
      3,  3,  3,  3,  3,  3,  3,  3,    3,  3,  3,  3,  3,  3,  3,  3,
 
1588
};
 
1589
static const struct byte_lookup* const
 
1590
to_ISO_8859_8_E2_80_infos[4] = {
 
1591
     o1(0xFD), o1(0xFE), o1(0xDF),    UNDEF,
 
1592
};
 
1593
static const BYTE_LOOKUP
 
1594
to_ISO_8859_8_E2_80 = {
 
1595
    to_ISO_8859_8_E2_80_offsets,
 
1596
    to_ISO_8859_8_E2_80_infos
 
1597
};
 
1598
 
 
1599
static const unsigned char
 
1600
to_ISO_8859_8_E2_offsets[64] = {
 
1601
  /* used from to_ISO_8859_8_E2 */
 
1602
  /* used from to_ISO_8859_10_E2 */
 
1603
  /* used from to_ISO_8859_13_E2 */
 
1604
      0,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,
 
1605
      1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,
 
1606
      1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,
 
1607
      1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,
 
1608
};
 
1609
static const struct byte_lookup* const
 
1610
to_ISO_8859_8_E2_infos[2] = {
 
1611
     &to_ISO_8859_8_E2_80,                UNDEF,
 
1612
};
 
1613
static const BYTE_LOOKUP
 
1614
to_ISO_8859_8_E2 = {
 
1615
    to_ISO_8859_8_E2_offsets,
 
1616
    to_ISO_8859_8_E2_infos
 
1617
};
 
1618
 
 
1619
static const unsigned char
 
1620
to_ISO_8859_8_offsets[256] = {
 
1621
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1622
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1623
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1624
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1625
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1626
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1627
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1628
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1629
      5,  5,  5,  5,  5,  5,  5,  5,    5,  5,  5,  5,  5,  5,  5,  5,
 
1630
      5,  5,  5,  5,  5,  5,  5,  5,    5,  5,  5,  5,  5,  5,  5,  5,
 
1631
      5,  5,  5,  5,  5,  5,  5,  5,    5,  5,  5,  5,  5,  5,  5,  5,
 
1632
      5,  5,  5,  5,  5,  5,  5,  5,    5,  5,  5,  5,  5,  5,  5,  5,
 
1633
      5,  5,  1,  2,  5,  5,  5,  5,    5,  5,  5,  5,  5,  5,  5,  5,
 
1634
      5,  5,  5,  5,  5,  5,  5,  3,    5,  5,  5,  5,  5,  5,  5,  5,
 
1635
      5,  5,  4,  5,  5,  5,  5,  5,    5,  5,  5,  5,  5,  5,  5,  5,
 
1636
      5,  5,  5,  5,  5,  5,  5,  5,    5,  5,  5,  5,  5,  5,  5,  5,
 
1637
};
 
1638
static const struct byte_lookup* const
 
1639
to_ISO_8859_8_infos[6] = {
 
1640
                 NOMAP, &to_ISO_8859_8_C2,
 
1641
     &to_ISO_8859_8_C3, &to_ISO_8859_8_D7,
 
1642
     &to_ISO_8859_8_E2,             UNDEF,
 
1643
};
 
1644
static const BYTE_LOOKUP
 
1645
to_ISO_8859_8 = {
 
1646
    to_ISO_8859_8_offsets,
 
1647
    to_ISO_8859_8_infos
 
1648
};
 
1649
static rb_transcoder
 
1650
rb_to_ISO_8859_8 = {
 
1651
    "UTF-8", "ISO-8859-8", &to_ISO_8859_8, 1, 1,
 
1652
    NULL, NULL,
 
1653
};
 
1654
 
 
1655
static const struct byte_lookup* const
 
1656
from_ISO_8859_9_infos[129] = {
 
1657
             NOMAP, o2(0xC2,0x80), o2(0xC2,0x81), o2(0xC2,0x82),
 
1658
     o2(0xC2,0x83), o2(0xC2,0x84), o2(0xC2,0x85), o2(0xC2,0x86),
 
1659
     o2(0xC2,0x87), o2(0xC2,0x88), o2(0xC2,0x89), o2(0xC2,0x8A),
 
1660
     o2(0xC2,0x8B), o2(0xC2,0x8C), o2(0xC2,0x8D), o2(0xC2,0x8E),
 
1661
     o2(0xC2,0x8F), o2(0xC2,0x90), o2(0xC2,0x91), o2(0xC2,0x92),
 
1662
     o2(0xC2,0x93), o2(0xC2,0x94), o2(0xC2,0x95), o2(0xC2,0x96),
 
1663
     o2(0xC2,0x97), o2(0xC2,0x98), o2(0xC2,0x99), o2(0xC2,0x9A),
 
1664
     o2(0xC2,0x9B), o2(0xC2,0x9C), o2(0xC2,0x9D), o2(0xC2,0x9E),
 
1665
     o2(0xC2,0x9F), o2(0xC2,0xA0), o2(0xC2,0xA1), o2(0xC2,0xA2),
 
1666
     o2(0xC2,0xA3), o2(0xC2,0xA4), o2(0xC2,0xA5), o2(0xC2,0xA6),
 
1667
     o2(0xC2,0xA7), o2(0xC2,0xA8), o2(0xC2,0xA9), o2(0xC2,0xAA),
 
1668
     o2(0xC2,0xAB), o2(0xC2,0xAC), o2(0xC2,0xAD), o2(0xC2,0xAE),
 
1669
     o2(0xC2,0xAF), o2(0xC2,0xB0), o2(0xC2,0xB1), o2(0xC2,0xB2),
 
1670
     o2(0xC2,0xB3), o2(0xC2,0xB4), o2(0xC2,0xB5), o2(0xC2,0xB6),
 
1671
     o2(0xC2,0xB7), o2(0xC2,0xB8), o2(0xC2,0xB9), o2(0xC2,0xBA),
 
1672
     o2(0xC2,0xBB), o2(0xC2,0xBC), o2(0xC2,0xBD), o2(0xC2,0xBE),
 
1673
     o2(0xC2,0xBF), o2(0xC3,0x80), o2(0xC3,0x81), o2(0xC3,0x82),
 
1674
     o2(0xC3,0x83), o2(0xC3,0x84), o2(0xC3,0x85), o2(0xC3,0x86),
 
1675
     o2(0xC3,0x87), o2(0xC3,0x88), o2(0xC3,0x89), o2(0xC3,0x8A),
 
1676
     o2(0xC3,0x8B), o2(0xC3,0x8C), o2(0xC3,0x8D), o2(0xC3,0x8E),
 
1677
     o2(0xC3,0x8F), o2(0xC4,0x9E), o2(0xC3,0x91), o2(0xC3,0x92),
 
1678
     o2(0xC3,0x93), o2(0xC3,0x94), o2(0xC3,0x95), o2(0xC3,0x96),
 
1679
     o2(0xC3,0x97), o2(0xC3,0x98), o2(0xC3,0x99), o2(0xC3,0x9A),
 
1680
     o2(0xC3,0x9B), o2(0xC3,0x9C), o2(0xC4,0xB0), o2(0xC5,0x9E),
 
1681
     o2(0xC3,0x9F), o2(0xC3,0xA0), o2(0xC3,0xA1), o2(0xC3,0xA2),
 
1682
     o2(0xC3,0xA3), o2(0xC3,0xA4), o2(0xC3,0xA5), o2(0xC3,0xA6),
 
1683
     o2(0xC3,0xA7), o2(0xC3,0xA8), o2(0xC3,0xA9), o2(0xC3,0xAA),
 
1684
     o2(0xC3,0xAB), o2(0xC3,0xAC), o2(0xC3,0xAD), o2(0xC3,0xAE),
 
1685
     o2(0xC3,0xAF), o2(0xC4,0x9F), o2(0xC3,0xB1), o2(0xC3,0xB2),
 
1686
     o2(0xC3,0xB3), o2(0xC3,0xB4), o2(0xC3,0xB5), o2(0xC3,0xB6),
 
1687
     o2(0xC3,0xB7), o2(0xC3,0xB8), o2(0xC3,0xB9), o2(0xC3,0xBA),
 
1688
     o2(0xC3,0xBB), o2(0xC3,0xBC), o2(0xC4,0xB1), o2(0xC5,0x9F),
 
1689
     o2(0xC3,0xBF),
 
1690
};
 
1691
static const BYTE_LOOKUP
 
1692
from_ISO_8859_9 = {
 
1693
    from_ISO_8859_1_offsets,
 
1694
    from_ISO_8859_9_infos
 
1695
};
 
1696
static rb_transcoder
 
1697
rb_from_ISO_8859_9 = {
 
1698
    "ISO-8859-9", "UTF-8", &from_ISO_8859_9, 2, 0,
 
1699
    NULL, NULL,
 
1700
};
 
1701
 
 
1702
static const unsigned char
 
1703
to_ISO_8859_9_C3_offsets[64] = {
 
1704
      0,  1,  2,  3,  4,  5,  6,  7,    8,  9, 10, 11, 12, 13, 14, 15,
 
1705
     58, 16, 17, 18, 19, 20, 21, 22,   23, 24, 25, 26, 27, 58, 58, 28,
 
1706
     29, 30, 31, 32, 33, 34, 35, 36,   37, 38, 39, 40, 41, 42, 43, 44,
 
1707
     58, 45, 46, 47, 48, 49, 50, 51,   52, 53, 54, 55, 56, 58, 58, 57,
 
1708
};
 
1709
static const struct byte_lookup* const
 
1710
to_ISO_8859_9_C3_infos[59] = {
 
1711
     o1(0xC0), o1(0xC1), o1(0xC2), o1(0xC3),
 
1712
     o1(0xC4), o1(0xC5), o1(0xC6), o1(0xC7),
 
1713
     o1(0xC8), o1(0xC9), o1(0xCA), o1(0xCB),
 
1714
     o1(0xCC), o1(0xCD), o1(0xCE), o1(0xCF),
 
1715
     o1(0xD1), o1(0xD2), o1(0xD3), o1(0xD4),
 
1716
     o1(0xD5), o1(0xD6), o1(0xD7), o1(0xD8),
 
1717
     o1(0xD9), o1(0xDA), o1(0xDB), o1(0xDC),
 
1718
     o1(0xDF), o1(0xE0), o1(0xE1), o1(0xE2),
 
1719
     o1(0xE3), o1(0xE4), o1(0xE5), o1(0xE6),
 
1720
     o1(0xE7), o1(0xE8), o1(0xE9), o1(0xEA),
 
1721
     o1(0xEB), o1(0xEC), o1(0xED), o1(0xEE),
 
1722
     o1(0xEF), o1(0xF1), o1(0xF2), o1(0xF3),
 
1723
     o1(0xF4), o1(0xF5), o1(0xF6), o1(0xF7),
 
1724
     o1(0xF8), o1(0xF9), o1(0xFA), o1(0xFB),
 
1725
     o1(0xFC), o1(0xFF),    UNDEF,
 
1726
};
 
1727
static const BYTE_LOOKUP
 
1728
to_ISO_8859_9_C3 = {
 
1729
    to_ISO_8859_9_C3_offsets,
 
1730
    to_ISO_8859_9_C3_infos
 
1731
};
 
1732
 
 
1733
static const unsigned char
 
1734
to_ISO_8859_9_C4_offsets[64] = {
 
1735
      4,  4,  4,  4,  4,  4,  4,  4,    4,  4,  4,  4,  4,  4,  4,  4,
 
1736
      4,  4,  4,  4,  4,  4,  4,  4,    4,  4,  4,  4,  4,  4,  0,  1,
 
1737
      4,  4,  4,  4,  4,  4,  4,  4,    4,  4,  4,  4,  4,  4,  4,  4,
 
1738
      2,  3,  4,  4,  4,  4,  4,  4,    4,  4,  4,  4,  4,  4,  4,  4,
 
1739
};
 
1740
static const struct byte_lookup* const
 
1741
to_ISO_8859_9_C4_infos[5] = {
 
1742
     o1(0xD0), o1(0xF0), o1(0xDD), o1(0xFD),
 
1743
        UNDEF,
 
1744
};
 
1745
static const BYTE_LOOKUP
 
1746
to_ISO_8859_9_C4 = {
 
1747
    to_ISO_8859_9_C4_offsets,
 
1748
    to_ISO_8859_9_C4_infos
 
1749
};
 
1750
 
 
1751
static const unsigned char
 
1752
to_ISO_8859_9_C5_offsets[64] = {
 
1753
      2,  2,  2,  2,  2,  2,  2,  2,    2,  2,  2,  2,  2,  2,  2,  2,
 
1754
      2,  2,  2,  2,  2,  2,  2,  2,    2,  2,  2,  2,  2,  2,  0,  1,
 
1755
      2,  2,  2,  2,  2,  2,  2,  2,    2,  2,  2,  2,  2,  2,  2,  2,
 
1756
      2,  2,  2,  2,  2,  2,  2,  2,    2,  2,  2,  2,  2,  2,  2,  2,
 
1757
};
 
1758
static const struct byte_lookup* const
 
1759
to_ISO_8859_9_C5_infos[3] = {
 
1760
     o1(0xDE), o1(0xFE),    UNDEF,
 
1761
};
 
1762
static const BYTE_LOOKUP
 
1763
to_ISO_8859_9_C5 = {
 
1764
    to_ISO_8859_9_C5_offsets,
 
1765
    to_ISO_8859_9_C5_infos
 
1766
};
 
1767
 
 
1768
static const unsigned char
 
1769
to_ISO_8859_9_offsets[256] = {
 
1770
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1771
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1772
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1773
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1774
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1775
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1776
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1777
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
1778
      5,  5,  5,  5,  5,  5,  5,  5,    5,  5,  5,  5,  5,  5,  5,  5,
 
1779
      5,  5,  5,  5,  5,  5,  5,  5,    5,  5,  5,  5,  5,  5,  5,  5,
 
1780
      5,  5,  5,  5,  5,  5,  5,  5,    5,  5,  5,  5,  5,  5,  5,  5,
 
1781
      5,  5,  5,  5,  5,  5,  5,  5,    5,  5,  5,  5,  5,  5,  5,  5,
 
1782
      5,  5,  1,  2,  3,  4,  5,  5,    5,  5,  5,  5,  5,  5,  5,  5,
 
1783
      5,  5,  5,  5,  5,  5,  5,  5,    5,  5,  5,  5,  5,  5,  5,  5,
 
1784
      5,  5,  5,  5,  5,  5,  5,  5,    5,  5,  5,  5,  5,  5,  5,  5,
 
1785
      5,  5,  5,  5,  5,  5,  5,  5,    5,  5,  5,  5,  5,  5,  5,  5,
 
1786
};
 
1787
static const struct byte_lookup* const
 
1788
to_ISO_8859_9_infos[6] = {
 
1789
                 NOMAP, &to_ISO_8859_1_C2,
 
1790
     &to_ISO_8859_9_C3, &to_ISO_8859_9_C4,
 
1791
     &to_ISO_8859_9_C5,             UNDEF,
 
1792
};
 
1793
static const BYTE_LOOKUP
 
1794
to_ISO_8859_9 = {
 
1795
    to_ISO_8859_9_offsets,
 
1796
    to_ISO_8859_9_infos
 
1797
};
 
1798
static rb_transcoder
 
1799
rb_to_ISO_8859_9 = {
 
1800
    "UTF-8", "ISO-8859-9", &to_ISO_8859_9, 1, 1,
 
1801
    NULL, NULL,
 
1802
};
 
1803
 
 
1804
static const struct byte_lookup* const
 
1805
from_ISO_8859_10_infos[129] = {
 
1806
                  NOMAP,      o2(0xC2,0x80),
 
1807
          o2(0xC2,0x81),      o2(0xC2,0x82),
 
1808
          o2(0xC2,0x83),      o2(0xC2,0x84),
 
1809
          o2(0xC2,0x85),      o2(0xC2,0x86),
 
1810
          o2(0xC2,0x87),      o2(0xC2,0x88),
 
1811
          o2(0xC2,0x89),      o2(0xC2,0x8A),
 
1812
          o2(0xC2,0x8B),      o2(0xC2,0x8C),
 
1813
          o2(0xC2,0x8D),      o2(0xC2,0x8E),
 
1814
          o2(0xC2,0x8F),      o2(0xC2,0x90),
 
1815
          o2(0xC2,0x91),      o2(0xC2,0x92),
 
1816
          o2(0xC2,0x93),      o2(0xC2,0x94),
 
1817
          o2(0xC2,0x95),      o2(0xC2,0x96),
 
1818
          o2(0xC2,0x97),      o2(0xC2,0x98),
 
1819
          o2(0xC2,0x99),      o2(0xC2,0x9A),
 
1820
          o2(0xC2,0x9B),      o2(0xC2,0x9C),
 
1821
          o2(0xC2,0x9D),      o2(0xC2,0x9E),
 
1822
          o2(0xC2,0x9F),      o2(0xC2,0xA0),
 
1823
          o2(0xC4,0x84),      o2(0xC4,0x92),
 
1824
          o2(0xC4,0xA2),      o2(0xC4,0xAA),
 
1825
          o2(0xC4,0xA8),      o2(0xC4,0xB6),
 
1826
          o2(0xC2,0xA7),      o2(0xC4,0xBB),
 
1827
          o2(0xC4,0x90),      o2(0xC5,0xA0),
 
1828
          o2(0xC5,0xA6),      o2(0xC5,0xBD),
 
1829
          o2(0xC2,0xAD),      o2(0xC5,0xAA),
 
1830
          o2(0xC5,0x8A),      o2(0xC2,0xB0),
 
1831
          o2(0xC4,0x85),      o2(0xC4,0x93),
 
1832
          o2(0xC4,0xA3),      o2(0xC4,0xAB),
 
1833
          o2(0xC4,0xA9),      o2(0xC4,0xB7),
 
1834
          o2(0xC2,0xB7),      o2(0xC4,0xBC),
 
1835
          o2(0xC4,0x91),      o2(0xC5,0xA1),
 
1836
          o2(0xC5,0xA7),      o2(0xC5,0xBE),
 
1837
     o3(0xE2,0x80,0x95),      o2(0xC5,0xAB),
 
1838
          o2(0xC5,0x8B),      o2(0xC4,0x80),
 
1839
          o2(0xC3,0x81),      o2(0xC3,0x82),
 
1840
          o2(0xC3,0x83),      o2(0xC3,0x84),
 
1841
          o2(0xC3,0x85),      o2(0xC3,0x86),
 
1842
          o2(0xC4,0xAE),      o2(0xC4,0x8C),
 
1843
          o2(0xC3,0x89),      o2(0xC4,0x98),
 
1844
          o2(0xC3,0x8B),      o2(0xC4,0x96),
 
1845
          o2(0xC3,0x8D),      o2(0xC3,0x8E),
 
1846
          o2(0xC3,0x8F),      o2(0xC3,0x90),
 
1847
          o2(0xC5,0x85),      o2(0xC5,0x8C),
 
1848
          o2(0xC3,0x93),      o2(0xC3,0x94),
 
1849
          o2(0xC3,0x95),      o2(0xC3,0x96),
 
1850
          o2(0xC5,0xA8),      o2(0xC3,0x98),
 
1851
          o2(0xC5,0xB2),      o2(0xC3,0x9A),
 
1852
          o2(0xC3,0x9B),      o2(0xC3,0x9C),
 
1853
          o2(0xC3,0x9D),      o2(0xC3,0x9E),
 
1854
          o2(0xC3,0x9F),      o2(0xC4,0x81),
 
1855
          o2(0xC3,0xA1),      o2(0xC3,0xA2),
 
1856
          o2(0xC3,0xA3),      o2(0xC3,0xA4),
 
1857
          o2(0xC3,0xA5),      o2(0xC3,0xA6),
 
1858
          o2(0xC4,0xAF),      o2(0xC4,0x8D),
 
1859
          o2(0xC3,0xA9),      o2(0xC4,0x99),
 
1860
          o2(0xC3,0xAB),      o2(0xC4,0x97),
 
1861
          o2(0xC3,0xAD),      o2(0xC3,0xAE),
 
1862
          o2(0xC3,0xAF),      o2(0xC3,0xB0),
 
1863
          o2(0xC5,0x86),      o2(0xC5,0x8D),
 
1864
          o2(0xC3,0xB3),      o2(0xC3,0xB4),
 
1865
          o2(0xC3,0xB5),      o2(0xC3,0xB6),
 
1866
          o2(0xC5,0xA9),      o2(0xC3,0xB8),
 
1867
          o2(0xC5,0xB3),      o2(0xC3,0xBA),
 
1868
          o2(0xC3,0xBB),      o2(0xC3,0xBC),
 
1869
          o2(0xC3,0xBD),      o2(0xC3,0xBE),
 
1870
          o2(0xC4,0xB8),
 
1871
};
 
1872
static const BYTE_LOOKUP
 
1873
from_ISO_8859_10 = {
 
1874
    from_ISO_8859_1_offsets,
 
1875
    from_ISO_8859_10_infos
 
1876
};
 
1877
static rb_transcoder
 
1878
rb_from_ISO_8859_10 = {
 
1879
    "ISO-8859-10", "UTF-8", &from_ISO_8859_10, 3, 0,
 
1880
    NULL, NULL,
 
1881
};
 
1882
 
 
1883
static const unsigned char
 
1884
to_ISO_8859_10_C2_offsets[64] = {
 
1885
      0,  1,  2,  3,  4,  5,  6,  7,    8,  9, 10, 11, 12, 13, 14, 15,
 
1886
     16, 17, 18, 19, 20, 21, 22, 23,   24, 25, 26, 27, 28, 29, 30, 31,
 
1887
     32, 37, 37, 37, 37, 37, 37, 33,   37, 37, 37, 37, 37, 34, 37, 37,
 
1888
     35, 37, 37, 37, 37, 37, 37, 36,   37, 37, 37, 37, 37, 37, 37, 37,
 
1889
};
 
1890
static const struct byte_lookup* const
 
1891
to_ISO_8859_10_C2_infos[38] = {
 
1892
     o1(0x80), o1(0x81), o1(0x82), o1(0x83),
 
1893
     o1(0x84), o1(0x85), o1(0x86), o1(0x87),
 
1894
     o1(0x88), o1(0x89), o1(0x8A), o1(0x8B),
 
1895
     o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F),
 
1896
     o1(0x90), o1(0x91), o1(0x92), o1(0x93),
 
1897
     o1(0x94), o1(0x95), o1(0x96), o1(0x97),
 
1898
     o1(0x98), o1(0x99), o1(0x9A), o1(0x9B),
 
1899
     o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F),
 
1900
     o1(0xA0), o1(0xA7), o1(0xAD), o1(0xB0),
 
1901
     o1(0xB7),    UNDEF,
 
1902
};
 
1903
static const BYTE_LOOKUP
 
1904
to_ISO_8859_10_C2 = {
 
1905
    to_ISO_8859_10_C2_offsets,
 
1906
    to_ISO_8859_10_C2_infos
 
1907
};
 
1908
 
 
1909
static const unsigned char
 
1910
to_ISO_8859_10_C3_offsets[64] = {
 
1911
     45,  0,  1,  2,  3,  4,  5, 45,   45,  6, 45,  7, 45,  8,  9, 10,
 
1912
     11, 45, 45, 12, 13, 14, 15, 45,   16, 45, 17, 18, 19, 20, 21, 22,
 
1913
     45, 23, 24, 25, 26, 27, 28, 45,   45, 29, 45, 30, 45, 31, 32, 33,
 
1914
     34, 45, 45, 35, 36, 37, 38, 45,   39, 45, 40, 41, 42, 43, 44, 45,
 
1915
};
 
1916
static const struct byte_lookup* const
 
1917
to_ISO_8859_10_C3_infos[46] = {
 
1918
     o1(0xC1), o1(0xC2), o1(0xC3), o1(0xC4),
 
1919
     o1(0xC5), o1(0xC6), o1(0xC9), o1(0xCB),
 
1920
     o1(0xCD), o1(0xCE), o1(0xCF), o1(0xD0),
 
1921
     o1(0xD3), o1(0xD4), o1(0xD5), o1(0xD6),
 
1922
     o1(0xD8), o1(0xDA), o1(0xDB), o1(0xDC),
 
1923
     o1(0xDD), o1(0xDE), o1(0xDF), o1(0xE1),
 
1924
     o1(0xE2), o1(0xE3), o1(0xE4), o1(0xE5),
 
1925
     o1(0xE6), o1(0xE9), o1(0xEB), o1(0xED),
 
1926
     o1(0xEE), o1(0xEF), o1(0xF0), o1(0xF3),
 
1927
     o1(0xF4), o1(0xF5), o1(0xF6), o1(0xF8),
 
1928
     o1(0xFA), o1(0xFB), o1(0xFC), o1(0xFD),
 
1929
     o1(0xFE),    UNDEF,
 
1930
};
 
1931
static const BYTE_LOOKUP
 
1932
to_ISO_8859_10_C3 = {
 
1933
    to_ISO_8859_10_C3_offsets,
 
1934
    to_ISO_8859_10_C3_infos
 
1935
};
 
1936
 
 
1937
static const struct byte_lookup* const
 
1938
to_ISO_8859_10_C4_infos[28] = {
 
1939
     o1(0xC0), o1(0xE0), o1(0xA1), o1(0xB1),
 
1940
     o1(0xC8), o1(0xE8), o1(0xA9), o1(0xB9),
 
1941
     o1(0xA2), o1(0xB2), o1(0xCC), o1(0xEC),
 
1942
     o1(0xCA), o1(0xEA), o1(0xA3), o1(0xB3),
 
1943
     o1(0xA5), o1(0xB5), o1(0xA4), o1(0xB4),
 
1944
     o1(0xC7), o1(0xE7), o1(0xA6), o1(0xB6),
 
1945
     o1(0xFF), o1(0xA8), o1(0xB8),    UNDEF,
 
1946
};
 
1947
static const BYTE_LOOKUP
 
1948
to_ISO_8859_10_C4 = {
 
1949
    to_ISO_8859_4_C4_offsets,
 
1950
    to_ISO_8859_10_C4_infos
 
1951
};
 
1952
 
 
1953
static const unsigned char
 
1954
to_ISO_8859_10_C5_offsets[64] = {
 
1955
     18, 18, 18, 18, 18,  0,  1, 18,   18, 18,  2,  3,  4,  5, 18, 18,
 
1956
     18, 18, 18, 18, 18, 18, 18, 18,   18, 18, 18, 18, 18, 18, 18, 18,
 
1957
      6,  7, 18, 18, 18, 18,  8,  9,   10, 11, 12, 13, 18, 18, 18, 18,
 
1958
     18, 18, 14, 15, 18, 18, 18, 18,   18, 18, 18, 18, 18, 16, 17, 18,
 
1959
};
 
1960
static const struct byte_lookup* const
 
1961
to_ISO_8859_10_C5_infos[19] = {
 
1962
     o1(0xD1), o1(0xF1), o1(0xAF), o1(0xBF),
 
1963
     o1(0xD2), o1(0xF2), o1(0xAA), o1(0xBA),
 
1964
     o1(0xAB), o1(0xBB), o1(0xD7), o1(0xF7),
 
1965
     o1(0xAE), o1(0xBE), o1(0xD9), o1(0xF9),
 
1966
     o1(0xAC), o1(0xBC),    UNDEF,
 
1967
};
 
1968
static const BYTE_LOOKUP
 
1969
to_ISO_8859_10_C5 = {
 
1970
    to_ISO_8859_10_C5_offsets,
 
1971
    to_ISO_8859_10_C5_infos
 
1972
};
 
1973
 
 
1974
static const unsigned char
 
1975
to_ISO_8859_10_E2_80_offsets[64] = {
 
1976
      1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,
 
1977
      1,  1,  1,  1,  1,  0,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,
 
1978
      1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,
 
1979
      1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,
 
1980
};
 
1981
static const struct byte_lookup* const
 
1982
to_ISO_8859_10_E2_80_infos[2] = {
 
1983
     o1(0xBD),    UNDEF,
 
1984
};
 
1985
static const BYTE_LOOKUP
 
1986
to_ISO_8859_10_E2_80 = {
 
1987
    to_ISO_8859_10_E2_80_offsets,
 
1988
    to_ISO_8859_10_E2_80_infos
 
1989
};
 
1990
 
 
1991
static const struct byte_lookup* const
 
1992
to_ISO_8859_10_E2_infos[2] = {
 
1993
     &to_ISO_8859_10_E2_80,                 UNDEF,
 
1994
};
 
1995
static const BYTE_LOOKUP
 
1996
to_ISO_8859_10_E2 = {
 
1997
    to_ISO_8859_8_E2_offsets,
 
1998
    to_ISO_8859_10_E2_infos
 
1999
};
 
2000
 
 
2001
static const unsigned char
 
2002
to_ISO_8859_10_offsets[256] = {
 
2003
  /* used from to_ISO_8859_10 */
 
2004
  /* used from to_ISO_8859_13 */
 
2005
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2006
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2007
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2008
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2009
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2010
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2011
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2012
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2013
      6,  6,  6,  6,  6,  6,  6,  6,    6,  6,  6,  6,  6,  6,  6,  6,
 
2014
      6,  6,  6,  6,  6,  6,  6,  6,    6,  6,  6,  6,  6,  6,  6,  6,
 
2015
      6,  6,  6,  6,  6,  6,  6,  6,    6,  6,  6,  6,  6,  6,  6,  6,
 
2016
      6,  6,  6,  6,  6,  6,  6,  6,    6,  6,  6,  6,  6,  6,  6,  6,
 
2017
      6,  6,  1,  2,  3,  4,  6,  6,    6,  6,  6,  6,  6,  6,  6,  6,
 
2018
      6,  6,  6,  6,  6,  6,  6,  6,    6,  6,  6,  6,  6,  6,  6,  6,
 
2019
      6,  6,  5,  6,  6,  6,  6,  6,    6,  6,  6,  6,  6,  6,  6,  6,
 
2020
      6,  6,  6,  6,  6,  6,  6,  6,    6,  6,  6,  6,  6,  6,  6,  6,
 
2021
};
 
2022
static const struct byte_lookup* const
 
2023
to_ISO_8859_10_infos[7] = {
 
2024
                  NOMAP, &to_ISO_8859_10_C2,
 
2025
     &to_ISO_8859_10_C3, &to_ISO_8859_10_C4,
 
2026
     &to_ISO_8859_10_C5, &to_ISO_8859_10_E2,
 
2027
                  UNDEF,
 
2028
};
 
2029
static const BYTE_LOOKUP
 
2030
to_ISO_8859_10 = {
 
2031
    to_ISO_8859_10_offsets,
 
2032
    to_ISO_8859_10_infos
 
2033
};
 
2034
static rb_transcoder
 
2035
rb_to_ISO_8859_10 = {
 
2036
    "UTF-8", "ISO-8859-10", &to_ISO_8859_10, 1, 1,
 
2037
    NULL, NULL,
 
2038
};
 
2039
 
 
2040
static const unsigned char
 
2041
from_ISO_8859_11_offsets[256] = {
 
2042
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2043
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2044
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2045
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2046
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2047
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2048
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2049
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2050
      1,  2,  3,  4,  5,  6,  7,  8,    9, 10, 11, 12, 13, 14, 15, 16,
 
2051
     17, 18, 19, 20, 21, 22, 23, 24,   25, 26, 27, 28, 29, 30, 31, 32,
 
2052
     33, 34, 35, 36, 37, 38, 39, 40,   41, 42, 43, 44, 45, 46, 47, 48,
 
2053
     49, 50, 51, 52, 53, 54, 55, 56,   57, 58, 59, 60, 61, 62, 63, 64,
 
2054
     65, 66, 67, 68, 69, 70, 71, 72,   73, 74, 75, 76, 77, 78, 79, 80,
 
2055
     81, 82, 83, 84, 85, 86, 87, 88,   89, 90, 91,121,121,121,121, 92,
 
2056
     93, 94, 95, 96, 97, 98, 99,100,  101,102,103,104,105,106,107,108,
 
2057
    109,110,111,112,113,114,115,116,  117,118,119,120,121,121,121,121,
 
2058
};
 
2059
static const struct byte_lookup* const
 
2060
from_ISO_8859_11_infos[122] = {
 
2061
                  NOMAP,      o2(0xC2,0x80),
 
2062
          o2(0xC2,0x81),      o2(0xC2,0x82),
 
2063
          o2(0xC2,0x83),      o2(0xC2,0x84),
 
2064
          o2(0xC2,0x85),      o2(0xC2,0x86),
 
2065
          o2(0xC2,0x87),      o2(0xC2,0x88),
 
2066
          o2(0xC2,0x89),      o2(0xC2,0x8A),
 
2067
          o2(0xC2,0x8B),      o2(0xC2,0x8C),
 
2068
          o2(0xC2,0x8D),      o2(0xC2,0x8E),
 
2069
          o2(0xC2,0x8F),      o2(0xC2,0x90),
 
2070
          o2(0xC2,0x91),      o2(0xC2,0x92),
 
2071
          o2(0xC2,0x93),      o2(0xC2,0x94),
 
2072
          o2(0xC2,0x95),      o2(0xC2,0x96),
 
2073
          o2(0xC2,0x97),      o2(0xC2,0x98),
 
2074
          o2(0xC2,0x99),      o2(0xC2,0x9A),
 
2075
          o2(0xC2,0x9B),      o2(0xC2,0x9C),
 
2076
          o2(0xC2,0x9D),      o2(0xC2,0x9E),
 
2077
          o2(0xC2,0x9F),      o2(0xC2,0xA0),
 
2078
     o3(0xE0,0xB8,0x81), o3(0xE0,0xB8,0x82),
 
2079
     o3(0xE0,0xB8,0x83), o3(0xE0,0xB8,0x84),
 
2080
     o3(0xE0,0xB8,0x85), o3(0xE0,0xB8,0x86),
 
2081
     o3(0xE0,0xB8,0x87), o3(0xE0,0xB8,0x88),
 
2082
     o3(0xE0,0xB8,0x89), o3(0xE0,0xB8,0x8A),
 
2083
     o3(0xE0,0xB8,0x8B), o3(0xE0,0xB8,0x8C),
 
2084
     o3(0xE0,0xB8,0x8D), o3(0xE0,0xB8,0x8E),
 
2085
     o3(0xE0,0xB8,0x8F), o3(0xE0,0xB8,0x90),
 
2086
     o3(0xE0,0xB8,0x91), o3(0xE0,0xB8,0x92),
 
2087
     o3(0xE0,0xB8,0x93), o3(0xE0,0xB8,0x94),
 
2088
     o3(0xE0,0xB8,0x95), o3(0xE0,0xB8,0x96),
 
2089
     o3(0xE0,0xB8,0x97), o3(0xE0,0xB8,0x98),
 
2090
     o3(0xE0,0xB8,0x99), o3(0xE0,0xB8,0x9A),
 
2091
     o3(0xE0,0xB8,0x9B), o3(0xE0,0xB8,0x9C),
 
2092
     o3(0xE0,0xB8,0x9D), o3(0xE0,0xB8,0x9E),
 
2093
     o3(0xE0,0xB8,0x9F), o3(0xE0,0xB8,0xA0),
 
2094
     o3(0xE0,0xB8,0xA1), o3(0xE0,0xB8,0xA2),
 
2095
     o3(0xE0,0xB8,0xA3), o3(0xE0,0xB8,0xA4),
 
2096
     o3(0xE0,0xB8,0xA5), o3(0xE0,0xB8,0xA6),
 
2097
     o3(0xE0,0xB8,0xA7), o3(0xE0,0xB8,0xA8),
 
2098
     o3(0xE0,0xB8,0xA9), o3(0xE0,0xB8,0xAA),
 
2099
     o3(0xE0,0xB8,0xAB), o3(0xE0,0xB8,0xAC),
 
2100
     o3(0xE0,0xB8,0xAD), o3(0xE0,0xB8,0xAE),
 
2101
     o3(0xE0,0xB8,0xAF), o3(0xE0,0xB8,0xB0),
 
2102
     o3(0xE0,0xB8,0xB1), o3(0xE0,0xB8,0xB2),
 
2103
     o3(0xE0,0xB8,0xB3), o3(0xE0,0xB8,0xB4),
 
2104
     o3(0xE0,0xB8,0xB5), o3(0xE0,0xB8,0xB6),
 
2105
     o3(0xE0,0xB8,0xB7), o3(0xE0,0xB8,0xB8),
 
2106
     o3(0xE0,0xB8,0xB9), o3(0xE0,0xB8,0xBA),
 
2107
     o3(0xE0,0xB8,0xBF), o3(0xE0,0xB9,0x80),
 
2108
     o3(0xE0,0xB9,0x81), o3(0xE0,0xB9,0x82),
 
2109
     o3(0xE0,0xB9,0x83), o3(0xE0,0xB9,0x84),
 
2110
     o3(0xE0,0xB9,0x85), o3(0xE0,0xB9,0x86),
 
2111
     o3(0xE0,0xB9,0x87), o3(0xE0,0xB9,0x88),
 
2112
     o3(0xE0,0xB9,0x89), o3(0xE0,0xB9,0x8A),
 
2113
     o3(0xE0,0xB9,0x8B), o3(0xE0,0xB9,0x8C),
 
2114
     o3(0xE0,0xB9,0x8D), o3(0xE0,0xB9,0x8E),
 
2115
     o3(0xE0,0xB9,0x8F), o3(0xE0,0xB9,0x90),
 
2116
     o3(0xE0,0xB9,0x91), o3(0xE0,0xB9,0x92),
 
2117
     o3(0xE0,0xB9,0x93), o3(0xE0,0xB9,0x94),
 
2118
     o3(0xE0,0xB9,0x95), o3(0xE0,0xB9,0x96),
 
2119
     o3(0xE0,0xB9,0x97), o3(0xE0,0xB9,0x98),
 
2120
     o3(0xE0,0xB9,0x99), o3(0xE0,0xB9,0x9A),
 
2121
     o3(0xE0,0xB9,0x9B),              UNDEF,
 
2122
};
 
2123
static const BYTE_LOOKUP
 
2124
from_ISO_8859_11 = {
 
2125
    from_ISO_8859_11_offsets,
 
2126
    from_ISO_8859_11_infos
 
2127
};
 
2128
static rb_transcoder
 
2129
rb_from_ISO_8859_11 = {
 
2130
    "ISO-8859-11", "UTF-8", &from_ISO_8859_11, 3, 0,
 
2131
    NULL, NULL,
 
2132
};
 
2133
 
 
2134
static const unsigned char
 
2135
to_ISO_8859_11_C2_offsets[64] = {
 
2136
      0,  1,  2,  3,  4,  5,  6,  7,    8,  9, 10, 11, 12, 13, 14, 15,
 
2137
     16, 17, 18, 19, 20, 21, 22, 23,   24, 25, 26, 27, 28, 29, 30, 31,
 
2138
     32, 33, 33, 33, 33, 33, 33, 33,   33, 33, 33, 33, 33, 33, 33, 33,
 
2139
     33, 33, 33, 33, 33, 33, 33, 33,   33, 33, 33, 33, 33, 33, 33, 33,
 
2140
};
 
2141
static const struct byte_lookup* const
 
2142
to_ISO_8859_11_C2_infos[34] = {
 
2143
     o1(0x80), o1(0x81), o1(0x82), o1(0x83),
 
2144
     o1(0x84), o1(0x85), o1(0x86), o1(0x87),
 
2145
     o1(0x88), o1(0x89), o1(0x8A), o1(0x8B),
 
2146
     o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F),
 
2147
     o1(0x90), o1(0x91), o1(0x92), o1(0x93),
 
2148
     o1(0x94), o1(0x95), o1(0x96), o1(0x97),
 
2149
     o1(0x98), o1(0x99), o1(0x9A), o1(0x9B),
 
2150
     o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F),
 
2151
     o1(0xA0),    UNDEF,
 
2152
};
 
2153
static const BYTE_LOOKUP
 
2154
to_ISO_8859_11_C2 = {
 
2155
    to_ISO_8859_11_C2_offsets,
 
2156
    to_ISO_8859_11_C2_infos
 
2157
};
 
2158
 
 
2159
static const unsigned char
 
2160
to_ISO_8859_11_E0_B8_offsets[64] = {
 
2161
     59,  0,  1,  2,  3,  4,  5,  6,    7,  8,  9, 10, 11, 12, 13, 14,
 
2162
     15, 16, 17, 18, 19, 20, 21, 22,   23, 24, 25, 26, 27, 28, 29, 30,
 
2163
     31, 32, 33, 34, 35, 36, 37, 38,   39, 40, 41, 42, 43, 44, 45, 46,
 
2164
     47, 48, 49, 50, 51, 52, 53, 54,   55, 56, 57, 59, 59, 59, 59, 58,
 
2165
};
 
2166
static const struct byte_lookup* const
 
2167
to_ISO_8859_11_E0_B8_infos[60] = {
 
2168
     o1(0xA1), o1(0xA2), o1(0xA3), o1(0xA4),
 
2169
     o1(0xA5), o1(0xA6), o1(0xA7), o1(0xA8),
 
2170
     o1(0xA9), o1(0xAA), o1(0xAB), o1(0xAC),
 
2171
     o1(0xAD), o1(0xAE), o1(0xAF), o1(0xB0),
 
2172
     o1(0xB1), o1(0xB2), o1(0xB3), o1(0xB4),
 
2173
     o1(0xB5), o1(0xB6), o1(0xB7), o1(0xB8),
 
2174
     o1(0xB9), o1(0xBA), o1(0xBB), o1(0xBC),
 
2175
     o1(0xBD), o1(0xBE), o1(0xBF), o1(0xC0),
 
2176
     o1(0xC1), o1(0xC2), o1(0xC3), o1(0xC4),
 
2177
     o1(0xC5), o1(0xC6), o1(0xC7), o1(0xC8),
 
2178
     o1(0xC9), o1(0xCA), o1(0xCB), o1(0xCC),
 
2179
     o1(0xCD), o1(0xCE), o1(0xCF), o1(0xD0),
 
2180
     o1(0xD1), o1(0xD2), o1(0xD3), o1(0xD4),
 
2181
     o1(0xD5), o1(0xD6), o1(0xD7), o1(0xD8),
 
2182
     o1(0xD9), o1(0xDA), o1(0xDF),    UNDEF,
 
2183
};
 
2184
static const BYTE_LOOKUP
 
2185
to_ISO_8859_11_E0_B8 = {
 
2186
    to_ISO_8859_11_E0_B8_offsets,
 
2187
    to_ISO_8859_11_E0_B8_infos
 
2188
};
 
2189
 
 
2190
static const unsigned char
 
2191
to_ISO_8859_11_E0_B9_offsets[64] = {
 
2192
      0,  1,  2,  3,  4,  5,  6,  7,    8,  9, 10, 11, 12, 13, 14, 15,
 
2193
     16, 17, 18, 19, 20, 21, 22, 23,   24, 25, 26, 27, 28, 28, 28, 28,
 
2194
     28, 28, 28, 28, 28, 28, 28, 28,   28, 28, 28, 28, 28, 28, 28, 28,
 
2195
     28, 28, 28, 28, 28, 28, 28, 28,   28, 28, 28, 28, 28, 28, 28, 28,
 
2196
};
 
2197
static const struct byte_lookup* const
 
2198
to_ISO_8859_11_E0_B9_infos[29] = {
 
2199
     o1(0xE0), o1(0xE1), o1(0xE2), o1(0xE3),
 
2200
     o1(0xE4), o1(0xE5), o1(0xE6), o1(0xE7),
 
2201
     o1(0xE8), o1(0xE9), o1(0xEA), o1(0xEB),
 
2202
     o1(0xEC), o1(0xED), o1(0xEE), o1(0xEF),
 
2203
     o1(0xF0), o1(0xF1), o1(0xF2), o1(0xF3),
 
2204
     o1(0xF4), o1(0xF5), o1(0xF6), o1(0xF7),
 
2205
     o1(0xF8), o1(0xF9), o1(0xFA), o1(0xFB),
 
2206
        UNDEF,
 
2207
};
 
2208
static const BYTE_LOOKUP
 
2209
to_ISO_8859_11_E0_B9 = {
 
2210
    to_ISO_8859_11_E0_B9_offsets,
 
2211
    to_ISO_8859_11_E0_B9_infos
 
2212
};
 
2213
 
 
2214
static const unsigned char
 
2215
to_ISO_8859_11_E0_offsets[64] = {
 
2216
      2,  2,  2,  2,  2,  2,  2,  2,    2,  2,  2,  2,  2,  2,  2,  2,
 
2217
      2,  2,  2,  2,  2,  2,  2,  2,    2,  2,  2,  2,  2,  2,  2,  2,
 
2218
      2,  2,  2,  2,  2,  2,  2,  2,    2,  2,  2,  2,  2,  2,  2,  2,
 
2219
      2,  2,  2,  2,  2,  2,  2,  2,    0,  1,  2,  2,  2,  2,  2,  2,
 
2220
};
 
2221
static const struct byte_lookup* const
 
2222
to_ISO_8859_11_E0_infos[3] = {
 
2223
     &to_ISO_8859_11_E0_B8, &to_ISO_8859_11_E0_B9,
 
2224
                     UNDEF,
 
2225
};
 
2226
static const BYTE_LOOKUP
 
2227
to_ISO_8859_11_E0 = {
 
2228
    to_ISO_8859_11_E0_offsets,
 
2229
    to_ISO_8859_11_E0_infos
 
2230
};
 
2231
 
 
2232
static const unsigned char
 
2233
to_ISO_8859_11_offsets[256] = {
 
2234
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2235
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2236
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2237
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2238
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2239
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2240
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2241
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2242
      3,  3,  3,  3,  3,  3,  3,  3,    3,  3,  3,  3,  3,  3,  3,  3,
 
2243
      3,  3,  3,  3,  3,  3,  3,  3,    3,  3,  3,  3,  3,  3,  3,  3,
 
2244
      3,  3,  3,  3,  3,  3,  3,  3,    3,  3,  3,  3,  3,  3,  3,  3,
 
2245
      3,  3,  3,  3,  3,  3,  3,  3,    3,  3,  3,  3,  3,  3,  3,  3,
 
2246
      3,  3,  1,  3,  3,  3,  3,  3,    3,  3,  3,  3,  3,  3,  3,  3,
 
2247
      3,  3,  3,  3,  3,  3,  3,  3,    3,  3,  3,  3,  3,  3,  3,  3,
 
2248
      2,  3,  3,  3,  3,  3,  3,  3,    3,  3,  3,  3,  3,  3,  3,  3,
 
2249
      3,  3,  3,  3,  3,  3,  3,  3,    3,  3,  3,  3,  3,  3,  3,  3,
 
2250
};
 
2251
static const struct byte_lookup* const
 
2252
to_ISO_8859_11_infos[4] = {
 
2253
                  NOMAP, &to_ISO_8859_11_C2,
 
2254
     &to_ISO_8859_11_E0,              UNDEF,
 
2255
};
 
2256
static const BYTE_LOOKUP
 
2257
to_ISO_8859_11 = {
 
2258
    to_ISO_8859_11_offsets,
 
2259
    to_ISO_8859_11_infos
 
2260
};
 
2261
static rb_transcoder
 
2262
rb_to_ISO_8859_11 = {
 
2263
    "UTF-8", "ISO-8859-11", &to_ISO_8859_11, 1, 1,
 
2264
    NULL, NULL,
 
2265
};
 
2266
 
 
2267
static const struct byte_lookup* const
 
2268
from_ISO_8859_13_infos[129] = {
 
2269
                  NOMAP,      o2(0xC2,0x80),
 
2270
          o2(0xC2,0x81),      o2(0xC2,0x82),
 
2271
          o2(0xC2,0x83),      o2(0xC2,0x84),
 
2272
          o2(0xC2,0x85),      o2(0xC2,0x86),
 
2273
          o2(0xC2,0x87),      o2(0xC2,0x88),
 
2274
          o2(0xC2,0x89),      o2(0xC2,0x8A),
 
2275
          o2(0xC2,0x8B),      o2(0xC2,0x8C),
 
2276
          o2(0xC2,0x8D),      o2(0xC2,0x8E),
 
2277
          o2(0xC2,0x8F),      o2(0xC2,0x90),
 
2278
          o2(0xC2,0x91),      o2(0xC2,0x92),
 
2279
          o2(0xC2,0x93),      o2(0xC2,0x94),
 
2280
          o2(0xC2,0x95),      o2(0xC2,0x96),
 
2281
          o2(0xC2,0x97),      o2(0xC2,0x98),
 
2282
          o2(0xC2,0x99),      o2(0xC2,0x9A),
 
2283
          o2(0xC2,0x9B),      o2(0xC2,0x9C),
 
2284
          o2(0xC2,0x9D),      o2(0xC2,0x9E),
 
2285
          o2(0xC2,0x9F),      o2(0xC2,0xA0),
 
2286
     o3(0xE2,0x80,0x9D),      o2(0xC2,0xA2),
 
2287
          o2(0xC2,0xA3),      o2(0xC2,0xA4),
 
2288
     o3(0xE2,0x80,0x9E),      o2(0xC2,0xA6),
 
2289
          o2(0xC2,0xA7),      o2(0xC3,0x98),
 
2290
          o2(0xC2,0xA9),      o2(0xC5,0x96),
 
2291
          o2(0xC2,0xAB),      o2(0xC2,0xAC),
 
2292
          o2(0xC2,0xAD),      o2(0xC2,0xAE),
 
2293
          o2(0xC3,0x86),      o2(0xC2,0xB0),
 
2294
          o2(0xC2,0xB1),      o2(0xC2,0xB2),
 
2295
          o2(0xC2,0xB3), o3(0xE2,0x80,0x9C),
 
2296
          o2(0xC2,0xB5),      o2(0xC2,0xB6),
 
2297
          o2(0xC2,0xB7),      o2(0xC3,0xB8),
 
2298
          o2(0xC2,0xB9),      o2(0xC5,0x97),
 
2299
          o2(0xC2,0xBB),      o2(0xC2,0xBC),
 
2300
          o2(0xC2,0xBD),      o2(0xC2,0xBE),
 
2301
          o2(0xC3,0xA6),      o2(0xC4,0x84),
 
2302
          o2(0xC4,0xAE),      o2(0xC4,0x80),
 
2303
          o2(0xC4,0x86),      o2(0xC3,0x84),
 
2304
          o2(0xC3,0x85),      o2(0xC4,0x98),
 
2305
          o2(0xC4,0x92),      o2(0xC4,0x8C),
 
2306
          o2(0xC3,0x89),      o2(0xC5,0xB9),
 
2307
          o2(0xC4,0x96),      o2(0xC4,0xA2),
 
2308
          o2(0xC4,0xB6),      o2(0xC4,0xAA),
 
2309
          o2(0xC4,0xBB),      o2(0xC5,0xA0),
 
2310
          o2(0xC5,0x83),      o2(0xC5,0x85),
 
2311
          o2(0xC3,0x93),      o2(0xC5,0x8C),
 
2312
          o2(0xC3,0x95),      o2(0xC3,0x96),
 
2313
          o2(0xC3,0x97),      o2(0xC5,0xB2),
 
2314
          o2(0xC5,0x81),      o2(0xC5,0x9A),
 
2315
          o2(0xC5,0xAA),      o2(0xC3,0x9C),
 
2316
          o2(0xC5,0xBB),      o2(0xC5,0xBD),
 
2317
          o2(0xC3,0x9F),      o2(0xC4,0x85),
 
2318
          o2(0xC4,0xAF),      o2(0xC4,0x81),
 
2319
          o2(0xC4,0x87),      o2(0xC3,0xA4),
 
2320
          o2(0xC3,0xA5),      o2(0xC4,0x99),
 
2321
          o2(0xC4,0x93),      o2(0xC4,0x8D),
 
2322
          o2(0xC3,0xA9),      o2(0xC5,0xBA),
 
2323
          o2(0xC4,0x97),      o2(0xC4,0xA3),
 
2324
          o2(0xC4,0xB7),      o2(0xC4,0xAB),
 
2325
          o2(0xC4,0xBC),      o2(0xC5,0xA1),
 
2326
          o2(0xC5,0x84),      o2(0xC5,0x86),
 
2327
          o2(0xC3,0xB3),      o2(0xC5,0x8D),
 
2328
          o2(0xC3,0xB5),      o2(0xC3,0xB6),
 
2329
          o2(0xC3,0xB7),      o2(0xC5,0xB3),
 
2330
          o2(0xC5,0x82),      o2(0xC5,0x9B),
 
2331
          o2(0xC5,0xAB),      o2(0xC3,0xBC),
 
2332
          o2(0xC5,0xBC),      o2(0xC5,0xBE),
 
2333
     o3(0xE2,0x80,0x99),
 
2334
};
 
2335
static const BYTE_LOOKUP
 
2336
from_ISO_8859_13 = {
 
2337
    from_ISO_8859_1_offsets,
 
2338
    from_ISO_8859_13_infos
 
2339
};
 
2340
static rb_transcoder
 
2341
rb_from_ISO_8859_13 = {
 
2342
    "ISO-8859-13", "UTF-8", &from_ISO_8859_13, 3, 0,
 
2343
    NULL, NULL,
 
2344
};
 
2345
 
 
2346
static const unsigned char
 
2347
to_ISO_8859_13_C2_offsets[64] = {
 
2348
      0,  1,  2,  3,  4,  5,  6,  7,    8,  9, 10, 11, 12, 13, 14, 15,
 
2349
     16, 17, 18, 19, 20, 21, 22, 23,   24, 25, 26, 27, 28, 29, 30, 31,
 
2350
     32, 55, 33, 34, 35, 55, 36, 37,   55, 38, 55, 39, 40, 41, 42, 55,
 
2351
     43, 44, 45, 46, 55, 47, 48, 49,   55, 50, 55, 51, 52, 53, 54, 55,
 
2352
};
 
2353
static const struct byte_lookup* const
 
2354
to_ISO_8859_13_C2_infos[56] = {
 
2355
     o1(0x80), o1(0x81), o1(0x82), o1(0x83),
 
2356
     o1(0x84), o1(0x85), o1(0x86), o1(0x87),
 
2357
     o1(0x88), o1(0x89), o1(0x8A), o1(0x8B),
 
2358
     o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F),
 
2359
     o1(0x90), o1(0x91), o1(0x92), o1(0x93),
 
2360
     o1(0x94), o1(0x95), o1(0x96), o1(0x97),
 
2361
     o1(0x98), o1(0x99), o1(0x9A), o1(0x9B),
 
2362
     o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F),
 
2363
     o1(0xA0), o1(0xA2), o1(0xA3), o1(0xA4),
 
2364
     o1(0xA6), o1(0xA7), o1(0xA9), o1(0xAB),
 
2365
     o1(0xAC), o1(0xAD), o1(0xAE), o1(0xB0),
 
2366
     o1(0xB1), o1(0xB2), o1(0xB3), o1(0xB5),
 
2367
     o1(0xB6), o1(0xB7), o1(0xB9), o1(0xBB),
 
2368
     o1(0xBC), o1(0xBD), o1(0xBE),    UNDEF,
 
2369
};
 
2370
static const BYTE_LOOKUP
 
2371
to_ISO_8859_13_C2 = {
 
2372
    to_ISO_8859_13_C2_offsets,
 
2373
    to_ISO_8859_13_C2_infos
 
2374
};
 
2375
 
 
2376
static const unsigned char
 
2377
to_ISO_8859_13_C3_offsets[64] = {
 
2378
     21, 21, 21, 21,  0,  1,  2, 21,   21,  3, 21, 21, 21, 21, 21, 21,
 
2379
     21, 21, 21,  4, 21,  5,  6,  7,    8, 21, 21, 21,  9, 21, 21, 10,
 
2380
     21, 21, 21, 21, 11, 12, 13, 21,   21, 14, 21, 21, 21, 21, 21, 21,
 
2381
     21, 21, 21, 15, 21, 16, 17, 18,   19, 21, 21, 21, 20, 21, 21, 21,
 
2382
};
 
2383
static const struct byte_lookup* const
 
2384
to_ISO_8859_13_C3_infos[22] = {
 
2385
     o1(0xC4), o1(0xC5), o1(0xAF), o1(0xC9),
 
2386
     o1(0xD3), o1(0xD5), o1(0xD6), o1(0xD7),
 
2387
     o1(0xA8), o1(0xDC), o1(0xDF), o1(0xE4),
 
2388
     o1(0xE5), o1(0xBF), o1(0xE9), o1(0xF3),
 
2389
     o1(0xF5), o1(0xF6), o1(0xF7), o1(0xB8),
 
2390
     o1(0xFC),    UNDEF,
 
2391
};
 
2392
static const BYTE_LOOKUP
 
2393
to_ISO_8859_13_C3 = {
 
2394
    to_ISO_8859_13_C3_offsets,
 
2395
    to_ISO_8859_13_C3_infos
 
2396
};
 
2397
 
 
2398
static const unsigned char
 
2399
to_ISO_8859_13_C4_offsets[64] = {
 
2400
      0,  1, 24, 24,  2,  3,  4,  5,   24, 24, 24, 24,  6,  7, 24, 24,
 
2401
     24, 24,  8,  9, 24, 24, 10, 11,   12, 13, 24, 24, 24, 24, 24, 24,
 
2402
     24, 24, 14, 15, 24, 24, 24, 24,   24, 24, 16, 17, 24, 24, 18, 19,
 
2403
     24, 24, 24, 24, 24, 24, 20, 21,   24, 24, 24, 22, 23, 24, 24, 24,
 
2404
};
 
2405
static const struct byte_lookup* const
 
2406
to_ISO_8859_13_C4_infos[25] = {
 
2407
     o1(0xC2), o1(0xE2), o1(0xC0), o1(0xE0),
 
2408
     o1(0xC3), o1(0xE3), o1(0xC8), o1(0xE8),
 
2409
     o1(0xC7), o1(0xE7), o1(0xCB), o1(0xEB),
 
2410
     o1(0xC6), o1(0xE6), o1(0xCC), o1(0xEC),
 
2411
     o1(0xCE), o1(0xEE), o1(0xC1), o1(0xE1),
 
2412
     o1(0xCD), o1(0xED), o1(0xCF), o1(0xEF),
 
2413
        UNDEF,
 
2414
};
 
2415
static const BYTE_LOOKUP
 
2416
to_ISO_8859_13_C4 = {
 
2417
    to_ISO_8859_13_C4_offsets,
 
2418
    to_ISO_8859_13_C4_infos
 
2419
};
 
2420
 
 
2421
static const unsigned char
 
2422
to_ISO_8859_13_C5_offsets[64] = {
 
2423
     24,  0,  1,  2,  3,  4,  5, 24,   24, 24, 24, 24,  6,  7, 24, 24,
 
2424
     24, 24, 24, 24, 24, 24,  8,  9,   24, 24, 10, 11, 24, 24, 24, 24,
 
2425
     12, 13, 24, 24, 24, 24, 24, 24,   24, 24, 14, 15, 24, 24, 24, 24,
 
2426
     24, 24, 16, 17, 24, 24, 24, 24,   24, 18, 19, 20, 21, 22, 23, 24,
 
2427
};
 
2428
static const struct byte_lookup* const
 
2429
to_ISO_8859_13_C5_infos[25] = {
 
2430
     o1(0xD9), o1(0xF9), o1(0xD1), o1(0xF1),
 
2431
     o1(0xD2), o1(0xF2), o1(0xD4), o1(0xF4),
 
2432
     o1(0xAA), o1(0xBA), o1(0xDA), o1(0xFA),
 
2433
     o1(0xD0), o1(0xF0), o1(0xDB), o1(0xFB),
 
2434
     o1(0xD8), o1(0xF8), o1(0xCA), o1(0xEA),
 
2435
     o1(0xDD), o1(0xFD), o1(0xDE), o1(0xFE),
 
2436
        UNDEF,
 
2437
};
 
2438
static const BYTE_LOOKUP
 
2439
to_ISO_8859_13_C5 = {
 
2440
    to_ISO_8859_13_C5_offsets,
 
2441
    to_ISO_8859_13_C5_infos
 
2442
};
 
2443
 
 
2444
static const unsigned char
 
2445
to_ISO_8859_13_E2_80_offsets[64] = {
 
2446
      4,  4,  4,  4,  4,  4,  4,  4,    4,  4,  4,  4,  4,  4,  4,  4,
 
2447
      4,  4,  4,  4,  4,  4,  4,  4,    4,  0,  4,  4,  1,  2,  3,  4,
 
2448
      4,  4,  4,  4,  4,  4,  4,  4,    4,  4,  4,  4,  4,  4,  4,  4,
 
2449
      4,  4,  4,  4,  4,  4,  4,  4,    4,  4,  4,  4,  4,  4,  4,  4,
 
2450
};
 
2451
static const struct byte_lookup* const
 
2452
to_ISO_8859_13_E2_80_infos[5] = {
 
2453
     o1(0xFF), o1(0xB4), o1(0xA1), o1(0xA5),
 
2454
        UNDEF,
 
2455
};
 
2456
static const BYTE_LOOKUP
 
2457
to_ISO_8859_13_E2_80 = {
 
2458
    to_ISO_8859_13_E2_80_offsets,
 
2459
    to_ISO_8859_13_E2_80_infos
 
2460
};
 
2461
 
 
2462
static const struct byte_lookup* const
 
2463
to_ISO_8859_13_E2_infos[2] = {
 
2464
     &to_ISO_8859_13_E2_80,                 UNDEF,
 
2465
};
 
2466
static const BYTE_LOOKUP
 
2467
to_ISO_8859_13_E2 = {
 
2468
    to_ISO_8859_8_E2_offsets,
 
2469
    to_ISO_8859_13_E2_infos
 
2470
};
 
2471
 
 
2472
static const struct byte_lookup* const
 
2473
to_ISO_8859_13_infos[7] = {
 
2474
                  NOMAP, &to_ISO_8859_13_C2,
 
2475
     &to_ISO_8859_13_C3, &to_ISO_8859_13_C4,
 
2476
     &to_ISO_8859_13_C5, &to_ISO_8859_13_E2,
 
2477
                  UNDEF,
 
2478
};
 
2479
static const BYTE_LOOKUP
 
2480
to_ISO_8859_13 = {
 
2481
    to_ISO_8859_10_offsets,
 
2482
    to_ISO_8859_13_infos
 
2483
};
 
2484
static rb_transcoder
 
2485
rb_to_ISO_8859_13 = {
 
2486
    "UTF-8", "ISO-8859-13", &to_ISO_8859_13, 1, 1,
 
2487
    NULL, NULL,
 
2488
};
 
2489
 
 
2490
static const struct byte_lookup* const
 
2491
from_ISO_8859_14_infos[129] = {
 
2492
                  NOMAP,      o2(0xC2,0x80),
 
2493
          o2(0xC2,0x81),      o2(0xC2,0x82),
 
2494
          o2(0xC2,0x83),      o2(0xC2,0x84),
 
2495
          o2(0xC2,0x85),      o2(0xC2,0x86),
 
2496
          o2(0xC2,0x87),      o2(0xC2,0x88),
 
2497
          o2(0xC2,0x89),      o2(0xC2,0x8A),
 
2498
          o2(0xC2,0x8B),      o2(0xC2,0x8C),
 
2499
          o2(0xC2,0x8D),      o2(0xC2,0x8E),
 
2500
          o2(0xC2,0x8F),      o2(0xC2,0x90),
 
2501
          o2(0xC2,0x91),      o2(0xC2,0x92),
 
2502
          o2(0xC2,0x93),      o2(0xC2,0x94),
 
2503
          o2(0xC2,0x95),      o2(0xC2,0x96),
 
2504
          o2(0xC2,0x97),      o2(0xC2,0x98),
 
2505
          o2(0xC2,0x99),      o2(0xC2,0x9A),
 
2506
          o2(0xC2,0x9B),      o2(0xC2,0x9C),
 
2507
          o2(0xC2,0x9D),      o2(0xC2,0x9E),
 
2508
          o2(0xC2,0x9F),      o2(0xC2,0xA0),
 
2509
     o3(0xE1,0xB8,0x82), o3(0xE1,0xB8,0x83),
 
2510
          o2(0xC2,0xA3),      o2(0xC4,0x8A),
 
2511
          o2(0xC4,0x8B), o3(0xE1,0xB8,0x8A),
 
2512
          o2(0xC2,0xA7), o3(0xE1,0xBA,0x80),
 
2513
          o2(0xC2,0xA9), o3(0xE1,0xBA,0x82),
 
2514
     o3(0xE1,0xB8,0x8B), o3(0xE1,0xBB,0xB2),
 
2515
          o2(0xC2,0xAD),      o2(0xC2,0xAE),
 
2516
          o2(0xC5,0xB8), o3(0xE1,0xB8,0x9E),
 
2517
     o3(0xE1,0xB8,0x9F),      o2(0xC4,0xA0),
 
2518
          o2(0xC4,0xA1), o3(0xE1,0xB9,0x80),
 
2519
     o3(0xE1,0xB9,0x81),      o2(0xC2,0xB6),
 
2520
     o3(0xE1,0xB9,0x96), o3(0xE1,0xBA,0x81),
 
2521
     o3(0xE1,0xB9,0x97), o3(0xE1,0xBA,0x83),
 
2522
     o3(0xE1,0xB9,0xA0), o3(0xE1,0xBB,0xB3),
 
2523
     o3(0xE1,0xBA,0x84), o3(0xE1,0xBA,0x85),
 
2524
     o3(0xE1,0xB9,0xA1),      o2(0xC3,0x80),
 
2525
          o2(0xC3,0x81),      o2(0xC3,0x82),
 
2526
          o2(0xC3,0x83),      o2(0xC3,0x84),
 
2527
          o2(0xC3,0x85),      o2(0xC3,0x86),
 
2528
          o2(0xC3,0x87),      o2(0xC3,0x88),
 
2529
          o2(0xC3,0x89),      o2(0xC3,0x8A),
 
2530
          o2(0xC3,0x8B),      o2(0xC3,0x8C),
 
2531
          o2(0xC3,0x8D),      o2(0xC3,0x8E),
 
2532
          o2(0xC3,0x8F),      o2(0xC5,0xB4),
 
2533
          o2(0xC3,0x91),      o2(0xC3,0x92),
 
2534
          o2(0xC3,0x93),      o2(0xC3,0x94),
 
2535
          o2(0xC3,0x95),      o2(0xC3,0x96),
 
2536
     o3(0xE1,0xB9,0xAA),      o2(0xC3,0x98),
 
2537
          o2(0xC3,0x99),      o2(0xC3,0x9A),
 
2538
          o2(0xC3,0x9B),      o2(0xC3,0x9C),
 
2539
          o2(0xC3,0x9D),      o2(0xC5,0xB6),
 
2540
          o2(0xC3,0x9F),      o2(0xC3,0xA0),
 
2541
          o2(0xC3,0xA1),      o2(0xC3,0xA2),
 
2542
          o2(0xC3,0xA3),      o2(0xC3,0xA4),
 
2543
          o2(0xC3,0xA5),      o2(0xC3,0xA6),
 
2544
          o2(0xC3,0xA7),      o2(0xC3,0xA8),
 
2545
          o2(0xC3,0xA9),      o2(0xC3,0xAA),
 
2546
          o2(0xC3,0xAB),      o2(0xC3,0xAC),
 
2547
          o2(0xC3,0xAD),      o2(0xC3,0xAE),
 
2548
          o2(0xC3,0xAF),      o2(0xC5,0xB5),
 
2549
          o2(0xC3,0xB1),      o2(0xC3,0xB2),
 
2550
          o2(0xC3,0xB3),      o2(0xC3,0xB4),
 
2551
          o2(0xC3,0xB5),      o2(0xC3,0xB6),
 
2552
     o3(0xE1,0xB9,0xAB),      o2(0xC3,0xB8),
 
2553
          o2(0xC3,0xB9),      o2(0xC3,0xBA),
 
2554
          o2(0xC3,0xBB),      o2(0xC3,0xBC),
 
2555
          o2(0xC3,0xBD),      o2(0xC5,0xB7),
 
2556
          o2(0xC3,0xBF),
 
2557
};
 
2558
static const BYTE_LOOKUP
 
2559
from_ISO_8859_14 = {
 
2560
    from_ISO_8859_1_offsets,
 
2561
    from_ISO_8859_14_infos
 
2562
};
 
2563
static rb_transcoder
 
2564
rb_from_ISO_8859_14 = {
 
2565
    "ISO-8859-14", "UTF-8", &from_ISO_8859_14, 3, 0,
 
2566
    NULL, NULL,
 
2567
};
 
2568
 
 
2569
static const unsigned char
 
2570
to_ISO_8859_14_C2_offsets[64] = {
 
2571
      0,  1,  2,  3,  4,  5,  6,  7,    8,  9, 10, 11, 12, 13, 14, 15,
 
2572
     16, 17, 18, 19, 20, 21, 22, 23,   24, 25, 26, 27, 28, 29, 30, 31,
 
2573
     32, 39, 39, 33, 39, 39, 39, 34,   39, 35, 39, 39, 39, 36, 37, 39,
 
2574
     39, 39, 39, 39, 39, 39, 38, 39,   39, 39, 39, 39, 39, 39, 39, 39,
 
2575
};
 
2576
static const struct byte_lookup* const
 
2577
to_ISO_8859_14_C2_infos[40] = {
 
2578
     o1(0x80), o1(0x81), o1(0x82), o1(0x83),
 
2579
     o1(0x84), o1(0x85), o1(0x86), o1(0x87),
 
2580
     o1(0x88), o1(0x89), o1(0x8A), o1(0x8B),
 
2581
     o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F),
 
2582
     o1(0x90), o1(0x91), o1(0x92), o1(0x93),
 
2583
     o1(0x94), o1(0x95), o1(0x96), o1(0x97),
 
2584
     o1(0x98), o1(0x99), o1(0x9A), o1(0x9B),
 
2585
     o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F),
 
2586
     o1(0xA0), o1(0xA3), o1(0xA7), o1(0xA9),
 
2587
     o1(0xAD), o1(0xAE), o1(0xB6),    UNDEF,
 
2588
};
 
2589
static const BYTE_LOOKUP
 
2590
to_ISO_8859_14_C2 = {
 
2591
    to_ISO_8859_14_C2_offsets,
 
2592
    to_ISO_8859_14_C2_infos
 
2593
};
 
2594
 
 
2595
static const unsigned char
 
2596
to_ISO_8859_14_C3_offsets[64] = {
 
2597
      0,  1,  2,  3,  4,  5,  6,  7,    8,  9, 10, 11, 12, 13, 14, 15,
 
2598
     58, 16, 17, 18, 19, 20, 21, 58,   22, 23, 24, 25, 26, 27, 58, 28,
 
2599
     29, 30, 31, 32, 33, 34, 35, 36,   37, 38, 39, 40, 41, 42, 43, 44,
 
2600
     58, 45, 46, 47, 48, 49, 50, 58,   51, 52, 53, 54, 55, 56, 58, 57,
 
2601
};
 
2602
static const struct byte_lookup* const
 
2603
to_ISO_8859_14_C3_infos[59] = {
 
2604
     o1(0xC0), o1(0xC1), o1(0xC2), o1(0xC3),
 
2605
     o1(0xC4), o1(0xC5), o1(0xC6), o1(0xC7),
 
2606
     o1(0xC8), o1(0xC9), o1(0xCA), o1(0xCB),
 
2607
     o1(0xCC), o1(0xCD), o1(0xCE), o1(0xCF),
 
2608
     o1(0xD1), o1(0xD2), o1(0xD3), o1(0xD4),
 
2609
     o1(0xD5), o1(0xD6), o1(0xD8), o1(0xD9),
 
2610
     o1(0xDA), o1(0xDB), o1(0xDC), o1(0xDD),
 
2611
     o1(0xDF), o1(0xE0), o1(0xE1), o1(0xE2),
 
2612
     o1(0xE3), o1(0xE4), o1(0xE5), o1(0xE6),
 
2613
     o1(0xE7), o1(0xE8), o1(0xE9), o1(0xEA),
 
2614
     o1(0xEB), o1(0xEC), o1(0xED), o1(0xEE),
 
2615
     o1(0xEF), o1(0xF1), o1(0xF2), o1(0xF3),
 
2616
     o1(0xF4), o1(0xF5), o1(0xF6), o1(0xF8),
 
2617
     o1(0xF9), o1(0xFA), o1(0xFB), o1(0xFC),
 
2618
     o1(0xFD), o1(0xFF),    UNDEF,
 
2619
};
 
2620
static const BYTE_LOOKUP
 
2621
to_ISO_8859_14_C3 = {
 
2622
    to_ISO_8859_14_C3_offsets,
 
2623
    to_ISO_8859_14_C3_infos
 
2624
};
 
2625
 
 
2626
static const unsigned char
 
2627
to_ISO_8859_14_C4_offsets[64] = {
 
2628
      4,  4,  4,  4,  4,  4,  4,  4,    4,  4,  0,  1,  4,  4,  4,  4,
 
2629
      4,  4,  4,  4,  4,  4,  4,  4,    4,  4,  4,  4,  4,  4,  4,  4,
 
2630
      2,  3,  4,  4,  4,  4,  4,  4,    4,  4,  4,  4,  4,  4,  4,  4,
 
2631
      4,  4,  4,  4,  4,  4,  4,  4,    4,  4,  4,  4,  4,  4,  4,  4,
 
2632
};
 
2633
static const struct byte_lookup* const
 
2634
to_ISO_8859_14_C4_infos[5] = {
 
2635
     o1(0xA4), o1(0xA5), o1(0xB2), o1(0xB3),
 
2636
        UNDEF,
 
2637
};
 
2638
static const BYTE_LOOKUP
 
2639
to_ISO_8859_14_C4 = {
 
2640
    to_ISO_8859_14_C4_offsets,
 
2641
    to_ISO_8859_14_C4_infos
 
2642
};
 
2643
 
 
2644
static const unsigned char
 
2645
to_ISO_8859_14_C5_offsets[64] = {
 
2646
      5,  5,  5,  5,  5,  5,  5,  5,    5,  5,  5,  5,  5,  5,  5,  5,
 
2647
      5,  5,  5,  5,  5,  5,  5,  5,    5,  5,  5,  5,  5,  5,  5,  5,
 
2648
      5,  5,  5,  5,  5,  5,  5,  5,    5,  5,  5,  5,  5,  5,  5,  5,
 
2649
      5,  5,  5,  5,  0,  1,  2,  3,    4,  5,  5,  5,  5,  5,  5,  5,
 
2650
};
 
2651
static const struct byte_lookup* const
 
2652
to_ISO_8859_14_C5_infos[6] = {
 
2653
     o1(0xD0), o1(0xF0), o1(0xDE), o1(0xFE),
 
2654
     o1(0xAF),    UNDEF,
 
2655
};
 
2656
static const BYTE_LOOKUP
 
2657
to_ISO_8859_14_C5 = {
 
2658
    to_ISO_8859_14_C5_offsets,
 
2659
    to_ISO_8859_14_C5_infos
 
2660
};
 
2661
 
 
2662
static const unsigned char
 
2663
to_ISO_8859_14_E1_B8_offsets[64] = {
 
2664
      6,  6,  0,  1,  6,  6,  6,  6,    6,  6,  2,  3,  6,  6,  6,  6,
 
2665
      6,  6,  6,  6,  6,  6,  6,  6,    6,  6,  6,  6,  6,  6,  4,  5,
 
2666
      6,  6,  6,  6,  6,  6,  6,  6,    6,  6,  6,  6,  6,  6,  6,  6,
 
2667
      6,  6,  6,  6,  6,  6,  6,  6,    6,  6,  6,  6,  6,  6,  6,  6,
 
2668
};
 
2669
static const struct byte_lookup* const
 
2670
to_ISO_8859_14_E1_B8_infos[7] = {
 
2671
     o1(0xA1), o1(0xA2), o1(0xA6), o1(0xAB),
 
2672
     o1(0xB0), o1(0xB1),    UNDEF,
 
2673
};
 
2674
static const BYTE_LOOKUP
 
2675
to_ISO_8859_14_E1_B8 = {
 
2676
    to_ISO_8859_14_E1_B8_offsets,
 
2677
    to_ISO_8859_14_E1_B8_infos
 
2678
};
 
2679
 
 
2680
static const unsigned char
 
2681
to_ISO_8859_14_E1_B9_offsets[64] = {
 
2682
      0,  1,  8,  8,  8,  8,  8,  8,    8,  8,  8,  8,  8,  8,  8,  8,
 
2683
      8,  8,  8,  8,  8,  8,  2,  3,    8,  8,  8,  8,  8,  8,  8,  8,
 
2684
      4,  5,  8,  8,  8,  8,  8,  8,    8,  8,  6,  7,  8,  8,  8,  8,
 
2685
      8,  8,  8,  8,  8,  8,  8,  8,    8,  8,  8,  8,  8,  8,  8,  8,
 
2686
};
 
2687
static const struct byte_lookup* const
 
2688
to_ISO_8859_14_E1_B9_infos[9] = {
 
2689
     o1(0xB4), o1(0xB5), o1(0xB7), o1(0xB9),
 
2690
     o1(0xBB), o1(0xBF), o1(0xD7), o1(0xF7),
 
2691
        UNDEF,
 
2692
};
 
2693
static const BYTE_LOOKUP
 
2694
to_ISO_8859_14_E1_B9 = {
 
2695
    to_ISO_8859_14_E1_B9_offsets,
 
2696
    to_ISO_8859_14_E1_B9_infos
 
2697
};
 
2698
 
 
2699
static const unsigned char
 
2700
to_ISO_8859_14_E1_BA_offsets[64] = {
 
2701
      0,  1,  2,  3,  4,  5,  6,  6,    6,  6,  6,  6,  6,  6,  6,  6,
 
2702
      6,  6,  6,  6,  6,  6,  6,  6,    6,  6,  6,  6,  6,  6,  6,  6,
 
2703
      6,  6,  6,  6,  6,  6,  6,  6,    6,  6,  6,  6,  6,  6,  6,  6,
 
2704
      6,  6,  6,  6,  6,  6,  6,  6,    6,  6,  6,  6,  6,  6,  6,  6,
 
2705
};
 
2706
static const struct byte_lookup* const
 
2707
to_ISO_8859_14_E1_BA_infos[7] = {
 
2708
     o1(0xA8), o1(0xB8), o1(0xAA), o1(0xBA),
 
2709
     o1(0xBD), o1(0xBE),    UNDEF,
 
2710
};
 
2711
static const BYTE_LOOKUP
 
2712
to_ISO_8859_14_E1_BA = {
 
2713
    to_ISO_8859_14_E1_BA_offsets,
 
2714
    to_ISO_8859_14_E1_BA_infos
 
2715
};
 
2716
 
 
2717
static const unsigned char
 
2718
to_ISO_8859_14_E1_BB_offsets[64] = {
 
2719
      2,  2,  2,  2,  2,  2,  2,  2,    2,  2,  2,  2,  2,  2,  2,  2,
 
2720
      2,  2,  2,  2,  2,  2,  2,  2,    2,  2,  2,  2,  2,  2,  2,  2,
 
2721
      2,  2,  2,  2,  2,  2,  2,  2,    2,  2,  2,  2,  2,  2,  2,  2,
 
2722
      2,  2,  0,  1,  2,  2,  2,  2,    2,  2,  2,  2,  2,  2,  2,  2,
 
2723
};
 
2724
static const struct byte_lookup* const
 
2725
to_ISO_8859_14_E1_BB_infos[3] = {
 
2726
     o1(0xAC), o1(0xBC),    UNDEF,
 
2727
};
 
2728
static const BYTE_LOOKUP
 
2729
to_ISO_8859_14_E1_BB = {
 
2730
    to_ISO_8859_14_E1_BB_offsets,
 
2731
    to_ISO_8859_14_E1_BB_infos
 
2732
};
 
2733
 
 
2734
static const unsigned char
 
2735
to_ISO_8859_14_E1_offsets[64] = {
 
2736
      4,  4,  4,  4,  4,  4,  4,  4,    4,  4,  4,  4,  4,  4,  4,  4,
 
2737
      4,  4,  4,  4,  4,  4,  4,  4,    4,  4,  4,  4,  4,  4,  4,  4,
 
2738
      4,  4,  4,  4,  4,  4,  4,  4,    4,  4,  4,  4,  4,  4,  4,  4,
 
2739
      4,  4,  4,  4,  4,  4,  4,  4,    0,  1,  2,  3,  4,  4,  4,  4,
 
2740
};
 
2741
static const struct byte_lookup* const
 
2742
to_ISO_8859_14_E1_infos[5] = {
 
2743
     &to_ISO_8859_14_E1_B8, &to_ISO_8859_14_E1_B9,
 
2744
     &to_ISO_8859_14_E1_BA, &to_ISO_8859_14_E1_BB,
 
2745
                     UNDEF,
 
2746
};
 
2747
static const BYTE_LOOKUP
 
2748
to_ISO_8859_14_E1 = {
 
2749
    to_ISO_8859_14_E1_offsets,
 
2750
    to_ISO_8859_14_E1_infos
 
2751
};
 
2752
 
 
2753
static const unsigned char
 
2754
to_ISO_8859_14_offsets[256] = {
 
2755
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2756
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2757
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2758
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2759
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2760
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2761
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2762
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2763
      6,  6,  6,  6,  6,  6,  6,  6,    6,  6,  6,  6,  6,  6,  6,  6,
 
2764
      6,  6,  6,  6,  6,  6,  6,  6,    6,  6,  6,  6,  6,  6,  6,  6,
 
2765
      6,  6,  6,  6,  6,  6,  6,  6,    6,  6,  6,  6,  6,  6,  6,  6,
 
2766
      6,  6,  6,  6,  6,  6,  6,  6,    6,  6,  6,  6,  6,  6,  6,  6,
 
2767
      6,  6,  1,  2,  3,  4,  6,  6,    6,  6,  6,  6,  6,  6,  6,  6,
 
2768
      6,  6,  6,  6,  6,  6,  6,  6,    6,  6,  6,  6,  6,  6,  6,  6,
 
2769
      6,  5,  6,  6,  6,  6,  6,  6,    6,  6,  6,  6,  6,  6,  6,  6,
 
2770
      6,  6,  6,  6,  6,  6,  6,  6,    6,  6,  6,  6,  6,  6,  6,  6,
 
2771
};
 
2772
static const struct byte_lookup* const
 
2773
to_ISO_8859_14_infos[7] = {
 
2774
                  NOMAP, &to_ISO_8859_14_C2,
 
2775
     &to_ISO_8859_14_C3, &to_ISO_8859_14_C4,
 
2776
     &to_ISO_8859_14_C5, &to_ISO_8859_14_E1,
 
2777
                  UNDEF,
 
2778
};
 
2779
static const BYTE_LOOKUP
 
2780
to_ISO_8859_14 = {
 
2781
    to_ISO_8859_14_offsets,
 
2782
    to_ISO_8859_14_infos
 
2783
};
 
2784
static rb_transcoder
 
2785
rb_to_ISO_8859_14 = {
 
2786
    "UTF-8", "ISO-8859-14", &to_ISO_8859_14, 1, 1,
 
2787
    NULL, NULL,
 
2788
};
 
2789
 
 
2790
static const struct byte_lookup* const
 
2791
from_ISO_8859_15_infos[129] = {
 
2792
                  NOMAP,      o2(0xC2,0x80),
 
2793
          o2(0xC2,0x81),      o2(0xC2,0x82),
 
2794
          o2(0xC2,0x83),      o2(0xC2,0x84),
 
2795
          o2(0xC2,0x85),      o2(0xC2,0x86),
 
2796
          o2(0xC2,0x87),      o2(0xC2,0x88),
 
2797
          o2(0xC2,0x89),      o2(0xC2,0x8A),
 
2798
          o2(0xC2,0x8B),      o2(0xC2,0x8C),
 
2799
          o2(0xC2,0x8D),      o2(0xC2,0x8E),
 
2800
          o2(0xC2,0x8F),      o2(0xC2,0x90),
 
2801
          o2(0xC2,0x91),      o2(0xC2,0x92),
 
2802
          o2(0xC2,0x93),      o2(0xC2,0x94),
 
2803
          o2(0xC2,0x95),      o2(0xC2,0x96),
 
2804
          o2(0xC2,0x97),      o2(0xC2,0x98),
 
2805
          o2(0xC2,0x99),      o2(0xC2,0x9A),
 
2806
          o2(0xC2,0x9B),      o2(0xC2,0x9C),
 
2807
          o2(0xC2,0x9D),      o2(0xC2,0x9E),
 
2808
          o2(0xC2,0x9F),      o2(0xC2,0xA0),
 
2809
          o2(0xC2,0xA1),      o2(0xC2,0xA2),
 
2810
          o2(0xC2,0xA3), o3(0xE2,0x82,0xAC),
 
2811
          o2(0xC2,0xA5),      o2(0xC5,0xA0),
 
2812
          o2(0xC2,0xA7),      o2(0xC5,0xA1),
 
2813
          o2(0xC2,0xA9),      o2(0xC2,0xAA),
 
2814
          o2(0xC2,0xAB),      o2(0xC2,0xAC),
 
2815
          o2(0xC2,0xAD),      o2(0xC2,0xAE),
 
2816
          o2(0xC2,0xAF),      o2(0xC2,0xB0),
 
2817
          o2(0xC2,0xB1),      o2(0xC2,0xB2),
 
2818
          o2(0xC2,0xB3),      o2(0xC5,0xBD),
 
2819
          o2(0xC2,0xB5),      o2(0xC2,0xB6),
 
2820
          o2(0xC2,0xB7),      o2(0xC5,0xBE),
 
2821
          o2(0xC2,0xB9),      o2(0xC2,0xBA),
 
2822
          o2(0xC2,0xBB),      o2(0xC5,0x92),
 
2823
          o2(0xC5,0x93),      o2(0xC5,0xB8),
 
2824
          o2(0xC2,0xBF),      o2(0xC3,0x80),
 
2825
          o2(0xC3,0x81),      o2(0xC3,0x82),
 
2826
          o2(0xC3,0x83),      o2(0xC3,0x84),
 
2827
          o2(0xC3,0x85),      o2(0xC3,0x86),
 
2828
          o2(0xC3,0x87),      o2(0xC3,0x88),
 
2829
          o2(0xC3,0x89),      o2(0xC3,0x8A),
 
2830
          o2(0xC3,0x8B),      o2(0xC3,0x8C),
 
2831
          o2(0xC3,0x8D),      o2(0xC3,0x8E),
 
2832
          o2(0xC3,0x8F),      o2(0xC3,0x90),
 
2833
          o2(0xC3,0x91),      o2(0xC3,0x92),
 
2834
          o2(0xC3,0x93),      o2(0xC3,0x94),
 
2835
          o2(0xC3,0x95),      o2(0xC3,0x96),
 
2836
          o2(0xC3,0x97),      o2(0xC3,0x98),
 
2837
          o2(0xC3,0x99),      o2(0xC3,0x9A),
 
2838
          o2(0xC3,0x9B),      o2(0xC3,0x9C),
 
2839
          o2(0xC3,0x9D),      o2(0xC3,0x9E),
 
2840
          o2(0xC3,0x9F),      o2(0xC3,0xA0),
 
2841
          o2(0xC3,0xA1),      o2(0xC3,0xA2),
 
2842
          o2(0xC3,0xA3),      o2(0xC3,0xA4),
 
2843
          o2(0xC3,0xA5),      o2(0xC3,0xA6),
 
2844
          o2(0xC3,0xA7),      o2(0xC3,0xA8),
 
2845
          o2(0xC3,0xA9),      o2(0xC3,0xAA),
 
2846
          o2(0xC3,0xAB),      o2(0xC3,0xAC),
 
2847
          o2(0xC3,0xAD),      o2(0xC3,0xAE),
 
2848
          o2(0xC3,0xAF),      o2(0xC3,0xB0),
 
2849
          o2(0xC3,0xB1),      o2(0xC3,0xB2),
 
2850
          o2(0xC3,0xB3),      o2(0xC3,0xB4),
 
2851
          o2(0xC3,0xB5),      o2(0xC3,0xB6),
 
2852
          o2(0xC3,0xB7),      o2(0xC3,0xB8),
 
2853
          o2(0xC3,0xB9),      o2(0xC3,0xBA),
 
2854
          o2(0xC3,0xBB),      o2(0xC3,0xBC),
 
2855
          o2(0xC3,0xBD),      o2(0xC3,0xBE),
 
2856
          o2(0xC3,0xBF),
 
2857
};
 
2858
static const BYTE_LOOKUP
 
2859
from_ISO_8859_15 = {
 
2860
    from_ISO_8859_1_offsets,
 
2861
    from_ISO_8859_15_infos
 
2862
};
 
2863
static rb_transcoder
 
2864
rb_from_ISO_8859_15 = {
 
2865
    "ISO-8859-15", "UTF-8", &from_ISO_8859_15, 3, 0,
 
2866
    NULL, NULL,
 
2867
};
 
2868
 
 
2869
static const unsigned char
 
2870
to_ISO_8859_15_C2_offsets[64] = {
 
2871
      0,  1,  2,  3,  4,  5,  6,  7,    8,  9, 10, 11, 12, 13, 14, 15,
 
2872
     16, 17, 18, 19, 20, 21, 22, 23,   24, 25, 26, 27, 28, 29, 30, 31,
 
2873
     32, 33, 34, 35, 56, 36, 56, 37,   56, 38, 39, 40, 41, 42, 43, 44,
 
2874
     45, 46, 47, 48, 56, 49, 50, 51,   56, 52, 53, 54, 56, 56, 56, 55,
 
2875
};
 
2876
static const struct byte_lookup* const
 
2877
to_ISO_8859_15_C2_infos[57] = {
 
2878
     o1(0x80), o1(0x81), o1(0x82), o1(0x83),
 
2879
     o1(0x84), o1(0x85), o1(0x86), o1(0x87),
 
2880
     o1(0x88), o1(0x89), o1(0x8A), o1(0x8B),
 
2881
     o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F),
 
2882
     o1(0x90), o1(0x91), o1(0x92), o1(0x93),
 
2883
     o1(0x94), o1(0x95), o1(0x96), o1(0x97),
 
2884
     o1(0x98), o1(0x99), o1(0x9A), o1(0x9B),
 
2885
     o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F),
 
2886
     o1(0xA0), o1(0xA1), o1(0xA2), o1(0xA3),
 
2887
     o1(0xA5), o1(0xA7), o1(0xA9), o1(0xAA),
 
2888
     o1(0xAB), o1(0xAC), o1(0xAD), o1(0xAE),
 
2889
     o1(0xAF), o1(0xB0), o1(0xB1), o1(0xB2),
 
2890
     o1(0xB3), o1(0xB5), o1(0xB6), o1(0xB7),
 
2891
     o1(0xB9), o1(0xBA), o1(0xBB), o1(0xBF),
 
2892
        UNDEF,
 
2893
};
 
2894
static const BYTE_LOOKUP
 
2895
to_ISO_8859_15_C2 = {
 
2896
    to_ISO_8859_15_C2_offsets,
 
2897
    to_ISO_8859_15_C2_infos
 
2898
};
 
2899
 
 
2900
static const unsigned char
 
2901
to_ISO_8859_15_C5_offsets[64] = {
 
2902
      7,  7,  7,  7,  7,  7,  7,  7,    7,  7,  7,  7,  7,  7,  7,  7,
 
2903
      7,  7,  0,  1,  7,  7,  7,  7,    7,  7,  7,  7,  7,  7,  7,  7,
 
2904
      2,  3,  7,  7,  7,  7,  7,  7,    7,  7,  7,  7,  7,  7,  7,  7,
 
2905
      7,  7,  7,  7,  7,  7,  7,  7,    4,  7,  7,  7,  7,  5,  6,  7,
 
2906
};
 
2907
static const struct byte_lookup* const
 
2908
to_ISO_8859_15_C5_infos[8] = {
 
2909
     o1(0xBC), o1(0xBD), o1(0xA6), o1(0xA8),
 
2910
     o1(0xBE), o1(0xB4), o1(0xB8),    UNDEF,
 
2911
};
 
2912
static const BYTE_LOOKUP
 
2913
to_ISO_8859_15_C5 = {
 
2914
    to_ISO_8859_15_C5_offsets,
 
2915
    to_ISO_8859_15_C5_infos
 
2916
};
 
2917
 
 
2918
static const unsigned char
 
2919
to_ISO_8859_15_E2_82_offsets[64] = {
 
2920
      1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,
 
2921
      1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,
 
2922
      1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  0,  1,  1,  1,
 
2923
      1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,
 
2924
};
 
2925
static const struct byte_lookup* const
 
2926
to_ISO_8859_15_E2_82_infos[2] = {
 
2927
     o1(0xA4),    UNDEF,
 
2928
};
 
2929
static const BYTE_LOOKUP
 
2930
to_ISO_8859_15_E2_82 = {
 
2931
    to_ISO_8859_15_E2_82_offsets,
 
2932
    to_ISO_8859_15_E2_82_infos
 
2933
};
 
2934
 
 
2935
static const unsigned char
 
2936
to_ISO_8859_15_E2_offsets[64] = {
 
2937
      1,  1,  0,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,
 
2938
      1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,
 
2939
      1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,
 
2940
      1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,
 
2941
};
 
2942
static const struct byte_lookup* const
 
2943
to_ISO_8859_15_E2_infos[2] = {
 
2944
     &to_ISO_8859_15_E2_82,                 UNDEF,
 
2945
};
 
2946
static const BYTE_LOOKUP
 
2947
to_ISO_8859_15_E2 = {
 
2948
    to_ISO_8859_15_E2_offsets,
 
2949
    to_ISO_8859_15_E2_infos
 
2950
};
 
2951
 
 
2952
static const unsigned char
 
2953
to_ISO_8859_15_offsets[256] = {
 
2954
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2955
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2956
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2957
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2958
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2959
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2960
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2961
      0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
 
2962
      5,  5,  5,  5,  5,  5,  5,  5,    5,  5,  5,  5,  5,  5,  5,  5,
 
2963
      5,  5,  5,  5,  5,  5,  5,  5,    5,  5,  5,  5,  5,  5,  5,  5,
 
2964
      5,  5,  5,  5,  5,  5,  5,  5,    5,  5,  5,  5,  5,  5,  5,  5,
 
2965
      5,  5,  5,  5,  5,  5,  5,  5,    5,  5,  5,  5,  5,  5,  5,  5,
 
2966
      5,  5,  1,  2,  5,  3,  5,  5,    5,  5,  5,  5,  5,  5,  5,  5,
 
2967
      5,  5,  5,  5,  5,  5,  5,  5,    5,  5,  5,  5,  5,  5,  5,  5,
 
2968
      5,  5,  4,  5,  5,  5,  5,  5,    5,  5,  5,  5,  5,  5,  5,  5,
 
2969
      5,  5,  5,  5,  5,  5,  5,  5,    5,  5,  5,  5,  5,  5,  5,  5,
 
2970
};
 
2971
static const struct byte_lookup* const
 
2972
to_ISO_8859_15_infos[6] = {
 
2973
                  NOMAP, &to_ISO_8859_15_C2,
 
2974
      &to_ISO_8859_1_C3, &to_ISO_8859_15_C5,
 
2975
     &to_ISO_8859_15_E2,              UNDEF,
 
2976
};
 
2977
static const BYTE_LOOKUP
 
2978
to_ISO_8859_15 = {
 
2979
    to_ISO_8859_15_offsets,
 
2980
    to_ISO_8859_15_infos
 
2981
};
 
2982
static rb_transcoder
 
2983
rb_to_ISO_8859_15 = {
 
2984
    "UTF-8", "ISO-8859-15", &to_ISO_8859_15, 1, 1,
 
2985
    NULL, NULL,
 
2986
};
 
2987
 
 
2988
void
 
2989
Init_single_byte(void)
 
2990
{
 
2991
    rb_register_transcoder(&rb_from_ISO_8859_1);
 
2992
    rb_register_transcoder(&rb_from_ISO_8859_2);
 
2993
    rb_register_transcoder(&rb_from_ISO_8859_3);
 
2994
    rb_register_transcoder(&rb_from_ISO_8859_4);
 
2995
    rb_register_transcoder(&rb_from_ISO_8859_5);
 
2996
    rb_register_transcoder(&rb_from_ISO_8859_6);
 
2997
    rb_register_transcoder(&rb_from_ISO_8859_7);
 
2998
    rb_register_transcoder(&rb_from_ISO_8859_8);
 
2999
    rb_register_transcoder(&rb_from_ISO_8859_9);
 
3000
    rb_register_transcoder(&rb_from_ISO_8859_10);
 
3001
    rb_register_transcoder(&rb_from_ISO_8859_11);
 
3002
    rb_register_transcoder(&rb_from_ISO_8859_13);
 
3003
    rb_register_transcoder(&rb_from_ISO_8859_14);
 
3004
    rb_register_transcoder(&rb_from_ISO_8859_15);
 
3005
    rb_register_transcoder(&rb_to_ISO_8859_1);
 
3006
    rb_register_transcoder(&rb_to_ISO_8859_2);
 
3007
    rb_register_transcoder(&rb_to_ISO_8859_3);
 
3008
    rb_register_transcoder(&rb_to_ISO_8859_4);
 
3009
    rb_register_transcoder(&rb_to_ISO_8859_5);
 
3010
    rb_register_transcoder(&rb_to_ISO_8859_6);
 
3011
    rb_register_transcoder(&rb_to_ISO_8859_7);
 
3012
    rb_register_transcoder(&rb_to_ISO_8859_8);
 
3013
    rb_register_transcoder(&rb_to_ISO_8859_9);
 
3014
    rb_register_transcoder(&rb_to_ISO_8859_10);
 
3015
    rb_register_transcoder(&rb_to_ISO_8859_11);
 
3016
    rb_register_transcoder(&rb_to_ISO_8859_13);
 
3017
    rb_register_transcoder(&rb_to_ISO_8859_14);
 
3018
    rb_register_transcoder(&rb_to_ISO_8859_15);
 
3019
}
 
3020
/* Footprint (bytes): gross: 26788, saved: 3728, net: 23060 */