1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/enc/trans/single_byte.c
duerst 793e9423cd Fri Dec 28 01:55:04 2007 Martin Duerst <duerst@it.aoyama.ac.jp>
* transcode.c (transcode_dispatch): reverted some of the changes
          in r14746.

	* transcode.c, enc/trans/single_byte.c: Added conversions to/from
	  US-ASCII and ASCII-8BIT (using data tables).

	* enc/trans/single_byte.c: Some spacing/ordering changes due to
	  automatic data file generation.

	* transcode_data.h, transcode.c: Preliminary code for using
	  micro-conversion functions.

	* test/ruby/test_transcode.rb: Added some tests for US-ASCII and
	  ASCII-8BIT conversions.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14766 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-28 09:26:55 +00:00

3109 lines
120 KiB
C

#include "transcode_data.h"
static const unsigned char
from_US_ASCII_offsets[256] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
};
static const struct byte_lookup* const
from_US_ASCII_infos[2] = {
NOMAP, UNDEF,
};
static const BYTE_LOOKUP
from_US_ASCII = {
/* used from from_US_ASCII */
/* used from to_US_ASCII */
/* used from to_ASCII_8BIT */
/* used from from_ASCII_8BIT */
from_US_ASCII_offsets,
from_US_ASCII_infos
};
static rb_transcoder
rb_from_US_ASCII = {
"US-ASCII", "UTF-8", &from_US_ASCII, 1, 0,
NULL, NULL,
};
static rb_transcoder
rb_to_US_ASCII = {
"UTF-8", "US-ASCII", &from_US_ASCII, 1, 1,
NULL, NULL,
};
static rb_transcoder
rb_from_ASCII_8BIT = {
"ASCII-8BIT", "UTF-8", &from_US_ASCII, 1, 0,
NULL, NULL,
};
static rb_transcoder
rb_to_ASCII_8BIT = {
"UTF-8", "ASCII-8BIT", &from_US_ASCII, 1, 1,
NULL, NULL,
};
static const unsigned char
from_ISO_8859_1_offsets[256] = {
/* used from from_ISO_8859_1 */
/* used from from_ISO_8859_2 */
/* used from from_ISO_8859_4 */
/* used from from_ISO_8859_5 */
/* used from from_ISO_8859_9 */
/* used from from_ISO_8859_10 */
/* used from from_ISO_8859_13 */
/* used from from_ISO_8859_14 */
/* used from from_ISO_8859_15 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
97, 98, 99,100,101,102,103,104, 105,106,107,108,109,110,111,112,
113,114,115,116,117,118,119,120, 121,122,123,124,125,126,127,128,
};
static const struct byte_lookup* const
from_ISO_8859_1_infos[129] = {
NOMAP, o2(0xC2,0x80), o2(0xC2,0x81), o2(0xC2,0x82),
o2(0xC2,0x83), o2(0xC2,0x84), o2(0xC2,0x85), o2(0xC2,0x86),
o2(0xC2,0x87), o2(0xC2,0x88), o2(0xC2,0x89), o2(0xC2,0x8A),
o2(0xC2,0x8B), o2(0xC2,0x8C), o2(0xC2,0x8D), o2(0xC2,0x8E),
o2(0xC2,0x8F), o2(0xC2,0x90), o2(0xC2,0x91), o2(0xC2,0x92),
o2(0xC2,0x93), o2(0xC2,0x94), o2(0xC2,0x95), o2(0xC2,0x96),
o2(0xC2,0x97), o2(0xC2,0x98), o2(0xC2,0x99), o2(0xC2,0x9A),
o2(0xC2,0x9B), o2(0xC2,0x9C), o2(0xC2,0x9D), o2(0xC2,0x9E),
o2(0xC2,0x9F), o2(0xC2,0xA0), o2(0xC2,0xA1), o2(0xC2,0xA2),
o2(0xC2,0xA3), o2(0xC2,0xA4), o2(0xC2,0xA5), o2(0xC2,0xA6),
o2(0xC2,0xA7), o2(0xC2,0xA8), o2(0xC2,0xA9), o2(0xC2,0xAA),
o2(0xC2,0xAB), o2(0xC2,0xAC), o2(0xC2,0xAD), o2(0xC2,0xAE),
o2(0xC2,0xAF), o2(0xC2,0xB0), o2(0xC2,0xB1), o2(0xC2,0xB2),
o2(0xC2,0xB3), o2(0xC2,0xB4), o2(0xC2,0xB5), o2(0xC2,0xB6),
o2(0xC2,0xB7), o2(0xC2,0xB8), o2(0xC2,0xB9), o2(0xC2,0xBA),
o2(0xC2,0xBB), o2(0xC2,0xBC), o2(0xC2,0xBD), o2(0xC2,0xBE),
o2(0xC2,0xBF), o2(0xC3,0x80), o2(0xC3,0x81), o2(0xC3,0x82),
o2(0xC3,0x83), o2(0xC3,0x84), o2(0xC3,0x85), o2(0xC3,0x86),
o2(0xC3,0x87), o2(0xC3,0x88), o2(0xC3,0x89), o2(0xC3,0x8A),
o2(0xC3,0x8B), o2(0xC3,0x8C), o2(0xC3,0x8D), o2(0xC3,0x8E),
o2(0xC3,0x8F), o2(0xC3,0x90), o2(0xC3,0x91), o2(0xC3,0x92),
o2(0xC3,0x93), o2(0xC3,0x94), o2(0xC3,0x95), o2(0xC3,0x96),
o2(0xC3,0x97), o2(0xC3,0x98), o2(0xC3,0x99), o2(0xC3,0x9A),
o2(0xC3,0x9B), o2(0xC3,0x9C), o2(0xC3,0x9D), o2(0xC3,0x9E),
o2(0xC3,0x9F), o2(0xC3,0xA0), o2(0xC3,0xA1), o2(0xC3,0xA2),
o2(0xC3,0xA3), o2(0xC3,0xA4), o2(0xC3,0xA5), o2(0xC3,0xA6),
o2(0xC3,0xA7), o2(0xC3,0xA8), o2(0xC3,0xA9), o2(0xC3,0xAA),
o2(0xC3,0xAB), o2(0xC3,0xAC), o2(0xC3,0xAD), o2(0xC3,0xAE),
o2(0xC3,0xAF), o2(0xC3,0xB0), o2(0xC3,0xB1), o2(0xC3,0xB2),
o2(0xC3,0xB3), o2(0xC3,0xB4), o2(0xC3,0xB5), o2(0xC3,0xB6),
o2(0xC3,0xB7), o2(0xC3,0xB8), o2(0xC3,0xB9), o2(0xC3,0xBA),
o2(0xC3,0xBB), o2(0xC3,0xBC), o2(0xC3,0xBD), o2(0xC3,0xBE),
o2(0xC3,0xBF),
};
static const BYTE_LOOKUP
from_ISO_8859_1 = {
from_ISO_8859_1_offsets,
from_ISO_8859_1_infos
};
static rb_transcoder
rb_from_ISO_8859_1 = {
"ISO-8859-1", "UTF-8", &from_ISO_8859_1, 2, 0,
NULL, NULL,
};
static const unsigned char
to_ISO_8859_1_C2_offsets[64] = {
/* used from to_ISO_8859_1_C2 */
/* used from to_ISO_8859_1_C3 */
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
};
static const struct byte_lookup* const
to_ISO_8859_1_C2_infos[64] = {
o1(0x80), o1(0x81), o1(0x82), o1(0x83),
o1(0x84), o1(0x85), o1(0x86), o1(0x87),
o1(0x88), o1(0x89), o1(0x8A), o1(0x8B),
o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F),
o1(0x90), o1(0x91), o1(0x92), o1(0x93),
o1(0x94), o1(0x95), o1(0x96), o1(0x97),
o1(0x98), o1(0x99), o1(0x9A), o1(0x9B),
o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F),
o1(0xA0), o1(0xA1), o1(0xA2), o1(0xA3),
o1(0xA4), o1(0xA5), o1(0xA6), o1(0xA7),
o1(0xA8), o1(0xA9), o1(0xAA), o1(0xAB),
o1(0xAC), o1(0xAD), o1(0xAE), o1(0xAF),
o1(0xB0), o1(0xB1), o1(0xB2), o1(0xB3),
o1(0xB4), o1(0xB5), o1(0xB6), o1(0xB7),
o1(0xB8), o1(0xB9), o1(0xBA), o1(0xBB),
o1(0xBC), o1(0xBD), o1(0xBE), o1(0xBF),
};
static const BYTE_LOOKUP
to_ISO_8859_1_C2 = {
/* used from to_ISO_8859_1 */
/* used from to_ISO_8859_9 */
to_ISO_8859_1_C2_offsets,
to_ISO_8859_1_C2_infos
};
static const struct byte_lookup* const
to_ISO_8859_1_C3_infos[64] = {
o1(0xC0), o1(0xC1), o1(0xC2), o1(0xC3),
o1(0xC4), o1(0xC5), o1(0xC6), o1(0xC7),
o1(0xC8), o1(0xC9), o1(0xCA), o1(0xCB),
o1(0xCC), o1(0xCD), o1(0xCE), o1(0xCF),
o1(0xD0), o1(0xD1), o1(0xD2), o1(0xD3),
o1(0xD4), o1(0xD5), o1(0xD6), o1(0xD7),
o1(0xD8), o1(0xD9), o1(0xDA), o1(0xDB),
o1(0xDC), o1(0xDD), o1(0xDE), o1(0xDF),
o1(0xE0), o1(0xE1), o1(0xE2), o1(0xE3),
o1(0xE4), o1(0xE5), o1(0xE6), o1(0xE7),
o1(0xE8), o1(0xE9), o1(0xEA), o1(0xEB),
o1(0xEC), o1(0xED), o1(0xEE), o1(0xEF),
o1(0xF0), o1(0xF1), o1(0xF2), o1(0xF3),
o1(0xF4), o1(0xF5), o1(0xF6), o1(0xF7),
o1(0xF8), o1(0xF9), o1(0xFA), o1(0xFB),
o1(0xFC), o1(0xFD), o1(0xFE), o1(0xFF),
};
static const BYTE_LOOKUP
to_ISO_8859_1_C3 = {
/* used from to_ISO_8859_1 */
/* used from to_ISO_8859_15 */
to_ISO_8859_1_C2_offsets,
to_ISO_8859_1_C3_infos
};
static const unsigned char
to_ISO_8859_1_offsets[256] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
};
static const struct byte_lookup* const
to_ISO_8859_1_infos[4] = {
NOMAP, &to_ISO_8859_1_C2,
&to_ISO_8859_1_C3, UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_1 = {
to_ISO_8859_1_offsets,
to_ISO_8859_1_infos
};
static rb_transcoder
rb_to_ISO_8859_1 = {
"UTF-8", "ISO-8859-1", &to_ISO_8859_1, 1, 1,
NULL, NULL,
};
static const struct byte_lookup* const
from_ISO_8859_2_infos[129] = {
NOMAP, o2(0xC2,0x80), o2(0xC2,0x81), o2(0xC2,0x82),
o2(0xC2,0x83), o2(0xC2,0x84), o2(0xC2,0x85), o2(0xC2,0x86),
o2(0xC2,0x87), o2(0xC2,0x88), o2(0xC2,0x89), o2(0xC2,0x8A),
o2(0xC2,0x8B), o2(0xC2,0x8C), o2(0xC2,0x8D), o2(0xC2,0x8E),
o2(0xC2,0x8F), o2(0xC2,0x90), o2(0xC2,0x91), o2(0xC2,0x92),
o2(0xC2,0x93), o2(0xC2,0x94), o2(0xC2,0x95), o2(0xC2,0x96),
o2(0xC2,0x97), o2(0xC2,0x98), o2(0xC2,0x99), o2(0xC2,0x9A),
o2(0xC2,0x9B), o2(0xC2,0x9C), o2(0xC2,0x9D), o2(0xC2,0x9E),
o2(0xC2,0x9F), o2(0xC2,0xA0), o2(0xC4,0x84), o2(0xCB,0x98),
o2(0xC5,0x81), o2(0xC2,0xA4), o2(0xC4,0xBD), o2(0xC5,0x9A),
o2(0xC2,0xA7), o2(0xC2,0xA8), o2(0xC5,0xA0), o2(0xC5,0x9E),
o2(0xC5,0xA4), o2(0xC5,0xB9), o2(0xC2,0xAD), o2(0xC5,0xBD),
o2(0xC5,0xBB), o2(0xC2,0xB0), o2(0xC4,0x85), o2(0xCB,0x9B),
o2(0xC5,0x82), o2(0xC2,0xB4), o2(0xC4,0xBE), o2(0xC5,0x9B),
o2(0xCB,0x87), o2(0xC2,0xB8), o2(0xC5,0xA1), o2(0xC5,0x9F),
o2(0xC5,0xA5), o2(0xC5,0xBA), o2(0xCB,0x9D), o2(0xC5,0xBE),
o2(0xC5,0xBC), o2(0xC5,0x94), o2(0xC3,0x81), o2(0xC3,0x82),
o2(0xC4,0x82), o2(0xC3,0x84), o2(0xC4,0xB9), o2(0xC4,0x86),
o2(0xC3,0x87), o2(0xC4,0x8C), o2(0xC3,0x89), o2(0xC4,0x98),
o2(0xC3,0x8B), o2(0xC4,0x9A), o2(0xC3,0x8D), o2(0xC3,0x8E),
o2(0xC4,0x8E), o2(0xC4,0x90), o2(0xC5,0x83), o2(0xC5,0x87),
o2(0xC3,0x93), o2(0xC3,0x94), o2(0xC5,0x90), o2(0xC3,0x96),
o2(0xC3,0x97), o2(0xC5,0x98), o2(0xC5,0xAE), o2(0xC3,0x9A),
o2(0xC5,0xB0), o2(0xC3,0x9C), o2(0xC3,0x9D), o2(0xC5,0xA2),
o2(0xC3,0x9F), o2(0xC5,0x95), o2(0xC3,0xA1), o2(0xC3,0xA2),
o2(0xC4,0x83), o2(0xC3,0xA4), o2(0xC4,0xBA), o2(0xC4,0x87),
o2(0xC3,0xA7), o2(0xC4,0x8D), o2(0xC3,0xA9), o2(0xC4,0x99),
o2(0xC3,0xAB), o2(0xC4,0x9B), o2(0xC3,0xAD), o2(0xC3,0xAE),
o2(0xC4,0x8F), o2(0xC4,0x91), o2(0xC5,0x84), o2(0xC5,0x88),
o2(0xC3,0xB3), o2(0xC3,0xB4), o2(0xC5,0x91), o2(0xC3,0xB6),
o2(0xC3,0xB7), o2(0xC5,0x99), o2(0xC5,0xAF), o2(0xC3,0xBA),
o2(0xC5,0xB1), o2(0xC3,0xBC), o2(0xC3,0xBD), o2(0xC5,0xA3),
o2(0xCB,0x99),
};
static const BYTE_LOOKUP
from_ISO_8859_2 = {
from_ISO_8859_1_offsets,
from_ISO_8859_2_infos
};
static rb_transcoder
rb_from_ISO_8859_2 = {
"ISO-8859-2", "UTF-8", &from_ISO_8859_2, 2, 0,
NULL, NULL,
};
static const unsigned char
to_ISO_8859_2_C2_offsets[64] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 40, 40, 40, 33, 40, 40, 34, 35, 40, 40, 40, 40, 36, 40, 40,
37, 40, 40, 40, 38, 40, 40, 40, 39, 40, 40, 40, 40, 40, 40, 40,
};
static const struct byte_lookup* const
to_ISO_8859_2_C2_infos[41] = {
o1(0x80), o1(0x81), o1(0x82), o1(0x83),
o1(0x84), o1(0x85), o1(0x86), o1(0x87),
o1(0x88), o1(0x89), o1(0x8A), o1(0x8B),
o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F),
o1(0x90), o1(0x91), o1(0x92), o1(0x93),
o1(0x94), o1(0x95), o1(0x96), o1(0x97),
o1(0x98), o1(0x99), o1(0x9A), o1(0x9B),
o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F),
o1(0xA0), o1(0xA4), o1(0xA7), o1(0xA8),
o1(0xAD), o1(0xB0), o1(0xB4), o1(0xB8),
UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_2_C2 = {
to_ISO_8859_2_C2_offsets,
to_ISO_8859_2_C2_infos
};
static const unsigned char
to_ISO_8859_2_C3_offsets[64] = {
31, 0, 1, 31, 2, 31, 31, 3, 31, 4, 31, 5, 31, 6, 7, 31,
31, 31, 31, 8, 9, 31, 10, 11, 31, 31, 12, 31, 13, 14, 31, 15,
31, 16, 17, 31, 18, 31, 31, 19, 31, 20, 31, 21, 31, 22, 23, 31,
31, 31, 31, 24, 25, 31, 26, 27, 31, 31, 28, 31, 29, 30, 31, 31,
};
static const struct byte_lookup* const
to_ISO_8859_2_C3_infos[32] = {
o1(0xC1), o1(0xC2), o1(0xC4), o1(0xC7),
o1(0xC9), o1(0xCB), o1(0xCD), o1(0xCE),
o1(0xD3), o1(0xD4), o1(0xD6), o1(0xD7),
o1(0xDA), o1(0xDC), o1(0xDD), o1(0xDF),
o1(0xE1), o1(0xE2), o1(0xE4), o1(0xE7),
o1(0xE9), o1(0xEB), o1(0xED), o1(0xEE),
o1(0xF3), o1(0xF4), o1(0xF6), o1(0xF7),
o1(0xFA), o1(0xFC), o1(0xFD), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_2_C3 = {
to_ISO_8859_2_C3_offsets,
to_ISO_8859_2_C3_infos
};
static const unsigned char
to_ISO_8859_2_C4_offsets[64] = {
20, 20, 0, 1, 2, 3, 4, 5, 20, 20, 20, 20, 6, 7, 8, 9,
10, 11, 20, 20, 20, 20, 20, 20, 12, 13, 14, 15, 20, 20, 20, 20,
20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
20, 20, 20, 20, 20, 20, 20, 20, 20, 16, 17, 20, 20, 18, 19, 20,
};
static const struct byte_lookup* const
to_ISO_8859_2_C4_infos[21] = {
o1(0xC3), o1(0xE3), o1(0xA1), o1(0xB1),
o1(0xC6), o1(0xE6), o1(0xC8), o1(0xE8),
o1(0xCF), o1(0xEF), o1(0xD0), o1(0xF0),
o1(0xCA), o1(0xEA), o1(0xCC), o1(0xEC),
o1(0xC5), o1(0xE5), o1(0xA5), o1(0xB5),
UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_2_C4 = {
to_ISO_8859_2_C4_offsets,
to_ISO_8859_2_C4_infos
};
static const unsigned char
to_ISO_8859_2_C5_offsets[64] = {
32, 0, 1, 2, 3, 32, 32, 4, 5, 32, 32, 32, 32, 32, 32, 32,
6, 7, 32, 32, 8, 9, 32, 32, 10, 11, 12, 13, 32, 32, 14, 15,
16, 17, 18, 19, 20, 21, 32, 32, 32, 32, 32, 32, 32, 32, 22, 23,
24, 25, 32, 32, 32, 32, 32, 32, 32, 26, 27, 28, 29, 30, 31, 32,
};
static const struct byte_lookup* const
to_ISO_8859_2_C5_infos[33] = {
o1(0xA3), o1(0xB3), o1(0xD1), o1(0xF1),
o1(0xD2), o1(0xF2), o1(0xD5), o1(0xF5),
o1(0xC0), o1(0xE0), o1(0xD8), o1(0xF8),
o1(0xA6), o1(0xB6), o1(0xAA), o1(0xBA),
o1(0xA9), o1(0xB9), o1(0xDE), o1(0xFE),
o1(0xAB), o1(0xBB), o1(0xD9), o1(0xF9),
o1(0xDB), o1(0xFB), o1(0xAC), o1(0xBC),
o1(0xAF), o1(0xBF), o1(0xAE), o1(0xBE),
UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_2_C5 = {
to_ISO_8859_2_C5_offsets,
to_ISO_8859_2_C5_infos
};
static const unsigned char
to_ISO_8859_2_CB_offsets[64] = {
5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 1, 2, 5, 3, 5, 4, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
};
static const struct byte_lookup* const
to_ISO_8859_2_CB_infos[6] = {
o1(0xB7), o1(0xA2), o1(0xFF), o1(0xB2),
o1(0xBD), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_2_CB = {
to_ISO_8859_2_CB_offsets,
to_ISO_8859_2_CB_infos
};
static const unsigned char
to_ISO_8859_2_offsets[256] = {
/* used from to_ISO_8859_2 */
/* used from to_ISO_8859_3 */
/* used from to_ISO_8859_4 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 1, 2, 3, 4, 6, 6, 6, 6, 6, 5, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
};
static const struct byte_lookup* const
to_ISO_8859_2_infos[7] = {
NOMAP, &to_ISO_8859_2_C2,
&to_ISO_8859_2_C3, &to_ISO_8859_2_C4,
&to_ISO_8859_2_C5, &to_ISO_8859_2_CB,
UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_2 = {
to_ISO_8859_2_offsets,
to_ISO_8859_2_infos
};
static rb_transcoder
rb_to_ISO_8859_2 = {
"UTF-8", "ISO-8859-2", &to_ISO_8859_2, 1, 1,
NULL, NULL,
};
static const unsigned char
from_ISO_8859_3_offsets[256] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 35, 36, 37,122, 38, 39, 40, 41, 42, 43, 44, 45,122, 46,
47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,122, 61,
62, 63, 64,122, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
122, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
92, 93, 94,122, 95, 96, 97, 98, 99,100,101,102,103,104,105,106,
122,107,108,109,110,111,112,113, 114,115,116,117,118,119,120,121,
};
static const struct byte_lookup* const
from_ISO_8859_3_infos[123] = {
NOMAP, o2(0xC2,0x80), o2(0xC2,0x81), o2(0xC2,0x82),
o2(0xC2,0x83), o2(0xC2,0x84), o2(0xC2,0x85), o2(0xC2,0x86),
o2(0xC2,0x87), o2(0xC2,0x88), o2(0xC2,0x89), o2(0xC2,0x8A),
o2(0xC2,0x8B), o2(0xC2,0x8C), o2(0xC2,0x8D), o2(0xC2,0x8E),
o2(0xC2,0x8F), o2(0xC2,0x90), o2(0xC2,0x91), o2(0xC2,0x92),
o2(0xC2,0x93), o2(0xC2,0x94), o2(0xC2,0x95), o2(0xC2,0x96),
o2(0xC2,0x97), o2(0xC2,0x98), o2(0xC2,0x99), o2(0xC2,0x9A),
o2(0xC2,0x9B), o2(0xC2,0x9C), o2(0xC2,0x9D), o2(0xC2,0x9E),
o2(0xC2,0x9F), o2(0xC2,0xA0), o2(0xC4,0xA6), o2(0xCB,0x98),
o2(0xC2,0xA3), o2(0xC2,0xA4), o2(0xC4,0xA4), o2(0xC2,0xA7),
o2(0xC2,0xA8), o2(0xC4,0xB0), o2(0xC5,0x9E), o2(0xC4,0x9E),
o2(0xC4,0xB4), o2(0xC2,0xAD), o2(0xC5,0xBB), o2(0xC2,0xB0),
o2(0xC4,0xA7), o2(0xC2,0xB2), o2(0xC2,0xB3), o2(0xC2,0xB4),
o2(0xC2,0xB5), o2(0xC4,0xA5), o2(0xC2,0xB7), o2(0xC2,0xB8),
o2(0xC4,0xB1), o2(0xC5,0x9F), o2(0xC4,0x9F), o2(0xC4,0xB5),
o2(0xC2,0xBD), o2(0xC5,0xBC), o2(0xC3,0x80), o2(0xC3,0x81),
o2(0xC3,0x82), o2(0xC3,0x84), o2(0xC4,0x8A), o2(0xC4,0x88),
o2(0xC3,0x87), o2(0xC3,0x88), o2(0xC3,0x89), o2(0xC3,0x8A),
o2(0xC3,0x8B), o2(0xC3,0x8C), o2(0xC3,0x8D), o2(0xC3,0x8E),
o2(0xC3,0x8F), o2(0xC3,0x91), o2(0xC3,0x92), o2(0xC3,0x93),
o2(0xC3,0x94), o2(0xC4,0xA0), o2(0xC3,0x96), o2(0xC3,0x97),
o2(0xC4,0x9C), o2(0xC3,0x99), o2(0xC3,0x9A), o2(0xC3,0x9B),
o2(0xC3,0x9C), o2(0xC5,0xAC), o2(0xC5,0x9C), o2(0xC3,0x9F),
o2(0xC3,0xA0), o2(0xC3,0xA1), o2(0xC3,0xA2), o2(0xC3,0xA4),
o2(0xC4,0x8B), o2(0xC4,0x89), o2(0xC3,0xA7), o2(0xC3,0xA8),
o2(0xC3,0xA9), o2(0xC3,0xAA), o2(0xC3,0xAB), o2(0xC3,0xAC),
o2(0xC3,0xAD), o2(0xC3,0xAE), o2(0xC3,0xAF), o2(0xC3,0xB1),
o2(0xC3,0xB2), o2(0xC3,0xB3), o2(0xC3,0xB4), o2(0xC4,0xA1),
o2(0xC3,0xB6), o2(0xC3,0xB7), o2(0xC4,0x9D), o2(0xC3,0xB9),
o2(0xC3,0xBA), o2(0xC3,0xBB), o2(0xC3,0xBC), o2(0xC5,0xAD),
o2(0xC5,0x9D), o2(0xCB,0x99), UNDEF,
};
static const BYTE_LOOKUP
from_ISO_8859_3 = {
from_ISO_8859_3_offsets,
from_ISO_8859_3_infos
};
static rb_transcoder
rb_from_ISO_8859_3 = {
"ISO-8859-3", "UTF-8", &from_ISO_8859_3, 2, 0,
NULL, NULL,
};
static const unsigned char
to_ISO_8859_3_C2_offsets[64] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 46, 46, 33, 34, 46, 46, 35, 36, 46, 46, 46, 46, 37, 46, 46,
38, 46, 39, 40, 41, 42, 46, 43, 44, 46, 46, 46, 46, 45, 46, 46,
};
static const struct byte_lookup* const
to_ISO_8859_3_C2_infos[47] = {
o1(0x80), o1(0x81), o1(0x82), o1(0x83),
o1(0x84), o1(0x85), o1(0x86), o1(0x87),
o1(0x88), o1(0x89), o1(0x8A), o1(0x8B),
o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F),
o1(0x90), o1(0x91), o1(0x92), o1(0x93),
o1(0x94), o1(0x95), o1(0x96), o1(0x97),
o1(0x98), o1(0x99), o1(0x9A), o1(0x9B),
o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F),
o1(0xA0), o1(0xA3), o1(0xA4), o1(0xA7),
o1(0xA8), o1(0xAD), o1(0xB0), o1(0xB2),
o1(0xB3), o1(0xB4), o1(0xB5), o1(0xB7),
o1(0xB8), o1(0xBD), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_3_C2 = {
to_ISO_8859_3_C2_offsets,
to_ISO_8859_3_C2_infos
};
static const unsigned char
to_ISO_8859_3_C3_offsets[64] = {
0, 1, 2, 47, 3, 47, 47, 4, 5, 6, 7, 8, 9, 10, 11, 12,
47, 13, 14, 15, 16, 47, 17, 18, 47, 19, 20, 21, 22, 47, 47, 23,
24, 25, 26, 47, 27, 47, 47, 28, 29, 30, 31, 32, 33, 34, 35, 36,
47, 37, 38, 39, 40, 47, 41, 42, 47, 43, 44, 45, 46, 47, 47, 47,
};
static const struct byte_lookup* const
to_ISO_8859_3_C3_infos[48] = {
o1(0xC0), o1(0xC1), o1(0xC2), o1(0xC4),
o1(0xC7), o1(0xC8), o1(0xC9), o1(0xCA),
o1(0xCB), o1(0xCC), o1(0xCD), o1(0xCE),
o1(0xCF), o1(0xD1), o1(0xD2), o1(0xD3),
o1(0xD4), o1(0xD6), o1(0xD7), o1(0xD9),
o1(0xDA), o1(0xDB), o1(0xDC), o1(0xDF),
o1(0xE0), o1(0xE1), o1(0xE2), o1(0xE4),
o1(0xE7), o1(0xE8), o1(0xE9), o1(0xEA),
o1(0xEB), o1(0xEC), o1(0xED), o1(0xEE),
o1(0xEF), o1(0xF1), o1(0xF2), o1(0xF3),
o1(0xF4), o1(0xF6), o1(0xF7), o1(0xF9),
o1(0xFA), o1(0xFB), o1(0xFC), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_3_C3 = {
to_ISO_8859_3_C3_offsets,
to_ISO_8859_3_C3_infos
};
static const unsigned char
to_ISO_8859_3_C4_offsets[64] = {
18, 18, 18, 18, 18, 18, 18, 18, 0, 1, 2, 3, 18, 18, 18, 18,
18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 4, 5, 6, 7,
8, 9, 18, 18, 10, 11, 12, 13, 18, 18, 18, 18, 18, 18, 18, 18,
14, 15, 18, 18, 16, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
};
static const struct byte_lookup* const
to_ISO_8859_3_C4_infos[19] = {
o1(0xC6), o1(0xE6), o1(0xC5), o1(0xE5),
o1(0xD8), o1(0xF8), o1(0xAB), o1(0xBB),
o1(0xD5), o1(0xF5), o1(0xA6), o1(0xB6),
o1(0xA1), o1(0xB1), o1(0xA9), o1(0xB9),
o1(0xAC), o1(0xBC), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_3_C4 = {
to_ISO_8859_3_C4_offsets,
to_ISO_8859_3_C4_infos
};
static const unsigned char
to_ISO_8859_3_C5_offsets[64] = {
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 0, 1, 2, 3,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 4, 5, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 6, 7, 8, 8, 8,
};
static const struct byte_lookup* const
to_ISO_8859_3_C5_infos[9] = {
o1(0xDE), o1(0xFE), o1(0xAA), o1(0xBA),
o1(0xDD), o1(0xFD), o1(0xAF), o1(0xBF),
UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_3_C5 = {
to_ISO_8859_3_C5_offsets,
to_ISO_8859_3_C5_infos
};
static const unsigned char
to_ISO_8859_3_CB_offsets[64] = {
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 0, 1, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
};
static const struct byte_lookup* const
to_ISO_8859_3_CB_infos[3] = {
o1(0xA2), o1(0xFF), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_3_CB = {
to_ISO_8859_3_CB_offsets,
to_ISO_8859_3_CB_infos
};
static const struct byte_lookup* const
to_ISO_8859_3_infos[7] = {
NOMAP, &to_ISO_8859_3_C2,
&to_ISO_8859_3_C3, &to_ISO_8859_3_C4,
&to_ISO_8859_3_C5, &to_ISO_8859_3_CB,
UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_3 = {
to_ISO_8859_2_offsets,
to_ISO_8859_3_infos
};
static rb_transcoder
rb_to_ISO_8859_3 = {
"UTF-8", "ISO-8859-3", &to_ISO_8859_3, 1, 1,
NULL, NULL,
};
static const struct byte_lookup* const
from_ISO_8859_4_infos[129] = {
NOMAP, o2(0xC2,0x80), o2(0xC2,0x81), o2(0xC2,0x82),
o2(0xC2,0x83), o2(0xC2,0x84), o2(0xC2,0x85), o2(0xC2,0x86),
o2(0xC2,0x87), o2(0xC2,0x88), o2(0xC2,0x89), o2(0xC2,0x8A),
o2(0xC2,0x8B), o2(0xC2,0x8C), o2(0xC2,0x8D), o2(0xC2,0x8E),
o2(0xC2,0x8F), o2(0xC2,0x90), o2(0xC2,0x91), o2(0xC2,0x92),
o2(0xC2,0x93), o2(0xC2,0x94), o2(0xC2,0x95), o2(0xC2,0x96),
o2(0xC2,0x97), o2(0xC2,0x98), o2(0xC2,0x99), o2(0xC2,0x9A),
o2(0xC2,0x9B), o2(0xC2,0x9C), o2(0xC2,0x9D), o2(0xC2,0x9E),
o2(0xC2,0x9F), o2(0xC2,0xA0), o2(0xC4,0x84), o2(0xC4,0xB8),
o2(0xC5,0x96), o2(0xC2,0xA4), o2(0xC4,0xA8), o2(0xC4,0xBB),
o2(0xC2,0xA7), o2(0xC2,0xA8), o2(0xC5,0xA0), o2(0xC4,0x92),
o2(0xC4,0xA2), o2(0xC5,0xA6), o2(0xC2,0xAD), o2(0xC5,0xBD),
o2(0xC2,0xAF), o2(0xC2,0xB0), o2(0xC4,0x85), o2(0xCB,0x9B),
o2(0xC5,0x97), o2(0xC2,0xB4), o2(0xC4,0xA9), o2(0xC4,0xBC),
o2(0xCB,0x87), o2(0xC2,0xB8), o2(0xC5,0xA1), o2(0xC4,0x93),
o2(0xC4,0xA3), o2(0xC5,0xA7), o2(0xC5,0x8A), o2(0xC5,0xBE),
o2(0xC5,0x8B), o2(0xC4,0x80), o2(0xC3,0x81), o2(0xC3,0x82),
o2(0xC3,0x83), o2(0xC3,0x84), o2(0xC3,0x85), o2(0xC3,0x86),
o2(0xC4,0xAE), o2(0xC4,0x8C), o2(0xC3,0x89), o2(0xC4,0x98),
o2(0xC3,0x8B), o2(0xC4,0x96), o2(0xC3,0x8D), o2(0xC3,0x8E),
o2(0xC4,0xAA), o2(0xC4,0x90), o2(0xC5,0x85), o2(0xC5,0x8C),
o2(0xC4,0xB6), o2(0xC3,0x94), o2(0xC3,0x95), o2(0xC3,0x96),
o2(0xC3,0x97), o2(0xC3,0x98), o2(0xC5,0xB2), o2(0xC3,0x9A),
o2(0xC3,0x9B), o2(0xC3,0x9C), o2(0xC5,0xA8), o2(0xC5,0xAA),
o2(0xC3,0x9F), o2(0xC4,0x81), o2(0xC3,0xA1), o2(0xC3,0xA2),
o2(0xC3,0xA3), o2(0xC3,0xA4), o2(0xC3,0xA5), o2(0xC3,0xA6),
o2(0xC4,0xAF), o2(0xC4,0x8D), o2(0xC3,0xA9), o2(0xC4,0x99),
o2(0xC3,0xAB), o2(0xC4,0x97), o2(0xC3,0xAD), o2(0xC3,0xAE),
o2(0xC4,0xAB), o2(0xC4,0x91), o2(0xC5,0x86), o2(0xC5,0x8D),
o2(0xC4,0xB7), o2(0xC3,0xB4), o2(0xC3,0xB5), o2(0xC3,0xB6),
o2(0xC3,0xB7), o2(0xC3,0xB8), o2(0xC5,0xB3), o2(0xC3,0xBA),
o2(0xC3,0xBB), o2(0xC3,0xBC), o2(0xC5,0xA9), o2(0xC5,0xAB),
o2(0xCB,0x99),
};
static const BYTE_LOOKUP
from_ISO_8859_4 = {
from_ISO_8859_1_offsets,
from_ISO_8859_4_infos
};
static rb_transcoder
rb_from_ISO_8859_4 = {
"ISO-8859-4", "UTF-8", &from_ISO_8859_4, 2, 0,
NULL, NULL,
};
static const unsigned char
to_ISO_8859_4_C2_offsets[64] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 41, 41, 41, 33, 41, 41, 34, 35, 41, 41, 41, 41, 36, 41, 37,
38, 41, 41, 41, 39, 41, 41, 41, 40, 41, 41, 41, 41, 41, 41, 41,
};
static const struct byte_lookup* const
to_ISO_8859_4_C2_infos[42] = {
o1(0x80), o1(0x81), o1(0x82), o1(0x83),
o1(0x84), o1(0x85), o1(0x86), o1(0x87),
o1(0x88), o1(0x89), o1(0x8A), o1(0x8B),
o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F),
o1(0x90), o1(0x91), o1(0x92), o1(0x93),
o1(0x94), o1(0x95), o1(0x96), o1(0x97),
o1(0x98), o1(0x99), o1(0x9A), o1(0x9B),
o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F),
o1(0xA0), o1(0xA4), o1(0xA7), o1(0xA8),
o1(0xAD), o1(0xAF), o1(0xB0), o1(0xB4),
o1(0xB8), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_4_C2 = {
to_ISO_8859_4_C2_offsets,
to_ISO_8859_4_C2_infos
};
static const unsigned char
to_ISO_8859_4_C3_offsets[64] = {
37, 0, 1, 2, 3, 4, 5, 37, 37, 6, 37, 7, 37, 8, 9, 37,
37, 37, 37, 37, 10, 11, 12, 13, 14, 37, 15, 16, 17, 37, 37, 18,
37, 19, 20, 21, 22, 23, 24, 37, 37, 25, 37, 26, 37, 27, 28, 37,
37, 37, 37, 37, 29, 30, 31, 32, 33, 37, 34, 35, 36, 37, 37, 37,
};
static const struct byte_lookup* const
to_ISO_8859_4_C3_infos[38] = {
o1(0xC1), o1(0xC2), o1(0xC3), o1(0xC4),
o1(0xC5), o1(0xC6), o1(0xC9), o1(0xCB),
o1(0xCD), o1(0xCE), o1(0xD4), o1(0xD5),
o1(0xD6), o1(0xD7), o1(0xD8), o1(0xDA),
o1(0xDB), o1(0xDC), o1(0xDF), o1(0xE1),
o1(0xE2), o1(0xE3), o1(0xE4), o1(0xE5),
o1(0xE6), o1(0xE9), o1(0xEB), o1(0xED),
o1(0xEE), o1(0xF4), o1(0xF5), o1(0xF6),
o1(0xF7), o1(0xF8), o1(0xFA), o1(0xFB),
o1(0xFC), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_4_C3 = {
to_ISO_8859_4_C3_offsets,
to_ISO_8859_4_C3_infos
};
static const unsigned char
to_ISO_8859_4_C4_offsets[64] = {
/* used from to_ISO_8859_4_C4 */
/* used from to_ISO_8859_10_C4 */
0, 1, 27, 27, 2, 3, 27, 27, 27, 27, 27, 27, 4, 5, 27, 27,
6, 7, 8, 9, 27, 27, 10, 11, 12, 13, 27, 27, 27, 27, 27, 27,
27, 27, 14, 15, 27, 27, 27, 27, 16, 17, 18, 19, 27, 27, 20, 21,
27, 27, 27, 27, 27, 27, 22, 23, 24, 27, 27, 25, 26, 27, 27, 27,
};
static const struct byte_lookup* const
to_ISO_8859_4_C4_infos[28] = {
o1(0xC0), o1(0xE0), o1(0xA1), o1(0xB1),
o1(0xC8), o1(0xE8), o1(0xD0), o1(0xF0),
o1(0xAA), o1(0xBA), o1(0xCC), o1(0xEC),
o1(0xCA), o1(0xEA), o1(0xAB), o1(0xBB),
o1(0xA5), o1(0xB5), o1(0xCF), o1(0xEF),
o1(0xC7), o1(0xE7), o1(0xD3), o1(0xF3),
o1(0xA2), o1(0xA6), o1(0xB6), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_4_C4 = {
to_ISO_8859_4_C4_offsets,
to_ISO_8859_4_C4_infos
};
static const unsigned char
to_ISO_8859_4_C5_offsets[64] = {
20, 20, 20, 20, 20, 0, 1, 20, 20, 20, 2, 3, 4, 5, 20, 20,
20, 20, 20, 20, 20, 20, 6, 7, 20, 20, 20, 20, 20, 20, 20, 20,
8, 9, 20, 20, 20, 20, 10, 11, 12, 13, 14, 15, 20, 20, 20, 20,
20, 20, 16, 17, 20, 20, 20, 20, 20, 20, 20, 20, 20, 18, 19, 20,
};
static const struct byte_lookup* const
to_ISO_8859_4_C5_infos[21] = {
o1(0xD1), o1(0xF1), o1(0xBD), o1(0xBF),
o1(0xD2), o1(0xF2), o1(0xA3), o1(0xB3),
o1(0xA9), o1(0xB9), o1(0xAC), o1(0xBC),
o1(0xDD), o1(0xFD), o1(0xDE), o1(0xFE),
o1(0xD9), o1(0xF9), o1(0xAE), o1(0xBE),
UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_4_C5 = {
to_ISO_8859_4_C5_offsets,
to_ISO_8859_4_C5_infos
};
static const unsigned char
to_ISO_8859_4_CB_offsets[64] = {
3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 2, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
};
static const struct byte_lookup* const
to_ISO_8859_4_CB_infos[4] = {
o1(0xB7), o1(0xFF), o1(0xB2), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_4_CB = {
to_ISO_8859_4_CB_offsets,
to_ISO_8859_4_CB_infos
};
static const struct byte_lookup* const
to_ISO_8859_4_infos[7] = {
NOMAP, &to_ISO_8859_4_C2,
&to_ISO_8859_4_C3, &to_ISO_8859_4_C4,
&to_ISO_8859_4_C5, &to_ISO_8859_4_CB,
UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_4 = {
to_ISO_8859_2_offsets,
to_ISO_8859_4_infos
};
static rb_transcoder
rb_to_ISO_8859_4 = {
"UTF-8", "ISO-8859-4", &to_ISO_8859_4, 1, 1,
NULL, NULL,
};
static const struct byte_lookup* const
from_ISO_8859_5_infos[129] = {
NOMAP, o2(0xC2,0x80),
o2(0xC2,0x81), o2(0xC2,0x82),
o2(0xC2,0x83), o2(0xC2,0x84),
o2(0xC2,0x85), o2(0xC2,0x86),
o2(0xC2,0x87), o2(0xC2,0x88),
o2(0xC2,0x89), o2(0xC2,0x8A),
o2(0xC2,0x8B), o2(0xC2,0x8C),
o2(0xC2,0x8D), o2(0xC2,0x8E),
o2(0xC2,0x8F), o2(0xC2,0x90),
o2(0xC2,0x91), o2(0xC2,0x92),
o2(0xC2,0x93), o2(0xC2,0x94),
o2(0xC2,0x95), o2(0xC2,0x96),
o2(0xC2,0x97), o2(0xC2,0x98),
o2(0xC2,0x99), o2(0xC2,0x9A),
o2(0xC2,0x9B), o2(0xC2,0x9C),
o2(0xC2,0x9D), o2(0xC2,0x9E),
o2(0xC2,0x9F), o2(0xC2,0xA0),
o2(0xD0,0x81), o2(0xD0,0x82),
o2(0xD0,0x83), o2(0xD0,0x84),
o2(0xD0,0x85), o2(0xD0,0x86),
o2(0xD0,0x87), o2(0xD0,0x88),
o2(0xD0,0x89), o2(0xD0,0x8A),
o2(0xD0,0x8B), o2(0xD0,0x8C),
o2(0xC2,0xAD), o2(0xD0,0x8E),
o2(0xD0,0x8F), o2(0xD0,0x90),
o2(0xD0,0x91), o2(0xD0,0x92),
o2(0xD0,0x93), o2(0xD0,0x94),
o2(0xD0,0x95), o2(0xD0,0x96),
o2(0xD0,0x97), o2(0xD0,0x98),
o2(0xD0,0x99), o2(0xD0,0x9A),
o2(0xD0,0x9B), o2(0xD0,0x9C),
o2(0xD0,0x9D), o2(0xD0,0x9E),
o2(0xD0,0x9F), o2(0xD0,0xA0),
o2(0xD0,0xA1), o2(0xD0,0xA2),
o2(0xD0,0xA3), o2(0xD0,0xA4),
o2(0xD0,0xA5), o2(0xD0,0xA6),
o2(0xD0,0xA7), o2(0xD0,0xA8),
o2(0xD0,0xA9), o2(0xD0,0xAA),
o2(0xD0,0xAB), o2(0xD0,0xAC),
o2(0xD0,0xAD), o2(0xD0,0xAE),
o2(0xD0,0xAF), o2(0xD0,0xB0),
o2(0xD0,0xB1), o2(0xD0,0xB2),
o2(0xD0,0xB3), o2(0xD0,0xB4),
o2(0xD0,0xB5), o2(0xD0,0xB6),
o2(0xD0,0xB7), o2(0xD0,0xB8),
o2(0xD0,0xB9), o2(0xD0,0xBA),
o2(0xD0,0xBB), o2(0xD0,0xBC),
o2(0xD0,0xBD), o2(0xD0,0xBE),
o2(0xD0,0xBF), o2(0xD1,0x80),
o2(0xD1,0x81), o2(0xD1,0x82),
o2(0xD1,0x83), o2(0xD1,0x84),
o2(0xD1,0x85), o2(0xD1,0x86),
o2(0xD1,0x87), o2(0xD1,0x88),
o2(0xD1,0x89), o2(0xD1,0x8A),
o2(0xD1,0x8B), o2(0xD1,0x8C),
o2(0xD1,0x8D), o2(0xD1,0x8E),
o2(0xD1,0x8F), o3(0xE2,0x84,0x96),
o2(0xD1,0x91), o2(0xD1,0x92),
o2(0xD1,0x93), o2(0xD1,0x94),
o2(0xD1,0x95), o2(0xD1,0x96),
o2(0xD1,0x97), o2(0xD1,0x98),
o2(0xD1,0x99), o2(0xD1,0x9A),
o2(0xD1,0x9B), o2(0xD1,0x9C),
o2(0xC2,0xA7), o2(0xD1,0x9E),
o2(0xD1,0x9F),
};
static const BYTE_LOOKUP
from_ISO_8859_5 = {
from_ISO_8859_1_offsets,
from_ISO_8859_5_infos
};
static rb_transcoder
rb_from_ISO_8859_5 = {
"ISO-8859-5", "UTF-8", &from_ISO_8859_5, 3, 0,
NULL, NULL,
};
static const unsigned char
to_ISO_8859_5_C2_offsets[64] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 35, 35, 35, 35, 35, 35, 33, 35, 35, 35, 35, 35, 34, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
};
static const struct byte_lookup* const
to_ISO_8859_5_C2_infos[36] = {
o1(0x80), o1(0x81), o1(0x82), o1(0x83),
o1(0x84), o1(0x85), o1(0x86), o1(0x87),
o1(0x88), o1(0x89), o1(0x8A), o1(0x8B),
o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F),
o1(0x90), o1(0x91), o1(0x92), o1(0x93),
o1(0x94), o1(0x95), o1(0x96), o1(0x97),
o1(0x98), o1(0x99), o1(0x9A), o1(0x9B),
o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F),
o1(0xA0), o1(0xFD), o1(0xAD), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_5_C2 = {
to_ISO_8859_5_C2_offsets,
to_ISO_8859_5_C2_infos
};
static const unsigned char
to_ISO_8859_5_D0_offsets[64] = {
62, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 62, 12, 13,
14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
};
static const struct byte_lookup* const
to_ISO_8859_5_D0_infos[63] = {
o1(0xA1), o1(0xA2), o1(0xA3), o1(0xA4),
o1(0xA5), o1(0xA6), o1(0xA7), o1(0xA8),
o1(0xA9), o1(0xAA), o1(0xAB), o1(0xAC),
o1(0xAE), o1(0xAF), o1(0xB0), o1(0xB1),
o1(0xB2), o1(0xB3), o1(0xB4), o1(0xB5),
o1(0xB6), o1(0xB7), o1(0xB8), o1(0xB9),
o1(0xBA), o1(0xBB), o1(0xBC), o1(0xBD),
o1(0xBE), o1(0xBF), o1(0xC0), o1(0xC1),
o1(0xC2), o1(0xC3), o1(0xC4), o1(0xC5),
o1(0xC6), o1(0xC7), o1(0xC8), o1(0xC9),
o1(0xCA), o1(0xCB), o1(0xCC), o1(0xCD),
o1(0xCE), o1(0xCF), o1(0xD0), o1(0xD1),
o1(0xD2), o1(0xD3), o1(0xD4), o1(0xD5),
o1(0xD6), o1(0xD7), o1(0xD8), o1(0xD9),
o1(0xDA), o1(0xDB), o1(0xDC), o1(0xDD),
o1(0xDE), o1(0xDF), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_5_D0 = {
to_ISO_8859_5_D0_offsets,
to_ISO_8859_5_D0_infos
};
static const unsigned char
to_ISO_8859_5_D1_offsets[64] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
30, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 30, 28, 29,
30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
};
static const struct byte_lookup* const
to_ISO_8859_5_D1_infos[31] = {
o1(0xE0), o1(0xE1), o1(0xE2), o1(0xE3),
o1(0xE4), o1(0xE5), o1(0xE6), o1(0xE7),
o1(0xE8), o1(0xE9), o1(0xEA), o1(0xEB),
o1(0xEC), o1(0xED), o1(0xEE), o1(0xEF),
o1(0xF1), o1(0xF2), o1(0xF3), o1(0xF4),
o1(0xF5), o1(0xF6), o1(0xF7), o1(0xF8),
o1(0xF9), o1(0xFA), o1(0xFB), o1(0xFC),
o1(0xFE), o1(0xFF), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_5_D1 = {
to_ISO_8859_5_D1_offsets,
to_ISO_8859_5_D1_infos
};
static const unsigned char
to_ISO_8859_5_E2_84_offsets[64] = {
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
};
static const struct byte_lookup* const
to_ISO_8859_5_E2_84_infos[2] = {
o1(0xF0), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_5_E2_84 = {
to_ISO_8859_5_E2_84_offsets,
to_ISO_8859_5_E2_84_infos
};
static const unsigned char
to_ISO_8859_5_E2_offsets[64] = {
1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
};
static const struct byte_lookup* const
to_ISO_8859_5_E2_infos[2] = {
&to_ISO_8859_5_E2_84, UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_5_E2 = {
to_ISO_8859_5_E2_offsets,
to_ISO_8859_5_E2_infos
};
static const unsigned char
to_ISO_8859_5_offsets[256] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2, 3, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
};
static const struct byte_lookup* const
to_ISO_8859_5_infos[6] = {
NOMAP, &to_ISO_8859_5_C2,
&to_ISO_8859_5_D0, &to_ISO_8859_5_D1,
&to_ISO_8859_5_E2, UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_5 = {
to_ISO_8859_5_offsets,
to_ISO_8859_5_infos
};
static rb_transcoder
rb_to_ISO_8859_5 = {
"UTF-8", "ISO-8859-5", &to_ISO_8859_5, 1, 1,
NULL, NULL,
};
static const unsigned char
from_ISO_8859_6_offsets[256] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
33, 84, 84, 84, 34, 84, 84, 84, 84, 84, 84, 84, 35, 36, 84, 84,
84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 37, 84, 84, 84, 38,
84, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 84, 84, 84, 84, 84,
65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
81, 82, 83, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
};
static const struct byte_lookup* const
from_ISO_8859_6_infos[85] = {
NOMAP, o2(0xC2,0x80), o2(0xC2,0x81), o2(0xC2,0x82),
o2(0xC2,0x83), o2(0xC2,0x84), o2(0xC2,0x85), o2(0xC2,0x86),
o2(0xC2,0x87), o2(0xC2,0x88), o2(0xC2,0x89), o2(0xC2,0x8A),
o2(0xC2,0x8B), o2(0xC2,0x8C), o2(0xC2,0x8D), o2(0xC2,0x8E),
o2(0xC2,0x8F), o2(0xC2,0x90), o2(0xC2,0x91), o2(0xC2,0x92),
o2(0xC2,0x93), o2(0xC2,0x94), o2(0xC2,0x95), o2(0xC2,0x96),
o2(0xC2,0x97), o2(0xC2,0x98), o2(0xC2,0x99), o2(0xC2,0x9A),
o2(0xC2,0x9B), o2(0xC2,0x9C), o2(0xC2,0x9D), o2(0xC2,0x9E),
o2(0xC2,0x9F), o2(0xC2,0xA0), o2(0xC2,0xA4), o2(0xD8,0x8C),
o2(0xC2,0xAD), o2(0xD8,0x9B), o2(0xD8,0x9F), o2(0xD8,0xA1),
o2(0xD8,0xA2), o2(0xD8,0xA3), o2(0xD8,0xA4), o2(0xD8,0xA5),
o2(0xD8,0xA6), o2(0xD8,0xA7), o2(0xD8,0xA8), o2(0xD8,0xA9),
o2(0xD8,0xAA), o2(0xD8,0xAB), o2(0xD8,0xAC), o2(0xD8,0xAD),
o2(0xD8,0xAE), o2(0xD8,0xAF), o2(0xD8,0xB0), o2(0xD8,0xB1),
o2(0xD8,0xB2), o2(0xD8,0xB3), o2(0xD8,0xB4), o2(0xD8,0xB5),
o2(0xD8,0xB6), o2(0xD8,0xB7), o2(0xD8,0xB8), o2(0xD8,0xB9),
o2(0xD8,0xBA), o2(0xD9,0x80), o2(0xD9,0x81), o2(0xD9,0x82),
o2(0xD9,0x83), o2(0xD9,0x84), o2(0xD9,0x85), o2(0xD9,0x86),
o2(0xD9,0x87), o2(0xD9,0x88), o2(0xD9,0x89), o2(0xD9,0x8A),
o2(0xD9,0x8B), o2(0xD9,0x8C), o2(0xD9,0x8D), o2(0xD9,0x8E),
o2(0xD9,0x8F), o2(0xD9,0x90), o2(0xD9,0x91), o2(0xD9,0x92),
UNDEF,
};
static const BYTE_LOOKUP
from_ISO_8859_6 = {
from_ISO_8859_6_offsets,
from_ISO_8859_6_infos
};
static rb_transcoder
rb_from_ISO_8859_6 = {
"ISO-8859-6", "UTF-8", &from_ISO_8859_6, 2, 0,
NULL, NULL,
};
static const unsigned char
to_ISO_8859_6_C2_offsets[64] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 35, 35, 35, 33, 35, 35, 35, 35, 35, 35, 35, 35, 34, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
};
static const struct byte_lookup* const
to_ISO_8859_6_C2_infos[36] = {
o1(0x80), o1(0x81), o1(0x82), o1(0x83),
o1(0x84), o1(0x85), o1(0x86), o1(0x87),
o1(0x88), o1(0x89), o1(0x8A), o1(0x8B),
o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F),
o1(0x90), o1(0x91), o1(0x92), o1(0x93),
o1(0x94), o1(0x95), o1(0x96), o1(0x97),
o1(0x98), o1(0x99), o1(0x9A), o1(0x9B),
o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F),
o1(0xA0), o1(0xA4), o1(0xAD), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_6_C2 = {
to_ISO_8859_6_C2_offsets,
to_ISO_8859_6_C2_infos
};
static const unsigned char
to_ISO_8859_6_D8_offsets[64] = {
29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 0, 29, 29, 29,
29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 1, 29, 29, 29, 2,
29, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 29, 29, 29, 29,
};
static const struct byte_lookup* const
to_ISO_8859_6_D8_infos[30] = {
o1(0xAC), o1(0xBB), o1(0xBF), o1(0xC1),
o1(0xC2), o1(0xC3), o1(0xC4), o1(0xC5),
o1(0xC6), o1(0xC7), o1(0xC8), o1(0xC9),
o1(0xCA), o1(0xCB), o1(0xCC), o1(0xCD),
o1(0xCE), o1(0xCF), o1(0xD0), o1(0xD1),
o1(0xD2), o1(0xD3), o1(0xD4), o1(0xD5),
o1(0xD6), o1(0xD7), o1(0xD8), o1(0xD9),
o1(0xDA), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_6_D8 = {
to_ISO_8859_6_D8_offsets,
to_ISO_8859_6_D8_infos
};
static const unsigned char
to_ISO_8859_6_D9_offsets[64] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
};
static const struct byte_lookup* const
to_ISO_8859_6_D9_infos[20] = {
o1(0xE0), o1(0xE1), o1(0xE2), o1(0xE3),
o1(0xE4), o1(0xE5), o1(0xE6), o1(0xE7),
o1(0xE8), o1(0xE9), o1(0xEA), o1(0xEB),
o1(0xEC), o1(0xED), o1(0xEE), o1(0xEF),
o1(0xF0), o1(0xF1), o1(0xF2), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_6_D9 = {
to_ISO_8859_6_D9_offsets,
to_ISO_8859_6_D9_infos
};
static const unsigned char
to_ISO_8859_6_offsets[256] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 2, 3, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
};
static const struct byte_lookup* const
to_ISO_8859_6_infos[5] = {
NOMAP, &to_ISO_8859_6_C2,
&to_ISO_8859_6_D8, &to_ISO_8859_6_D9,
UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_6 = {
to_ISO_8859_6_offsets,
to_ISO_8859_6_infos
};
static rb_transcoder
rb_to_ISO_8859_6 = {
"UTF-8", "ISO-8859-6", &to_ISO_8859_6, 1, 1,
NULL, NULL,
};
static const unsigned char
from_ISO_8859_7_offsets[256] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,126, 47,
48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
80, 81,126, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
95, 96, 97, 98, 99,100,101,102, 103,104,105,106,107,108,109,110,
111,112,113,114,115,116,117,118, 119,120,121,122,123,124,125,126,
};
static const struct byte_lookup* const
from_ISO_8859_7_infos[127] = {
NOMAP, o2(0xC2,0x80),
o2(0xC2,0x81), o2(0xC2,0x82),
o2(0xC2,0x83), o2(0xC2,0x84),
o2(0xC2,0x85), o2(0xC2,0x86),
o2(0xC2,0x87), o2(0xC2,0x88),
o2(0xC2,0x89), o2(0xC2,0x8A),
o2(0xC2,0x8B), o2(0xC2,0x8C),
o2(0xC2,0x8D), o2(0xC2,0x8E),
o2(0xC2,0x8F), o2(0xC2,0x90),
o2(0xC2,0x91), o2(0xC2,0x92),
o2(0xC2,0x93), o2(0xC2,0x94),
o2(0xC2,0x95), o2(0xC2,0x96),
o2(0xC2,0x97), o2(0xC2,0x98),
o2(0xC2,0x99), o2(0xC2,0x9A),
o2(0xC2,0x9B), o2(0xC2,0x9C),
o2(0xC2,0x9D), o2(0xC2,0x9E),
o2(0xC2,0x9F), o2(0xC2,0xA0),
o3(0xE2,0x80,0x98), o3(0xE2,0x80,0x99),
o2(0xC2,0xA3), o3(0xE2,0x82,0xAC),
o3(0xE2,0x82,0xAF), o2(0xC2,0xA6),
o2(0xC2,0xA7), o2(0xC2,0xA8),
o2(0xC2,0xA9), o2(0xCD,0xBA),
o2(0xC2,0xAB), o2(0xC2,0xAC),
o2(0xC2,0xAD), o3(0xE2,0x80,0x95),
o2(0xC2,0xB0), o2(0xC2,0xB1),
o2(0xC2,0xB2), o2(0xC2,0xB3),
o2(0xCE,0x84), o2(0xCE,0x85),
o2(0xCE,0x86), o2(0xC2,0xB7),
o2(0xCE,0x88), o2(0xCE,0x89),
o2(0xCE,0x8A), o2(0xC2,0xBB),
o2(0xCE,0x8C), o2(0xC2,0xBD),
o2(0xCE,0x8E), o2(0xCE,0x8F),
o2(0xCE,0x90), o2(0xCE,0x91),
o2(0xCE,0x92), o2(0xCE,0x93),
o2(0xCE,0x94), o2(0xCE,0x95),
o2(0xCE,0x96), o2(0xCE,0x97),
o2(0xCE,0x98), o2(0xCE,0x99),
o2(0xCE,0x9A), o2(0xCE,0x9B),
o2(0xCE,0x9C), o2(0xCE,0x9D),
o2(0xCE,0x9E), o2(0xCE,0x9F),
o2(0xCE,0xA0), o2(0xCE,0xA1),
o2(0xCE,0xA3), o2(0xCE,0xA4),
o2(0xCE,0xA5), o2(0xCE,0xA6),
o2(0xCE,0xA7), o2(0xCE,0xA8),
o2(0xCE,0xA9), o2(0xCE,0xAA),
o2(0xCE,0xAB), o2(0xCE,0xAC),
o2(0xCE,0xAD), o2(0xCE,0xAE),
o2(0xCE,0xAF), o2(0xCE,0xB0),
o2(0xCE,0xB1), o2(0xCE,0xB2),
o2(0xCE,0xB3), o2(0xCE,0xB4),
o2(0xCE,0xB5), o2(0xCE,0xB6),
o2(0xCE,0xB7), o2(0xCE,0xB8),
o2(0xCE,0xB9), o2(0xCE,0xBA),
o2(0xCE,0xBB), o2(0xCE,0xBC),
o2(0xCE,0xBD), o2(0xCE,0xBE),
o2(0xCE,0xBF), o2(0xCF,0x80),
o2(0xCF,0x81), o2(0xCF,0x82),
o2(0xCF,0x83), o2(0xCF,0x84),
o2(0xCF,0x85), o2(0xCF,0x86),
o2(0xCF,0x87), o2(0xCF,0x88),
o2(0xCF,0x89), o2(0xCF,0x8A),
o2(0xCF,0x8B), o2(0xCF,0x8C),
o2(0xCF,0x8D), o2(0xCF,0x8E),
UNDEF,
};
static const BYTE_LOOKUP
from_ISO_8859_7 = {
from_ISO_8859_7_offsets,
from_ISO_8859_7_infos
};
static rb_transcoder
rb_from_ISO_8859_7 = {
"ISO-8859-7", "UTF-8", &from_ISO_8859_7, 3, 0,
NULL, NULL,
};
static const unsigned char
to_ISO_8859_7_C2_offsets[64] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 48, 48, 33, 48, 48, 34, 35, 36, 37, 48, 38, 39, 40, 48, 48,
41, 42, 43, 44, 48, 48, 48, 45, 48, 48, 48, 46, 48, 47, 48, 48,
};
static const struct byte_lookup* const
to_ISO_8859_7_C2_infos[49] = {
o1(0x80), o1(0x81), o1(0x82), o1(0x83),
o1(0x84), o1(0x85), o1(0x86), o1(0x87),
o1(0x88), o1(0x89), o1(0x8A), o1(0x8B),
o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F),
o1(0x90), o1(0x91), o1(0x92), o1(0x93),
o1(0x94), o1(0x95), o1(0x96), o1(0x97),
o1(0x98), o1(0x99), o1(0x9A), o1(0x9B),
o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F),
o1(0xA0), o1(0xA3), o1(0xA6), o1(0xA7),
o1(0xA8), o1(0xA9), o1(0xAB), o1(0xAC),
o1(0xAD), o1(0xB0), o1(0xB1), o1(0xB2),
o1(0xB3), o1(0xB7), o1(0xBB), o1(0xBD),
UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_7_C2 = {
to_ISO_8859_7_C2_offsets,
to_ISO_8859_7_C2_infos
};
static const unsigned char
to_ISO_8859_7_CD_offsets[64] = {
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,
};
static const struct byte_lookup* const
to_ISO_8859_7_CD_infos[2] = {
o1(0xAA), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_7_CD = {
to_ISO_8859_7_CD_offsets,
to_ISO_8859_7_CD_infos
};
static const unsigned char
to_ISO_8859_7_CE_offsets[64] = {
56, 56, 56, 56, 0, 1, 2, 56, 3, 4, 5, 56, 6, 56, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 56, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
};
static const struct byte_lookup* const
to_ISO_8859_7_CE_infos[57] = {
o1(0xB4), o1(0xB5), o1(0xB6), o1(0xB8),
o1(0xB9), o1(0xBA), o1(0xBC), o1(0xBE),
o1(0xBF), o1(0xC0), o1(0xC1), o1(0xC2),
o1(0xC3), o1(0xC4), o1(0xC5), o1(0xC6),
o1(0xC7), o1(0xC8), o1(0xC9), o1(0xCA),
o1(0xCB), o1(0xCC), o1(0xCD), o1(0xCE),
o1(0xCF), o1(0xD0), o1(0xD1), o1(0xD3),
o1(0xD4), o1(0xD5), o1(0xD6), o1(0xD7),
o1(0xD8), o1(0xD9), o1(0xDA), o1(0xDB),
o1(0xDC), o1(0xDD), o1(0xDE), o1(0xDF),
o1(0xE0), o1(0xE1), o1(0xE2), o1(0xE3),
o1(0xE4), o1(0xE5), o1(0xE6), o1(0xE7),
o1(0xE8), o1(0xE9), o1(0xEA), o1(0xEB),
o1(0xEC), o1(0xED), o1(0xEE), o1(0xEF),
UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_7_CE = {
to_ISO_8859_7_CE_offsets,
to_ISO_8859_7_CE_infos
};
static const unsigned char
to_ISO_8859_7_CF_offsets[64] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
};
static const struct byte_lookup* const
to_ISO_8859_7_CF_infos[16] = {
o1(0xF0), o1(0xF1), o1(0xF2), o1(0xF3),
o1(0xF4), o1(0xF5), o1(0xF6), o1(0xF7),
o1(0xF8), o1(0xF9), o1(0xFA), o1(0xFB),
o1(0xFC), o1(0xFD), o1(0xFE), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_7_CF = {
to_ISO_8859_7_CF_offsets,
to_ISO_8859_7_CF_infos
};
static const unsigned char
to_ISO_8859_7_E2_80_offsets[64] = {
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 0, 3, 3, 1, 2, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
};
static const struct byte_lookup* const
to_ISO_8859_7_E2_80_infos[4] = {
o1(0xAF), o1(0xA1), o1(0xA2), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_7_E2_80 = {
to_ISO_8859_7_E2_80_offsets,
to_ISO_8859_7_E2_80_infos
};
static const unsigned char
to_ISO_8859_7_E2_82_offsets[64] = {
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 1,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
};
static const struct byte_lookup* const
to_ISO_8859_7_E2_82_infos[3] = {
o1(0xA4), o1(0xA5), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_7_E2_82 = {
to_ISO_8859_7_E2_82_offsets,
to_ISO_8859_7_E2_82_infos
};
static const unsigned char
to_ISO_8859_7_E2_offsets[64] = {
0, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
};
static const struct byte_lookup* const
to_ISO_8859_7_E2_infos[3] = {
&to_ISO_8859_7_E2_80, &to_ISO_8859_7_E2_82,
UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_7_E2 = {
to_ISO_8859_7_E2_offsets,
to_ISO_8859_7_E2_infos
};
static const unsigned char
to_ISO_8859_7_offsets[256] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 1, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 2, 3, 4,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
};
static const struct byte_lookup* const
to_ISO_8859_7_infos[7] = {
NOMAP, &to_ISO_8859_7_C2,
&to_ISO_8859_7_CD, &to_ISO_8859_7_CE,
&to_ISO_8859_7_CF, &to_ISO_8859_7_E2,
UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_7 = {
to_ISO_8859_7_offsets,
to_ISO_8859_7_infos
};
static rb_transcoder
rb_to_ISO_8859_7 = {
"UTF-8", "ISO-8859-7", &to_ISO_8859_7, 1, 1,
NULL, NULL,
};
static const unsigned char
from_ISO_8859_8_offsets[256] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
33, 93, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 93,
93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 63,
64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 93, 93, 91, 92, 93,
};
static const struct byte_lookup* const
from_ISO_8859_8_infos[94] = {
NOMAP, o2(0xC2,0x80),
o2(0xC2,0x81), o2(0xC2,0x82),
o2(0xC2,0x83), o2(0xC2,0x84),
o2(0xC2,0x85), o2(0xC2,0x86),
o2(0xC2,0x87), o2(0xC2,0x88),
o2(0xC2,0x89), o2(0xC2,0x8A),
o2(0xC2,0x8B), o2(0xC2,0x8C),
o2(0xC2,0x8D), o2(0xC2,0x8E),
o2(0xC2,0x8F), o2(0xC2,0x90),
o2(0xC2,0x91), o2(0xC2,0x92),
o2(0xC2,0x93), o2(0xC2,0x94),
o2(0xC2,0x95), o2(0xC2,0x96),
o2(0xC2,0x97), o2(0xC2,0x98),
o2(0xC2,0x99), o2(0xC2,0x9A),
o2(0xC2,0x9B), o2(0xC2,0x9C),
o2(0xC2,0x9D), o2(0xC2,0x9E),
o2(0xC2,0x9F), o2(0xC2,0xA0),
o2(0xC2,0xA2), o2(0xC2,0xA3),
o2(0xC2,0xA4), o2(0xC2,0xA5),
o2(0xC2,0xA6), o2(0xC2,0xA7),
o2(0xC2,0xA8), o2(0xC2,0xA9),
o2(0xC3,0x97), o2(0xC2,0xAB),
o2(0xC2,0xAC), o2(0xC2,0xAD),
o2(0xC2,0xAE), o2(0xC2,0xAF),
o2(0xC2,0xB0), o2(0xC2,0xB1),
o2(0xC2,0xB2), o2(0xC2,0xB3),
o2(0xC2,0xB4), o2(0xC2,0xB5),
o2(0xC2,0xB6), o2(0xC2,0xB7),
o2(0xC2,0xB8), o2(0xC2,0xB9),
o2(0xC3,0xB7), o2(0xC2,0xBB),
o2(0xC2,0xBC), o2(0xC2,0xBD),
o2(0xC2,0xBE), o3(0xE2,0x80,0x97),
o2(0xD7,0x90), o2(0xD7,0x91),
o2(0xD7,0x92), o2(0xD7,0x93),
o2(0xD7,0x94), o2(0xD7,0x95),
o2(0xD7,0x96), o2(0xD7,0x97),
o2(0xD7,0x98), o2(0xD7,0x99),
o2(0xD7,0x9A), o2(0xD7,0x9B),
o2(0xD7,0x9C), o2(0xD7,0x9D),
o2(0xD7,0x9E), o2(0xD7,0x9F),
o2(0xD7,0xA0), o2(0xD7,0xA1),
o2(0xD7,0xA2), o2(0xD7,0xA3),
o2(0xD7,0xA4), o2(0xD7,0xA5),
o2(0xD7,0xA6), o2(0xD7,0xA7),
o2(0xD7,0xA8), o2(0xD7,0xA9),
o2(0xD7,0xAA), o3(0xE2,0x80,0x8E),
o3(0xE2,0x80,0x8F), UNDEF,
};
static const BYTE_LOOKUP
from_ISO_8859_8 = {
from_ISO_8859_8_offsets,
from_ISO_8859_8_infos
};
static rb_transcoder
rb_from_ISO_8859_8 = {
"ISO-8859-8", "UTF-8", &from_ISO_8859_8, 3, 0,
NULL, NULL,
};
static const unsigned char
to_ISO_8859_8_C2_offsets[64] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 60, 33, 34, 35, 36, 37, 38, 39, 40, 60, 41, 42, 43, 44, 45,
46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 60, 56, 57, 58, 59, 60,
};
static const struct byte_lookup* const
to_ISO_8859_8_C2_infos[61] = {
o1(0x80), o1(0x81), o1(0x82), o1(0x83),
o1(0x84), o1(0x85), o1(0x86), o1(0x87),
o1(0x88), o1(0x89), o1(0x8A), o1(0x8B),
o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F),
o1(0x90), o1(0x91), o1(0x92), o1(0x93),
o1(0x94), o1(0x95), o1(0x96), o1(0x97),
o1(0x98), o1(0x99), o1(0x9A), o1(0x9B),
o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F),
o1(0xA0), o1(0xA2), o1(0xA3), o1(0xA4),
o1(0xA5), o1(0xA6), o1(0xA7), o1(0xA8),
o1(0xA9), o1(0xAB), o1(0xAC), o1(0xAD),
o1(0xAE), o1(0xAF), o1(0xB0), o1(0xB1),
o1(0xB2), o1(0xB3), o1(0xB4), o1(0xB5),
o1(0xB6), o1(0xB7), o1(0xB8), o1(0xB9),
o1(0xBB), o1(0xBC), o1(0xBD), o1(0xBE),
UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_8_C2 = {
to_ISO_8859_8_C2_offsets,
to_ISO_8859_8_C2_infos
};
static const unsigned char
to_ISO_8859_8_C3_offsets[64] = {
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2,
};
static const struct byte_lookup* const
to_ISO_8859_8_C3_infos[3] = {
o1(0xAA), o1(0xBA), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_8_C3 = {
to_ISO_8859_8_C3_offsets,
to_ISO_8859_8_C3_infos
};
static const unsigned char
to_ISO_8859_8_D7_offsets[64] = {
27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 27, 27, 27, 27,
27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
};
static const struct byte_lookup* const
to_ISO_8859_8_D7_infos[28] = {
o1(0xE0), o1(0xE1), o1(0xE2), o1(0xE3),
o1(0xE4), o1(0xE5), o1(0xE6), o1(0xE7),
o1(0xE8), o1(0xE9), o1(0xEA), o1(0xEB),
o1(0xEC), o1(0xED), o1(0xEE), o1(0xEF),
o1(0xF0), o1(0xF1), o1(0xF2), o1(0xF3),
o1(0xF4), o1(0xF5), o1(0xF6), o1(0xF7),
o1(0xF8), o1(0xF9), o1(0xFA), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_8_D7 = {
to_ISO_8859_8_D7_offsets,
to_ISO_8859_8_D7_infos
};
static const unsigned char
to_ISO_8859_8_E2_80_offsets[64] = {
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 1,
3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
};
static const struct byte_lookup* const
to_ISO_8859_8_E2_80_infos[4] = {
o1(0xFD), o1(0xFE), o1(0xDF), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_8_E2_80 = {
to_ISO_8859_8_E2_80_offsets,
to_ISO_8859_8_E2_80_infos
};
static const unsigned char
to_ISO_8859_8_E2_offsets[64] = {
/* used from to_ISO_8859_8_E2 */
/* used from to_ISO_8859_10_E2 */
/* used from to_ISO_8859_13_E2 */
0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
};
static const struct byte_lookup* const
to_ISO_8859_8_E2_infos[2] = {
&to_ISO_8859_8_E2_80, UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_8_E2 = {
to_ISO_8859_8_E2_offsets,
to_ISO_8859_8_E2_infos
};
static const unsigned char
to_ISO_8859_8_offsets[256] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 1, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 3, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
};
static const struct byte_lookup* const
to_ISO_8859_8_infos[6] = {
NOMAP, &to_ISO_8859_8_C2,
&to_ISO_8859_8_C3, &to_ISO_8859_8_D7,
&to_ISO_8859_8_E2, UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_8 = {
to_ISO_8859_8_offsets,
to_ISO_8859_8_infos
};
static rb_transcoder
rb_to_ISO_8859_8 = {
"UTF-8", "ISO-8859-8", &to_ISO_8859_8, 1, 1,
NULL, NULL,
};
static const struct byte_lookup* const
from_ISO_8859_9_infos[129] = {
NOMAP, o2(0xC2,0x80), o2(0xC2,0x81), o2(0xC2,0x82),
o2(0xC2,0x83), o2(0xC2,0x84), o2(0xC2,0x85), o2(0xC2,0x86),
o2(0xC2,0x87), o2(0xC2,0x88), o2(0xC2,0x89), o2(0xC2,0x8A),
o2(0xC2,0x8B), o2(0xC2,0x8C), o2(0xC2,0x8D), o2(0xC2,0x8E),
o2(0xC2,0x8F), o2(0xC2,0x90), o2(0xC2,0x91), o2(0xC2,0x92),
o2(0xC2,0x93), o2(0xC2,0x94), o2(0xC2,0x95), o2(0xC2,0x96),
o2(0xC2,0x97), o2(0xC2,0x98), o2(0xC2,0x99), o2(0xC2,0x9A),
o2(0xC2,0x9B), o2(0xC2,0x9C), o2(0xC2,0x9D), o2(0xC2,0x9E),
o2(0xC2,0x9F), o2(0xC2,0xA0), o2(0xC2,0xA1), o2(0xC2,0xA2),
o2(0xC2,0xA3), o2(0xC2,0xA4), o2(0xC2,0xA5), o2(0xC2,0xA6),
o2(0xC2,0xA7), o2(0xC2,0xA8), o2(0xC2,0xA9), o2(0xC2,0xAA),
o2(0xC2,0xAB), o2(0xC2,0xAC), o2(0xC2,0xAD), o2(0xC2,0xAE),
o2(0xC2,0xAF), o2(0xC2,0xB0), o2(0xC2,0xB1), o2(0xC2,0xB2),
o2(0xC2,0xB3), o2(0xC2,0xB4), o2(0xC2,0xB5), o2(0xC2,0xB6),
o2(0xC2,0xB7), o2(0xC2,0xB8), o2(0xC2,0xB9), o2(0xC2,0xBA),
o2(0xC2,0xBB), o2(0xC2,0xBC), o2(0xC2,0xBD), o2(0xC2,0xBE),
o2(0xC2,0xBF), o2(0xC3,0x80), o2(0xC3,0x81), o2(0xC3,0x82),
o2(0xC3,0x83), o2(0xC3,0x84), o2(0xC3,0x85), o2(0xC3,0x86),
o2(0xC3,0x87), o2(0xC3,0x88), o2(0xC3,0x89), o2(0xC3,0x8A),
o2(0xC3,0x8B), o2(0xC3,0x8C), o2(0xC3,0x8D), o2(0xC3,0x8E),
o2(0xC3,0x8F), o2(0xC4,0x9E), o2(0xC3,0x91), o2(0xC3,0x92),
o2(0xC3,0x93), o2(0xC3,0x94), o2(0xC3,0x95), o2(0xC3,0x96),
o2(0xC3,0x97), o2(0xC3,0x98), o2(0xC3,0x99), o2(0xC3,0x9A),
o2(0xC3,0x9B), o2(0xC3,0x9C), o2(0xC4,0xB0), o2(0xC5,0x9E),
o2(0xC3,0x9F), o2(0xC3,0xA0), o2(0xC3,0xA1), o2(0xC3,0xA2),
o2(0xC3,0xA3), o2(0xC3,0xA4), o2(0xC3,0xA5), o2(0xC3,0xA6),
o2(0xC3,0xA7), o2(0xC3,0xA8), o2(0xC3,0xA9), o2(0xC3,0xAA),
o2(0xC3,0xAB), o2(0xC3,0xAC), o2(0xC3,0xAD), o2(0xC3,0xAE),
o2(0xC3,0xAF), o2(0xC4,0x9F), o2(0xC3,0xB1), o2(0xC3,0xB2),
o2(0xC3,0xB3), o2(0xC3,0xB4), o2(0xC3,0xB5), o2(0xC3,0xB6),
o2(0xC3,0xB7), o2(0xC3,0xB8), o2(0xC3,0xB9), o2(0xC3,0xBA),
o2(0xC3,0xBB), o2(0xC3,0xBC), o2(0xC4,0xB1), o2(0xC5,0x9F),
o2(0xC3,0xBF),
};
static const BYTE_LOOKUP
from_ISO_8859_9 = {
from_ISO_8859_1_offsets,
from_ISO_8859_9_infos
};
static rb_transcoder
rb_from_ISO_8859_9 = {
"ISO-8859-9", "UTF-8", &from_ISO_8859_9, 2, 0,
NULL, NULL,
};
static const unsigned char
to_ISO_8859_9_C3_offsets[64] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
58, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 58, 58, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
58, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 58, 58, 57,
};
static const struct byte_lookup* const
to_ISO_8859_9_C3_infos[59] = {
o1(0xC0), o1(0xC1), o1(0xC2), o1(0xC3),
o1(0xC4), o1(0xC5), o1(0xC6), o1(0xC7),
o1(0xC8), o1(0xC9), o1(0xCA), o1(0xCB),
o1(0xCC), o1(0xCD), o1(0xCE), o1(0xCF),
o1(0xD1), o1(0xD2), o1(0xD3), o1(0xD4),
o1(0xD5), o1(0xD6), o1(0xD7), o1(0xD8),
o1(0xD9), o1(0xDA), o1(0xDB), o1(0xDC),
o1(0xDF), o1(0xE0), o1(0xE1), o1(0xE2),
o1(0xE3), o1(0xE4), o1(0xE5), o1(0xE6),
o1(0xE7), o1(0xE8), o1(0xE9), o1(0xEA),
o1(0xEB), o1(0xEC), o1(0xED), o1(0xEE),
o1(0xEF), o1(0xF1), o1(0xF2), o1(0xF3),
o1(0xF4), o1(0xF5), o1(0xF6), o1(0xF7),
o1(0xF8), o1(0xF9), o1(0xFA), o1(0xFB),
o1(0xFC), o1(0xFF), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_9_C3 = {
to_ISO_8859_9_C3_offsets,
to_ISO_8859_9_C3_infos
};
static const unsigned char
to_ISO_8859_9_C4_offsets[64] = {
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 1,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
2, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
};
static const struct byte_lookup* const
to_ISO_8859_9_C4_infos[5] = {
o1(0xD0), o1(0xF0), o1(0xDD), o1(0xFD),
UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_9_C4 = {
to_ISO_8859_9_C4_offsets,
to_ISO_8859_9_C4_infos
};
static const unsigned char
to_ISO_8859_9_C5_offsets[64] = {
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 1,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
};
static const struct byte_lookup* const
to_ISO_8859_9_C5_infos[3] = {
o1(0xDE), o1(0xFE), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_9_C5 = {
to_ISO_8859_9_C5_offsets,
to_ISO_8859_9_C5_infos
};
static const unsigned char
to_ISO_8859_9_offsets[256] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 1, 2, 3, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
};
static const struct byte_lookup* const
to_ISO_8859_9_infos[6] = {
NOMAP, &to_ISO_8859_1_C2,
&to_ISO_8859_9_C3, &to_ISO_8859_9_C4,
&to_ISO_8859_9_C5, UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_9 = {
to_ISO_8859_9_offsets,
to_ISO_8859_9_infos
};
static rb_transcoder
rb_to_ISO_8859_9 = {
"UTF-8", "ISO-8859-9", &to_ISO_8859_9, 1, 1,
NULL, NULL,
};
static const struct byte_lookup* const
from_ISO_8859_10_infos[129] = {
NOMAP, o2(0xC2,0x80),
o2(0xC2,0x81), o2(0xC2,0x82),
o2(0xC2,0x83), o2(0xC2,0x84),
o2(0xC2,0x85), o2(0xC2,0x86),
o2(0xC2,0x87), o2(0xC2,0x88),
o2(0xC2,0x89), o2(0xC2,0x8A),
o2(0xC2,0x8B), o2(0xC2,0x8C),
o2(0xC2,0x8D), o2(0xC2,0x8E),
o2(0xC2,0x8F), o2(0xC2,0x90),
o2(0xC2,0x91), o2(0xC2,0x92),
o2(0xC2,0x93), o2(0xC2,0x94),
o2(0xC2,0x95), o2(0xC2,0x96),
o2(0xC2,0x97), o2(0xC2,0x98),
o2(0xC2,0x99), o2(0xC2,0x9A),
o2(0xC2,0x9B), o2(0xC2,0x9C),
o2(0xC2,0x9D), o2(0xC2,0x9E),
o2(0xC2,0x9F), o2(0xC2,0xA0),
o2(0xC4,0x84), o2(0xC4,0x92),
o2(0xC4,0xA2), o2(0xC4,0xAA),
o2(0xC4,0xA8), o2(0xC4,0xB6),
o2(0xC2,0xA7), o2(0xC4,0xBB),
o2(0xC4,0x90), o2(0xC5,0xA0),
o2(0xC5,0xA6), o2(0xC5,0xBD),
o2(0xC2,0xAD), o2(0xC5,0xAA),
o2(0xC5,0x8A), o2(0xC2,0xB0),
o2(0xC4,0x85), o2(0xC4,0x93),
o2(0xC4,0xA3), o2(0xC4,0xAB),
o2(0xC4,0xA9), o2(0xC4,0xB7),
o2(0xC2,0xB7), o2(0xC4,0xBC),
o2(0xC4,0x91), o2(0xC5,0xA1),
o2(0xC5,0xA7), o2(0xC5,0xBE),
o3(0xE2,0x80,0x95), o2(0xC5,0xAB),
o2(0xC5,0x8B), o2(0xC4,0x80),
o2(0xC3,0x81), o2(0xC3,0x82),
o2(0xC3,0x83), o2(0xC3,0x84),
o2(0xC3,0x85), o2(0xC3,0x86),
o2(0xC4,0xAE), o2(0xC4,0x8C),
o2(0xC3,0x89), o2(0xC4,0x98),
o2(0xC3,0x8B), o2(0xC4,0x96),
o2(0xC3,0x8D), o2(0xC3,0x8E),
o2(0xC3,0x8F), o2(0xC3,0x90),
o2(0xC5,0x85), o2(0xC5,0x8C),
o2(0xC3,0x93), o2(0xC3,0x94),
o2(0xC3,0x95), o2(0xC3,0x96),
o2(0xC5,0xA8), o2(0xC3,0x98),
o2(0xC5,0xB2), o2(0xC3,0x9A),
o2(0xC3,0x9B), o2(0xC3,0x9C),
o2(0xC3,0x9D), o2(0xC3,0x9E),
o2(0xC3,0x9F), o2(0xC4,0x81),
o2(0xC3,0xA1), o2(0xC3,0xA2),
o2(0xC3,0xA3), o2(0xC3,0xA4),
o2(0xC3,0xA5), o2(0xC3,0xA6),
o2(0xC4,0xAF), o2(0xC4,0x8D),
o2(0xC3,0xA9), o2(0xC4,0x99),
o2(0xC3,0xAB), o2(0xC4,0x97),
o2(0xC3,0xAD), o2(0xC3,0xAE),
o2(0xC3,0xAF), o2(0xC3,0xB0),
o2(0xC5,0x86), o2(0xC5,0x8D),
o2(0xC3,0xB3), o2(0xC3,0xB4),
o2(0xC3,0xB5), o2(0xC3,0xB6),
o2(0xC5,0xA9), o2(0xC3,0xB8),
o2(0xC5,0xB3), o2(0xC3,0xBA),
o2(0xC3,0xBB), o2(0xC3,0xBC),
o2(0xC3,0xBD), o2(0xC3,0xBE),
o2(0xC4,0xB8),
};
static const BYTE_LOOKUP
from_ISO_8859_10 = {
from_ISO_8859_1_offsets,
from_ISO_8859_10_infos
};
static rb_transcoder
rb_from_ISO_8859_10 = {
"ISO-8859-10", "UTF-8", &from_ISO_8859_10, 3, 0,
NULL, NULL,
};
static const unsigned char
to_ISO_8859_10_C2_offsets[64] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 37, 37, 37, 37, 37, 37, 33, 37, 37, 37, 37, 37, 34, 37, 37,
35, 37, 37, 37, 37, 37, 37, 36, 37, 37, 37, 37, 37, 37, 37, 37,
};
static const struct byte_lookup* const
to_ISO_8859_10_C2_infos[38] = {
o1(0x80), o1(0x81), o1(0x82), o1(0x83),
o1(0x84), o1(0x85), o1(0x86), o1(0x87),
o1(0x88), o1(0x89), o1(0x8A), o1(0x8B),
o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F),
o1(0x90), o1(0x91), o1(0x92), o1(0x93),
o1(0x94), o1(0x95), o1(0x96), o1(0x97),
o1(0x98), o1(0x99), o1(0x9A), o1(0x9B),
o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F),
o1(0xA0), o1(0xA7), o1(0xAD), o1(0xB0),
o1(0xB7), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_10_C2 = {
to_ISO_8859_10_C2_offsets,
to_ISO_8859_10_C2_infos
};
static const unsigned char
to_ISO_8859_10_C3_offsets[64] = {
45, 0, 1, 2, 3, 4, 5, 45, 45, 6, 45, 7, 45, 8, 9, 10,
11, 45, 45, 12, 13, 14, 15, 45, 16, 45, 17, 18, 19, 20, 21, 22,
45, 23, 24, 25, 26, 27, 28, 45, 45, 29, 45, 30, 45, 31, 32, 33,
34, 45, 45, 35, 36, 37, 38, 45, 39, 45, 40, 41, 42, 43, 44, 45,
};
static const struct byte_lookup* const
to_ISO_8859_10_C3_infos[46] = {
o1(0xC1), o1(0xC2), o1(0xC3), o1(0xC4),
o1(0xC5), o1(0xC6), o1(0xC9), o1(0xCB),
o1(0xCD), o1(0xCE), o1(0xCF), o1(0xD0),
o1(0xD3), o1(0xD4), o1(0xD5), o1(0xD6),
o1(0xD8), o1(0xDA), o1(0xDB), o1(0xDC),
o1(0xDD), o1(0xDE), o1(0xDF), o1(0xE1),
o1(0xE2), o1(0xE3), o1(0xE4), o1(0xE5),
o1(0xE6), o1(0xE9), o1(0xEB), o1(0xED),
o1(0xEE), o1(0xEF), o1(0xF0), o1(0xF3),
o1(0xF4), o1(0xF5), o1(0xF6), o1(0xF8),
o1(0xFA), o1(0xFB), o1(0xFC), o1(0xFD),
o1(0xFE), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_10_C3 = {
to_ISO_8859_10_C3_offsets,
to_ISO_8859_10_C3_infos
};
static const struct byte_lookup* const
to_ISO_8859_10_C4_infos[28] = {
o1(0xC0), o1(0xE0), o1(0xA1), o1(0xB1),
o1(0xC8), o1(0xE8), o1(0xA9), o1(0xB9),
o1(0xA2), o1(0xB2), o1(0xCC), o1(0xEC),
o1(0xCA), o1(0xEA), o1(0xA3), o1(0xB3),
o1(0xA5), o1(0xB5), o1(0xA4), o1(0xB4),
o1(0xC7), o1(0xE7), o1(0xA6), o1(0xB6),
o1(0xFF), o1(0xA8), o1(0xB8), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_10_C4 = {
to_ISO_8859_4_C4_offsets,
to_ISO_8859_10_C4_infos
};
static const unsigned char
to_ISO_8859_10_C5_offsets[64] = {
18, 18, 18, 18, 18, 0, 1, 18, 18, 18, 2, 3, 4, 5, 18, 18,
18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
6, 7, 18, 18, 18, 18, 8, 9, 10, 11, 12, 13, 18, 18, 18, 18,
18, 18, 14, 15, 18, 18, 18, 18, 18, 18, 18, 18, 18, 16, 17, 18,
};
static const struct byte_lookup* const
to_ISO_8859_10_C5_infos[19] = {
o1(0xD1), o1(0xF1), o1(0xAF), o1(0xBF),
o1(0xD2), o1(0xF2), o1(0xAA), o1(0xBA),
o1(0xAB), o1(0xBB), o1(0xD7), o1(0xF7),
o1(0xAE), o1(0xBE), o1(0xD9), o1(0xF9),
o1(0xAC), o1(0xBC), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_10_C5 = {
to_ISO_8859_10_C5_offsets,
to_ISO_8859_10_C5_infos
};
static const unsigned char
to_ISO_8859_10_E2_80_offsets[64] = {
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
};
static const struct byte_lookup* const
to_ISO_8859_10_E2_80_infos[2] = {
o1(0xBD), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_10_E2_80 = {
to_ISO_8859_10_E2_80_offsets,
to_ISO_8859_10_E2_80_infos
};
static const struct byte_lookup* const
to_ISO_8859_10_E2_infos[2] = {
&to_ISO_8859_10_E2_80, UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_10_E2 = {
to_ISO_8859_8_E2_offsets,
to_ISO_8859_10_E2_infos
};
static const unsigned char
to_ISO_8859_10_offsets[256] = {
/* used from to_ISO_8859_10 */
/* used from to_ISO_8859_13 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 1, 2, 3, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
};
static const struct byte_lookup* const
to_ISO_8859_10_infos[7] = {
NOMAP, &to_ISO_8859_10_C2,
&to_ISO_8859_10_C3, &to_ISO_8859_10_C4,
&to_ISO_8859_10_C5, &to_ISO_8859_10_E2,
UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_10 = {
to_ISO_8859_10_offsets,
to_ISO_8859_10_infos
};
static rb_transcoder
rb_to_ISO_8859_10 = {
"UTF-8", "ISO-8859-10", &to_ISO_8859_10, 1, 1,
NULL, NULL,
};
static const unsigned char
from_ISO_8859_11_offsets[256] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,121,121,121,121, 92,
93, 94, 95, 96, 97, 98, 99,100, 101,102,103,104,105,106,107,108,
109,110,111,112,113,114,115,116, 117,118,119,120,121,121,121,121,
};
static const struct byte_lookup* const
from_ISO_8859_11_infos[122] = {
NOMAP, o2(0xC2,0x80),
o2(0xC2,0x81), o2(0xC2,0x82),
o2(0xC2,0x83), o2(0xC2,0x84),
o2(0xC2,0x85), o2(0xC2,0x86),
o2(0xC2,0x87), o2(0xC2,0x88),
o2(0xC2,0x89), o2(0xC2,0x8A),
o2(0xC2,0x8B), o2(0xC2,0x8C),
o2(0xC2,0x8D), o2(0xC2,0x8E),
o2(0xC2,0x8F), o2(0xC2,0x90),
o2(0xC2,0x91), o2(0xC2,0x92),
o2(0xC2,0x93), o2(0xC2,0x94),
o2(0xC2,0x95), o2(0xC2,0x96),
o2(0xC2,0x97), o2(0xC2,0x98),
o2(0xC2,0x99), o2(0xC2,0x9A),
o2(0xC2,0x9B), o2(0xC2,0x9C),
o2(0xC2,0x9D), o2(0xC2,0x9E),
o2(0xC2,0x9F), o2(0xC2,0xA0),
o3(0xE0,0xB8,0x81), o3(0xE0,0xB8,0x82),
o3(0xE0,0xB8,0x83), o3(0xE0,0xB8,0x84),
o3(0xE0,0xB8,0x85), o3(0xE0,0xB8,0x86),
o3(0xE0,0xB8,0x87), o3(0xE0,0xB8,0x88),
o3(0xE0,0xB8,0x89), o3(0xE0,0xB8,0x8A),
o3(0xE0,0xB8,0x8B), o3(0xE0,0xB8,0x8C),
o3(0xE0,0xB8,0x8D), o3(0xE0,0xB8,0x8E),
o3(0xE0,0xB8,0x8F), o3(0xE0,0xB8,0x90),
o3(0xE0,0xB8,0x91), o3(0xE0,0xB8,0x92),
o3(0xE0,0xB8,0x93), o3(0xE0,0xB8,0x94),
o3(0xE0,0xB8,0x95), o3(0xE0,0xB8,0x96),
o3(0xE0,0xB8,0x97), o3(0xE0,0xB8,0x98),
o3(0xE0,0xB8,0x99), o3(0xE0,0xB8,0x9A),
o3(0xE0,0xB8,0x9B), o3(0xE0,0xB8,0x9C),
o3(0xE0,0xB8,0x9D), o3(0xE0,0xB8,0x9E),
o3(0xE0,0xB8,0x9F), o3(0xE0,0xB8,0xA0),
o3(0xE0,0xB8,0xA1), o3(0xE0,0xB8,0xA2),
o3(0xE0,0xB8,0xA3), o3(0xE0,0xB8,0xA4),
o3(0xE0,0xB8,0xA5), o3(0xE0,0xB8,0xA6),
o3(0xE0,0xB8,0xA7), o3(0xE0,0xB8,0xA8),
o3(0xE0,0xB8,0xA9), o3(0xE0,0xB8,0xAA),
o3(0xE0,0xB8,0xAB), o3(0xE0,0xB8,0xAC),
o3(0xE0,0xB8,0xAD), o3(0xE0,0xB8,0xAE),
o3(0xE0,0xB8,0xAF), o3(0xE0,0xB8,0xB0),
o3(0xE0,0xB8,0xB1), o3(0xE0,0xB8,0xB2),
o3(0xE0,0xB8,0xB3), o3(0xE0,0xB8,0xB4),
o3(0xE0,0xB8,0xB5), o3(0xE0,0xB8,0xB6),
o3(0xE0,0xB8,0xB7), o3(0xE0,0xB8,0xB8),
o3(0xE0,0xB8,0xB9), o3(0xE0,0xB8,0xBA),
o3(0xE0,0xB8,0xBF), o3(0xE0,0xB9,0x80),
o3(0xE0,0xB9,0x81), o3(0xE0,0xB9,0x82),
o3(0xE0,0xB9,0x83), o3(0xE0,0xB9,0x84),
o3(0xE0,0xB9,0x85), o3(0xE0,0xB9,0x86),
o3(0xE0,0xB9,0x87), o3(0xE0,0xB9,0x88),
o3(0xE0,0xB9,0x89), o3(0xE0,0xB9,0x8A),
o3(0xE0,0xB9,0x8B), o3(0xE0,0xB9,0x8C),
o3(0xE0,0xB9,0x8D), o3(0xE0,0xB9,0x8E),
o3(0xE0,0xB9,0x8F), o3(0xE0,0xB9,0x90),
o3(0xE0,0xB9,0x91), o3(0xE0,0xB9,0x92),
o3(0xE0,0xB9,0x93), o3(0xE0,0xB9,0x94),
o3(0xE0,0xB9,0x95), o3(0xE0,0xB9,0x96),
o3(0xE0,0xB9,0x97), o3(0xE0,0xB9,0x98),
o3(0xE0,0xB9,0x99), o3(0xE0,0xB9,0x9A),
o3(0xE0,0xB9,0x9B), UNDEF,
};
static const BYTE_LOOKUP
from_ISO_8859_11 = {
from_ISO_8859_11_offsets,
from_ISO_8859_11_infos
};
static rb_transcoder
rb_from_ISO_8859_11 = {
"ISO-8859-11", "UTF-8", &from_ISO_8859_11, 3, 0,
NULL, NULL,
};
static const unsigned char
to_ISO_8859_11_C2_offsets[64] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
};
static const struct byte_lookup* const
to_ISO_8859_11_C2_infos[34] = {
o1(0x80), o1(0x81), o1(0x82), o1(0x83),
o1(0x84), o1(0x85), o1(0x86), o1(0x87),
o1(0x88), o1(0x89), o1(0x8A), o1(0x8B),
o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F),
o1(0x90), o1(0x91), o1(0x92), o1(0x93),
o1(0x94), o1(0x95), o1(0x96), o1(0x97),
o1(0x98), o1(0x99), o1(0x9A), o1(0x9B),
o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F),
o1(0xA0), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_11_C2 = {
to_ISO_8859_11_C2_offsets,
to_ISO_8859_11_C2_infos
};
static const unsigned char
to_ISO_8859_11_E0_B8_offsets[64] = {
59, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 59, 59, 59, 59, 58,
};
static const struct byte_lookup* const
to_ISO_8859_11_E0_B8_infos[60] = {
o1(0xA1), o1(0xA2), o1(0xA3), o1(0xA4),
o1(0xA5), o1(0xA6), o1(0xA7), o1(0xA8),
o1(0xA9), o1(0xAA), o1(0xAB), o1(0xAC),
o1(0xAD), o1(0xAE), o1(0xAF), o1(0xB0),
o1(0xB1), o1(0xB2), o1(0xB3), o1(0xB4),
o1(0xB5), o1(0xB6), o1(0xB7), o1(0xB8),
o1(0xB9), o1(0xBA), o1(0xBB), o1(0xBC),
o1(0xBD), o1(0xBE), o1(0xBF), o1(0xC0),
o1(0xC1), o1(0xC2), o1(0xC3), o1(0xC4),
o1(0xC5), o1(0xC6), o1(0xC7), o1(0xC8),
o1(0xC9), o1(0xCA), o1(0xCB), o1(0xCC),
o1(0xCD), o1(0xCE), o1(0xCF), o1(0xD0),
o1(0xD1), o1(0xD2), o1(0xD3), o1(0xD4),
o1(0xD5), o1(0xD6), o1(0xD7), o1(0xD8),
o1(0xD9), o1(0xDA), o1(0xDF), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_11_E0_B8 = {
to_ISO_8859_11_E0_B8_offsets,
to_ISO_8859_11_E0_B8_infos
};
static const unsigned char
to_ISO_8859_11_E0_B9_offsets[64] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 28, 28, 28,
28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
};
static const struct byte_lookup* const
to_ISO_8859_11_E0_B9_infos[29] = {
o1(0xE0), o1(0xE1), o1(0xE2), o1(0xE3),
o1(0xE4), o1(0xE5), o1(0xE6), o1(0xE7),
o1(0xE8), o1(0xE9), o1(0xEA), o1(0xEB),
o1(0xEC), o1(0xED), o1(0xEE), o1(0xEF),
o1(0xF0), o1(0xF1), o1(0xF2), o1(0xF3),
o1(0xF4), o1(0xF5), o1(0xF6), o1(0xF7),
o1(0xF8), o1(0xF9), o1(0xFA), o1(0xFB),
UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_11_E0_B9 = {
to_ISO_8859_11_E0_B9_offsets,
to_ISO_8859_11_E0_B9_infos
};
static const unsigned char
to_ISO_8859_11_E0_offsets[64] = {
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 0, 1, 2, 2, 2, 2, 2, 2,
};
static const struct byte_lookup* const
to_ISO_8859_11_E0_infos[3] = {
&to_ISO_8859_11_E0_B8, &to_ISO_8859_11_E0_B9,
UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_11_E0 = {
to_ISO_8859_11_E0_offsets,
to_ISO_8859_11_E0_infos
};
static const unsigned char
to_ISO_8859_11_offsets[256] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
};
static const struct byte_lookup* const
to_ISO_8859_11_infos[4] = {
NOMAP, &to_ISO_8859_11_C2,
&to_ISO_8859_11_E0, UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_11 = {
to_ISO_8859_11_offsets,
to_ISO_8859_11_infos
};
static rb_transcoder
rb_to_ISO_8859_11 = {
"UTF-8", "ISO-8859-11", &to_ISO_8859_11, 1, 1,
NULL, NULL,
};
static const struct byte_lookup* const
from_ISO_8859_13_infos[129] = {
NOMAP, o2(0xC2,0x80),
o2(0xC2,0x81), o2(0xC2,0x82),
o2(0xC2,0x83), o2(0xC2,0x84),
o2(0xC2,0x85), o2(0xC2,0x86),
o2(0xC2,0x87), o2(0xC2,0x88),
o2(0xC2,0x89), o2(0xC2,0x8A),
o2(0xC2,0x8B), o2(0xC2,0x8C),
o2(0xC2,0x8D), o2(0xC2,0x8E),
o2(0xC2,0x8F), o2(0xC2,0x90),
o2(0xC2,0x91), o2(0xC2,0x92),
o2(0xC2,0x93), o2(0xC2,0x94),
o2(0xC2,0x95), o2(0xC2,0x96),
o2(0xC2,0x97), o2(0xC2,0x98),
o2(0xC2,0x99), o2(0xC2,0x9A),
o2(0xC2,0x9B), o2(0xC2,0x9C),
o2(0xC2,0x9D), o2(0xC2,0x9E),
o2(0xC2,0x9F), o2(0xC2,0xA0),
o3(0xE2,0x80,0x9D), o2(0xC2,0xA2),
o2(0xC2,0xA3), o2(0xC2,0xA4),
o3(0xE2,0x80,0x9E), o2(0xC2,0xA6),
o2(0xC2,0xA7), o2(0xC3,0x98),
o2(0xC2,0xA9), o2(0xC5,0x96),
o2(0xC2,0xAB), o2(0xC2,0xAC),
o2(0xC2,0xAD), o2(0xC2,0xAE),
o2(0xC3,0x86), o2(0xC2,0xB0),
o2(0xC2,0xB1), o2(0xC2,0xB2),
o2(0xC2,0xB3), o3(0xE2,0x80,0x9C),
o2(0xC2,0xB5), o2(0xC2,0xB6),
o2(0xC2,0xB7), o2(0xC3,0xB8),
o2(0xC2,0xB9), o2(0xC5,0x97),
o2(0xC2,0xBB), o2(0xC2,0xBC),
o2(0xC2,0xBD), o2(0xC2,0xBE),
o2(0xC3,0xA6), o2(0xC4,0x84),
o2(0xC4,0xAE), o2(0xC4,0x80),
o2(0xC4,0x86), o2(0xC3,0x84),
o2(0xC3,0x85), o2(0xC4,0x98),
o2(0xC4,0x92), o2(0xC4,0x8C),
o2(0xC3,0x89), o2(0xC5,0xB9),
o2(0xC4,0x96), o2(0xC4,0xA2),
o2(0xC4,0xB6), o2(0xC4,0xAA),
o2(0xC4,0xBB), o2(0xC5,0xA0),
o2(0xC5,0x83), o2(0xC5,0x85),
o2(0xC3,0x93), o2(0xC5,0x8C),
o2(0xC3,0x95), o2(0xC3,0x96),
o2(0xC3,0x97), o2(0xC5,0xB2),
o2(0xC5,0x81), o2(0xC5,0x9A),
o2(0xC5,0xAA), o2(0xC3,0x9C),
o2(0xC5,0xBB), o2(0xC5,0xBD),
o2(0xC3,0x9F), o2(0xC4,0x85),
o2(0xC4,0xAF), o2(0xC4,0x81),
o2(0xC4,0x87), o2(0xC3,0xA4),
o2(0xC3,0xA5), o2(0xC4,0x99),
o2(0xC4,0x93), o2(0xC4,0x8D),
o2(0xC3,0xA9), o2(0xC5,0xBA),
o2(0xC4,0x97), o2(0xC4,0xA3),
o2(0xC4,0xB7), o2(0xC4,0xAB),
o2(0xC4,0xBC), o2(0xC5,0xA1),
o2(0xC5,0x84), o2(0xC5,0x86),
o2(0xC3,0xB3), o2(0xC5,0x8D),
o2(0xC3,0xB5), o2(0xC3,0xB6),
o2(0xC3,0xB7), o2(0xC5,0xB3),
o2(0xC5,0x82), o2(0xC5,0x9B),
o2(0xC5,0xAB), o2(0xC3,0xBC),
o2(0xC5,0xBC), o2(0xC5,0xBE),
o3(0xE2,0x80,0x99),
};
static const BYTE_LOOKUP
from_ISO_8859_13 = {
from_ISO_8859_1_offsets,
from_ISO_8859_13_infos
};
static rb_transcoder
rb_from_ISO_8859_13 = {
"ISO-8859-13", "UTF-8", &from_ISO_8859_13, 3, 0,
NULL, NULL,
};
static const unsigned char
to_ISO_8859_13_C2_offsets[64] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 55, 33, 34, 35, 55, 36, 37, 55, 38, 55, 39, 40, 41, 42, 55,
43, 44, 45, 46, 55, 47, 48, 49, 55, 50, 55, 51, 52, 53, 54, 55,
};
static const struct byte_lookup* const
to_ISO_8859_13_C2_infos[56] = {
o1(0x80), o1(0x81), o1(0x82), o1(0x83),
o1(0x84), o1(0x85), o1(0x86), o1(0x87),
o1(0x88), o1(0x89), o1(0x8A), o1(0x8B),
o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F),
o1(0x90), o1(0x91), o1(0x92), o1(0x93),
o1(0x94), o1(0x95), o1(0x96), o1(0x97),
o1(0x98), o1(0x99), o1(0x9A), o1(0x9B),
o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F),
o1(0xA0), o1(0xA2), o1(0xA3), o1(0xA4),
o1(0xA6), o1(0xA7), o1(0xA9), o1(0xAB),
o1(0xAC), o1(0xAD), o1(0xAE), o1(0xB0),
o1(0xB1), o1(0xB2), o1(0xB3), o1(0xB5),
o1(0xB6), o1(0xB7), o1(0xB9), o1(0xBB),
o1(0xBC), o1(0xBD), o1(0xBE), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_13_C2 = {
to_ISO_8859_13_C2_offsets,
to_ISO_8859_13_C2_infos
};
static const unsigned char
to_ISO_8859_13_C3_offsets[64] = {
21, 21, 21, 21, 0, 1, 2, 21, 21, 3, 21, 21, 21, 21, 21, 21,
21, 21, 21, 4, 21, 5, 6, 7, 8, 21, 21, 21, 9, 21, 21, 10,
21, 21, 21, 21, 11, 12, 13, 21, 21, 14, 21, 21, 21, 21, 21, 21,
21, 21, 21, 15, 21, 16, 17, 18, 19, 21, 21, 21, 20, 21, 21, 21,
};
static const struct byte_lookup* const
to_ISO_8859_13_C3_infos[22] = {
o1(0xC4), o1(0xC5), o1(0xAF), o1(0xC9),
o1(0xD3), o1(0xD5), o1(0xD6), o1(0xD7),
o1(0xA8), o1(0xDC), o1(0xDF), o1(0xE4),
o1(0xE5), o1(0xBF), o1(0xE9), o1(0xF3),
o1(0xF5), o1(0xF6), o1(0xF7), o1(0xB8),
o1(0xFC), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_13_C3 = {
to_ISO_8859_13_C3_offsets,
to_ISO_8859_13_C3_infos
};
static const unsigned char
to_ISO_8859_13_C4_offsets[64] = {
0, 1, 24, 24, 2, 3, 4, 5, 24, 24, 24, 24, 6, 7, 24, 24,
24, 24, 8, 9, 24, 24, 10, 11, 12, 13, 24, 24, 24, 24, 24, 24,
24, 24, 14, 15, 24, 24, 24, 24, 24, 24, 16, 17, 24, 24, 18, 19,
24, 24, 24, 24, 24, 24, 20, 21, 24, 24, 24, 22, 23, 24, 24, 24,
};
static const struct byte_lookup* const
to_ISO_8859_13_C4_infos[25] = {
o1(0xC2), o1(0xE2), o1(0xC0), o1(0xE0),
o1(0xC3), o1(0xE3), o1(0xC8), o1(0xE8),
o1(0xC7), o1(0xE7), o1(0xCB), o1(0xEB),
o1(0xC6), o1(0xE6), o1(0xCC), o1(0xEC),
o1(0xCE), o1(0xEE), o1(0xC1), o1(0xE1),
o1(0xCD), o1(0xED), o1(0xCF), o1(0xEF),
UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_13_C4 = {
to_ISO_8859_13_C4_offsets,
to_ISO_8859_13_C4_infos
};
static const unsigned char
to_ISO_8859_13_C5_offsets[64] = {
24, 0, 1, 2, 3, 4, 5, 24, 24, 24, 24, 24, 6, 7, 24, 24,
24, 24, 24, 24, 24, 24, 8, 9, 24, 24, 10, 11, 24, 24, 24, 24,
12, 13, 24, 24, 24, 24, 24, 24, 24, 24, 14, 15, 24, 24, 24, 24,
24, 24, 16, 17, 24, 24, 24, 24, 24, 18, 19, 20, 21, 22, 23, 24,
};
static const struct byte_lookup* const
to_ISO_8859_13_C5_infos[25] = {
o1(0xD9), o1(0xF9), o1(0xD1), o1(0xF1),
o1(0xD2), o1(0xF2), o1(0xD4), o1(0xF4),
o1(0xAA), o1(0xBA), o1(0xDA), o1(0xFA),
o1(0xD0), o1(0xF0), o1(0xDB), o1(0xFB),
o1(0xD8), o1(0xF8), o1(0xCA), o1(0xEA),
o1(0xDD), o1(0xFD), o1(0xDE), o1(0xFE),
UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_13_C5 = {
to_ISO_8859_13_C5_offsets,
to_ISO_8859_13_C5_infos
};
static const unsigned char
to_ISO_8859_13_E2_80_offsets[64] = {
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 4, 4, 1, 2, 3, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
};
static const struct byte_lookup* const
to_ISO_8859_13_E2_80_infos[5] = {
o1(0xFF), o1(0xB4), o1(0xA1), o1(0xA5),
UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_13_E2_80 = {
to_ISO_8859_13_E2_80_offsets,
to_ISO_8859_13_E2_80_infos
};
static const struct byte_lookup* const
to_ISO_8859_13_E2_infos[2] = {
&to_ISO_8859_13_E2_80, UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_13_E2 = {
to_ISO_8859_8_E2_offsets,
to_ISO_8859_13_E2_infos
};
static const struct byte_lookup* const
to_ISO_8859_13_infos[7] = {
NOMAP, &to_ISO_8859_13_C2,
&to_ISO_8859_13_C3, &to_ISO_8859_13_C4,
&to_ISO_8859_13_C5, &to_ISO_8859_13_E2,
UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_13 = {
to_ISO_8859_10_offsets,
to_ISO_8859_13_infos
};
static rb_transcoder
rb_to_ISO_8859_13 = {
"UTF-8", "ISO-8859-13", &to_ISO_8859_13, 1, 1,
NULL, NULL,
};
static const struct byte_lookup* const
from_ISO_8859_14_infos[129] = {
NOMAP, o2(0xC2,0x80),
o2(0xC2,0x81), o2(0xC2,0x82),
o2(0xC2,0x83), o2(0xC2,0x84),
o2(0xC2,0x85), o2(0xC2,0x86),
o2(0xC2,0x87), o2(0xC2,0x88),
o2(0xC2,0x89), o2(0xC2,0x8A),
o2(0xC2,0x8B), o2(0xC2,0x8C),
o2(0xC2,0x8D), o2(0xC2,0x8E),
o2(0xC2,0x8F), o2(0xC2,0x90),
o2(0xC2,0x91), o2(0xC2,0x92),
o2(0xC2,0x93), o2(0xC2,0x94),
o2(0xC2,0x95), o2(0xC2,0x96),
o2(0xC2,0x97), o2(0xC2,0x98),
o2(0xC2,0x99), o2(0xC2,0x9A),
o2(0xC2,0x9B), o2(0xC2,0x9C),
o2(0xC2,0x9D), o2(0xC2,0x9E),
o2(0xC2,0x9F), o2(0xC2,0xA0),
o3(0xE1,0xB8,0x82), o3(0xE1,0xB8,0x83),
o2(0xC2,0xA3), o2(0xC4,0x8A),
o2(0xC4,0x8B), o3(0xE1,0xB8,0x8A),
o2(0xC2,0xA7), o3(0xE1,0xBA,0x80),
o2(0xC2,0xA9), o3(0xE1,0xBA,0x82),
o3(0xE1,0xB8,0x8B), o3(0xE1,0xBB,0xB2),
o2(0xC2,0xAD), o2(0xC2,0xAE),
o2(0xC5,0xB8), o3(0xE1,0xB8,0x9E),
o3(0xE1,0xB8,0x9F), o2(0xC4,0xA0),
o2(0xC4,0xA1), o3(0xE1,0xB9,0x80),
o3(0xE1,0xB9,0x81), o2(0xC2,0xB6),
o3(0xE1,0xB9,0x96), o3(0xE1,0xBA,0x81),
o3(0xE1,0xB9,0x97), o3(0xE1,0xBA,0x83),
o3(0xE1,0xB9,0xA0), o3(0xE1,0xBB,0xB3),
o3(0xE1,0xBA,0x84), o3(0xE1,0xBA,0x85),
o3(0xE1,0xB9,0xA1), o2(0xC3,0x80),
o2(0xC3,0x81), o2(0xC3,0x82),
o2(0xC3,0x83), o2(0xC3,0x84),
o2(0xC3,0x85), o2(0xC3,0x86),
o2(0xC3,0x87), o2(0xC3,0x88),
o2(0xC3,0x89), o2(0xC3,0x8A),
o2(0xC3,0x8B), o2(0xC3,0x8C),
o2(0xC3,0x8D), o2(0xC3,0x8E),
o2(0xC3,0x8F), o2(0xC5,0xB4),
o2(0xC3,0x91), o2(0xC3,0x92),
o2(0xC3,0x93), o2(0xC3,0x94),
o2(0xC3,0x95), o2(0xC3,0x96),
o3(0xE1,0xB9,0xAA), o2(0xC3,0x98),
o2(0xC3,0x99), o2(0xC3,0x9A),
o2(0xC3,0x9B), o2(0xC3,0x9C),
o2(0xC3,0x9D), o2(0xC5,0xB6),
o2(0xC3,0x9F), o2(0xC3,0xA0),
o2(0xC3,0xA1), o2(0xC3,0xA2),
o2(0xC3,0xA3), o2(0xC3,0xA4),
o2(0xC3,0xA5), o2(0xC3,0xA6),
o2(0xC3,0xA7), o2(0xC3,0xA8),
o2(0xC3,0xA9), o2(0xC3,0xAA),
o2(0xC3,0xAB), o2(0xC3,0xAC),
o2(0xC3,0xAD), o2(0xC3,0xAE),
o2(0xC3,0xAF), o2(0xC5,0xB5),
o2(0xC3,0xB1), o2(0xC3,0xB2),
o2(0xC3,0xB3), o2(0xC3,0xB4),
o2(0xC3,0xB5), o2(0xC3,0xB6),
o3(0xE1,0xB9,0xAB), o2(0xC3,0xB8),
o2(0xC3,0xB9), o2(0xC3,0xBA),
o2(0xC3,0xBB), o2(0xC3,0xBC),
o2(0xC3,0xBD), o2(0xC5,0xB7),
o2(0xC3,0xBF),
};
static const BYTE_LOOKUP
from_ISO_8859_14 = {
from_ISO_8859_1_offsets,
from_ISO_8859_14_infos
};
static rb_transcoder
rb_from_ISO_8859_14 = {
"ISO-8859-14", "UTF-8", &from_ISO_8859_14, 3, 0,
NULL, NULL,
};
static const unsigned char
to_ISO_8859_14_C2_offsets[64] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 39, 39, 33, 39, 39, 39, 34, 39, 35, 39, 39, 39, 36, 37, 39,
39, 39, 39, 39, 39, 39, 38, 39, 39, 39, 39, 39, 39, 39, 39, 39,
};
static const struct byte_lookup* const
to_ISO_8859_14_C2_infos[40] = {
o1(0x80), o1(0x81), o1(0x82), o1(0x83),
o1(0x84), o1(0x85), o1(0x86), o1(0x87),
o1(0x88), o1(0x89), o1(0x8A), o1(0x8B),
o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F),
o1(0x90), o1(0x91), o1(0x92), o1(0x93),
o1(0x94), o1(0x95), o1(0x96), o1(0x97),
o1(0x98), o1(0x99), o1(0x9A), o1(0x9B),
o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F),
o1(0xA0), o1(0xA3), o1(0xA7), o1(0xA9),
o1(0xAD), o1(0xAE), o1(0xB6), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_14_C2 = {
to_ISO_8859_14_C2_offsets,
to_ISO_8859_14_C2_infos
};
static const unsigned char
to_ISO_8859_14_C3_offsets[64] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
58, 16, 17, 18, 19, 20, 21, 58, 22, 23, 24, 25, 26, 27, 58, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
58, 45, 46, 47, 48, 49, 50, 58, 51, 52, 53, 54, 55, 56, 58, 57,
};
static const struct byte_lookup* const
to_ISO_8859_14_C3_infos[59] = {
o1(0xC0), o1(0xC1), o1(0xC2), o1(0xC3),
o1(0xC4), o1(0xC5), o1(0xC6), o1(0xC7),
o1(0xC8), o1(0xC9), o1(0xCA), o1(0xCB),
o1(0xCC), o1(0xCD), o1(0xCE), o1(0xCF),
o1(0xD1), o1(0xD2), o1(0xD3), o1(0xD4),
o1(0xD5), o1(0xD6), o1(0xD8), o1(0xD9),
o1(0xDA), o1(0xDB), o1(0xDC), o1(0xDD),
o1(0xDF), o1(0xE0), o1(0xE1), o1(0xE2),
o1(0xE3), o1(0xE4), o1(0xE5), o1(0xE6),
o1(0xE7), o1(0xE8), o1(0xE9), o1(0xEA),
o1(0xEB), o1(0xEC), o1(0xED), o1(0xEE),
o1(0xEF), o1(0xF1), o1(0xF2), o1(0xF3),
o1(0xF4), o1(0xF5), o1(0xF6), o1(0xF8),
o1(0xF9), o1(0xFA), o1(0xFB), o1(0xFC),
o1(0xFD), o1(0xFF), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_14_C3 = {
to_ISO_8859_14_C3_offsets,
to_ISO_8859_14_C3_infos
};
static const unsigned char
to_ISO_8859_14_C4_offsets[64] = {
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 1, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
2, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
};
static const struct byte_lookup* const
to_ISO_8859_14_C4_infos[5] = {
o1(0xA4), o1(0xA5), o1(0xB2), o1(0xB3),
UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_14_C4 = {
to_ISO_8859_14_C4_offsets,
to_ISO_8859_14_C4_infos
};
static const unsigned char
to_ISO_8859_14_C5_offsets[64] = {
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 0, 1, 2, 3, 4, 5, 5, 5, 5, 5, 5, 5,
};
static const struct byte_lookup* const
to_ISO_8859_14_C5_infos[6] = {
o1(0xD0), o1(0xF0), o1(0xDE), o1(0xFE),
o1(0xAF), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_14_C5 = {
to_ISO_8859_14_C5_offsets,
to_ISO_8859_14_C5_infos
};
static const unsigned char
to_ISO_8859_14_E1_B8_offsets[64] = {
6, 6, 0, 1, 6, 6, 6, 6, 6, 6, 2, 3, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 5,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
};
static const struct byte_lookup* const
to_ISO_8859_14_E1_B8_infos[7] = {
o1(0xA1), o1(0xA2), o1(0xA6), o1(0xAB),
o1(0xB0), o1(0xB1), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_14_E1_B8 = {
to_ISO_8859_14_E1_B8_offsets,
to_ISO_8859_14_E1_B8_infos
};
static const unsigned char
to_ISO_8859_14_E1_B9_offsets[64] = {
0, 1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 2, 3, 8, 8, 8, 8, 8, 8, 8, 8,
4, 5, 8, 8, 8, 8, 8, 8, 8, 8, 6, 7, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
};
static const struct byte_lookup* const
to_ISO_8859_14_E1_B9_infos[9] = {
o1(0xB4), o1(0xB5), o1(0xB7), o1(0xB9),
o1(0xBB), o1(0xBF), o1(0xD7), o1(0xF7),
UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_14_E1_B9 = {
to_ISO_8859_14_E1_B9_offsets,
to_ISO_8859_14_E1_B9_infos
};
static const unsigned char
to_ISO_8859_14_E1_BA_offsets[64] = {
0, 1, 2, 3, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
};
static const struct byte_lookup* const
to_ISO_8859_14_E1_BA_infos[7] = {
o1(0xA8), o1(0xB8), o1(0xAA), o1(0xBA),
o1(0xBD), o1(0xBE), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_14_E1_BA = {
to_ISO_8859_14_E1_BA_offsets,
to_ISO_8859_14_E1_BA_infos
};
static const unsigned char
to_ISO_8859_14_E1_BB_offsets[64] = {
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
};
static const struct byte_lookup* const
to_ISO_8859_14_E1_BB_infos[3] = {
o1(0xAC), o1(0xBC), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_14_E1_BB = {
to_ISO_8859_14_E1_BB_offsets,
to_ISO_8859_14_E1_BB_infos
};
static const unsigned char
to_ISO_8859_14_E1_offsets[64] = {
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 0, 1, 2, 3, 4, 4, 4, 4,
};
static const struct byte_lookup* const
to_ISO_8859_14_E1_infos[5] = {
&to_ISO_8859_14_E1_B8, &to_ISO_8859_14_E1_B9,
&to_ISO_8859_14_E1_BA, &to_ISO_8859_14_E1_BB,
UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_14_E1 = {
to_ISO_8859_14_E1_offsets,
to_ISO_8859_14_E1_infos
};
static const unsigned char
to_ISO_8859_14_offsets[256] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 1, 2, 3, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
};
static const struct byte_lookup* const
to_ISO_8859_14_infos[7] = {
NOMAP, &to_ISO_8859_14_C2,
&to_ISO_8859_14_C3, &to_ISO_8859_14_C4,
&to_ISO_8859_14_C5, &to_ISO_8859_14_E1,
UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_14 = {
to_ISO_8859_14_offsets,
to_ISO_8859_14_infos
};
static rb_transcoder
rb_to_ISO_8859_14 = {
"UTF-8", "ISO-8859-14", &to_ISO_8859_14, 1, 1,
NULL, NULL,
};
static const struct byte_lookup* const
from_ISO_8859_15_infos[129] = {
NOMAP, o2(0xC2,0x80),
o2(0xC2,0x81), o2(0xC2,0x82),
o2(0xC2,0x83), o2(0xC2,0x84),
o2(0xC2,0x85), o2(0xC2,0x86),
o2(0xC2,0x87), o2(0xC2,0x88),
o2(0xC2,0x89), o2(0xC2,0x8A),
o2(0xC2,0x8B), o2(0xC2,0x8C),
o2(0xC2,0x8D), o2(0xC2,0x8E),
o2(0xC2,0x8F), o2(0xC2,0x90),
o2(0xC2,0x91), o2(0xC2,0x92),
o2(0xC2,0x93), o2(0xC2,0x94),
o2(0xC2,0x95), o2(0xC2,0x96),
o2(0xC2,0x97), o2(0xC2,0x98),
o2(0xC2,0x99), o2(0xC2,0x9A),
o2(0xC2,0x9B), o2(0xC2,0x9C),
o2(0xC2,0x9D), o2(0xC2,0x9E),
o2(0xC2,0x9F), o2(0xC2,0xA0),
o2(0xC2,0xA1), o2(0xC2,0xA2),
o2(0xC2,0xA3), o3(0xE2,0x82,0xAC),
o2(0xC2,0xA5), o2(0xC5,0xA0),
o2(0xC2,0xA7), o2(0xC5,0xA1),
o2(0xC2,0xA9), o2(0xC2,0xAA),
o2(0xC2,0xAB), o2(0xC2,0xAC),
o2(0xC2,0xAD), o2(0xC2,0xAE),
o2(0xC2,0xAF), o2(0xC2,0xB0),
o2(0xC2,0xB1), o2(0xC2,0xB2),
o2(0xC2,0xB3), o2(0xC5,0xBD),
o2(0xC2,0xB5), o2(0xC2,0xB6),
o2(0xC2,0xB7), o2(0xC5,0xBE),
o2(0xC2,0xB9), o2(0xC2,0xBA),
o2(0xC2,0xBB), o2(0xC5,0x92),
o2(0xC5,0x93), o2(0xC5,0xB8),
o2(0xC2,0xBF), o2(0xC3,0x80),
o2(0xC3,0x81), o2(0xC3,0x82),
o2(0xC3,0x83), o2(0xC3,0x84),
o2(0xC3,0x85), o2(0xC3,0x86),
o2(0xC3,0x87), o2(0xC3,0x88),
o2(0xC3,0x89), o2(0xC3,0x8A),
o2(0xC3,0x8B), o2(0xC3,0x8C),
o2(0xC3,0x8D), o2(0xC3,0x8E),
o2(0xC3,0x8F), o2(0xC3,0x90),
o2(0xC3,0x91), o2(0xC3,0x92),
o2(0xC3,0x93), o2(0xC3,0x94),
o2(0xC3,0x95), o2(0xC3,0x96),
o2(0xC3,0x97), o2(0xC3,0x98),
o2(0xC3,0x99), o2(0xC3,0x9A),
o2(0xC3,0x9B), o2(0xC3,0x9C),
o2(0xC3,0x9D), o2(0xC3,0x9E),
o2(0xC3,0x9F), o2(0xC3,0xA0),
o2(0xC3,0xA1), o2(0xC3,0xA2),
o2(0xC3,0xA3), o2(0xC3,0xA4),
o2(0xC3,0xA5), o2(0xC3,0xA6),
o2(0xC3,0xA7), o2(0xC3,0xA8),
o2(0xC3,0xA9), o2(0xC3,0xAA),
o2(0xC3,0xAB), o2(0xC3,0xAC),
o2(0xC3,0xAD), o2(0xC3,0xAE),
o2(0xC3,0xAF), o2(0xC3,0xB0),
o2(0xC3,0xB1), o2(0xC3,0xB2),
o2(0xC3,0xB3), o2(0xC3,0xB4),
o2(0xC3,0xB5), o2(0xC3,0xB6),
o2(0xC3,0xB7), o2(0xC3,0xB8),
o2(0xC3,0xB9), o2(0xC3,0xBA),
o2(0xC3,0xBB), o2(0xC3,0xBC),
o2(0xC3,0xBD), o2(0xC3,0xBE),
o2(0xC3,0xBF),
};
static const BYTE_LOOKUP
from_ISO_8859_15 = {
from_ISO_8859_1_offsets,
from_ISO_8859_15_infos
};
static rb_transcoder
rb_from_ISO_8859_15 = {
"ISO-8859-15", "UTF-8", &from_ISO_8859_15, 3, 0,
NULL, NULL,
};
static const unsigned char
to_ISO_8859_15_C2_offsets[64] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 56, 36, 56, 37, 56, 38, 39, 40, 41, 42, 43, 44,
45, 46, 47, 48, 56, 49, 50, 51, 56, 52, 53, 54, 56, 56, 56, 55,
};
static const struct byte_lookup* const
to_ISO_8859_15_C2_infos[57] = {
o1(0x80), o1(0x81), o1(0x82), o1(0x83),
o1(0x84), o1(0x85), o1(0x86), o1(0x87),
o1(0x88), o1(0x89), o1(0x8A), o1(0x8B),
o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F),
o1(0x90), o1(0x91), o1(0x92), o1(0x93),
o1(0x94), o1(0x95), o1(0x96), o1(0x97),
o1(0x98), o1(0x99), o1(0x9A), o1(0x9B),
o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F),
o1(0xA0), o1(0xA1), o1(0xA2), o1(0xA3),
o1(0xA5), o1(0xA7), o1(0xA9), o1(0xAA),
o1(0xAB), o1(0xAC), o1(0xAD), o1(0xAE),
o1(0xAF), o1(0xB0), o1(0xB1), o1(0xB2),
o1(0xB3), o1(0xB5), o1(0xB6), o1(0xB7),
o1(0xB9), o1(0xBA), o1(0xBB), o1(0xBF),
UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_15_C2 = {
to_ISO_8859_15_C2_offsets,
to_ISO_8859_15_C2_infos
};
static const unsigned char
to_ISO_8859_15_C5_offsets[64] = {
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 0, 1, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2, 3, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 4, 7, 7, 7, 7, 5, 6, 7,
};
static const struct byte_lookup* const
to_ISO_8859_15_C5_infos[8] = {
o1(0xBC), o1(0xBD), o1(0xA6), o1(0xA8),
o1(0xBE), o1(0xB4), o1(0xB8), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_15_C5 = {
to_ISO_8859_15_C5_offsets,
to_ISO_8859_15_C5_infos
};
static const unsigned char
to_ISO_8859_15_E2_82_offsets[64] = {
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
};
static const struct byte_lookup* const
to_ISO_8859_15_E2_82_infos[2] = {
o1(0xA4), UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_15_E2_82 = {
to_ISO_8859_15_E2_82_offsets,
to_ISO_8859_15_E2_82_infos
};
static const unsigned char
to_ISO_8859_15_E2_offsets[64] = {
1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
};
static const struct byte_lookup* const
to_ISO_8859_15_E2_infos[2] = {
&to_ISO_8859_15_E2_82, UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_15_E2 = {
to_ISO_8859_15_E2_offsets,
to_ISO_8859_15_E2_infos
};
static const unsigned char
to_ISO_8859_15_offsets[256] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 1, 2, 5, 3, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
};
static const struct byte_lookup* const
to_ISO_8859_15_infos[6] = {
NOMAP, &to_ISO_8859_15_C2,
&to_ISO_8859_1_C3, &to_ISO_8859_15_C5,
&to_ISO_8859_15_E2, UNDEF,
};
static const BYTE_LOOKUP
to_ISO_8859_15 = {
to_ISO_8859_15_offsets,
to_ISO_8859_15_infos
};
static rb_transcoder
rb_to_ISO_8859_15 = {
"UTF-8", "ISO-8859-15", &to_ISO_8859_15, 1, 1,
NULL, NULL,
};
void
Init_single_byte(void)
{
rb_register_transcoder(&rb_from_US_ASCII);
rb_register_transcoder(&rb_to_US_ASCII);
rb_register_transcoder(&rb_from_ASCII_8BIT);
rb_register_transcoder(&rb_to_ASCII_8BIT);
rb_register_transcoder(&rb_from_ISO_8859_1);
rb_register_transcoder(&rb_to_ISO_8859_1);
rb_register_transcoder(&rb_from_ISO_8859_2);
rb_register_transcoder(&rb_to_ISO_8859_2);
rb_register_transcoder(&rb_from_ISO_8859_3);
rb_register_transcoder(&rb_to_ISO_8859_3);
rb_register_transcoder(&rb_from_ISO_8859_4);
rb_register_transcoder(&rb_to_ISO_8859_4);
rb_register_transcoder(&rb_from_ISO_8859_5);
rb_register_transcoder(&rb_to_ISO_8859_5);
rb_register_transcoder(&rb_from_ISO_8859_6);
rb_register_transcoder(&rb_to_ISO_8859_6);
rb_register_transcoder(&rb_from_ISO_8859_7);
rb_register_transcoder(&rb_to_ISO_8859_7);
rb_register_transcoder(&rb_from_ISO_8859_8);
rb_register_transcoder(&rb_to_ISO_8859_8);
rb_register_transcoder(&rb_from_ISO_8859_9);
rb_register_transcoder(&rb_to_ISO_8859_9);
rb_register_transcoder(&rb_from_ISO_8859_10);
rb_register_transcoder(&rb_to_ISO_8859_10);
rb_register_transcoder(&rb_from_ISO_8859_11);
rb_register_transcoder(&rb_to_ISO_8859_11);
rb_register_transcoder(&rb_from_ISO_8859_13);
rb_register_transcoder(&rb_to_ISO_8859_13);
rb_register_transcoder(&rb_from_ISO_8859_14);
rb_register_transcoder(&rb_to_ISO_8859_14);
rb_register_transcoder(&rb_from_ISO_8859_15);
rb_register_transcoder(&rb_to_ISO_8859_15);
}
/* Footprint (bytes): gross: 27876, saved: 4544, net: 23332 */