… | |
… | |
8 | 0x00, 0x00, 0x00, 0xbf, 0x00, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, |
8 | 0x00, 0x00, 0x00, 0xbf, 0x00, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, |
9 | 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0x00, |
9 | 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0x00, |
10 | 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, |
10 | 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, |
11 | 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2 |
11 | 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2 |
12 | }; |
12 | }; |
13 | static const uint16_t iso8859_6_t_0[] = { |
|
|
14 | 0x00a0, 0x0000, 0x0000, 0x0000, 0x00a4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, |
|
|
15 | 0x060c, 0x00ad, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, |
|
|
16 | 0x0000, 0x0000, 0x0000, 0x061b, 0x0000, 0x0000, 0x0000, 0x061f, 0x0000, 0x0621, 0x0622, 0x0623, |
|
|
17 | 0x0624, 0x0625, 0x0626, 0x0627, 0x0628, 0x0629, 0x062a, 0x062b, 0x062c, 0x062d, 0x062e, 0x062f, |
|
|
18 | 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637, 0x0638, 0x0639, 0x063a, 0x0000, |
|
|
19 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0640, 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647, |
|
|
20 | 0x0648, 0x0649, 0x064a, 0x064b, 0x064c, 0x064d, 0x064e, 0x064f, 0x0650, 0x0651, 0x0652 |
|
|
21 | }; |
|
|
22 | |
13 | |
23 | struct rxvt_codeset_conv_iso8859_6 : rxvt_codeset_conv { |
14 | static uint32_t cs_iso8859_6_from_unicode (unicode_t unicode) { |
24 | uint32_t from_unicode (uint32_t unicode) const { |
|
|
25 | if (unicode <= 0x009f) return unicode; |
15 | if (unicode <= 0x009f) return unicode; |
26 | if (unicode == 0x00a0) return 0x00a0; |
16 | if (unicode == 0x00a0) return 0x00a0; |
27 | if (unicode == 0x00a4) return 0x00a4; |
17 | if (unicode == 0x00a4) return 0x00a4; |
28 | if (unicode == 0x00ad) return 0x00ad; |
18 | if (unicode == 0x00ad) return 0x00ad; |
29 | if (0x060c <= unicode && unicode <= 0x0652) |
19 | if (0x060c <= unicode && unicode <= 0x0652) |
30 | return iso8859_6_f_1536[unicode - 0x060c] == 0 ? NOCHAR : iso8859_6_f_1536[unicode - 0x060c]; |
20 | return iso8859_6_f_1536[unicode - 0x060c] == 0 ? NOCHAR : iso8859_6_f_1536[unicode - 0x060c]; |
31 | return NOCHAR; |
21 | return NOCHAR; |
32 | } |
22 | } |
33 | uint32_t to_unicode (uint32_t enc) const { |
|
|
34 | if (enc <= 0x009f) return enc; |
|
|
35 | if (0x00a0 <= enc && enc <= 0x00f2) |
|
|
36 | return iso8859_6_t_0[enc - 0x00a0] == 0 ? NOCHAR : iso8859_6_t_0[enc - 0x00a0]; |
|
|
37 | return NOCHAR; |
|
|
38 | } |
|
|
39 | } rxvt_codeset_conv_iso8859_6; |
|
|
40 | |
23 | |
41 | #else |
24 | #else |
42 | |
25 | |
43 | #define rxvt_codeset_conv_iso8859_6 rxvt_codeset_conv_unknown |
26 | #define cs_iso8859_6_from_unicode cs_unknown_from_unicode |
|
|
27 | #define cs_iso8859_6_to_unicode cs_unknown_to_unicode |
44 | |
28 | |
45 | #endif |
29 | #endif |