10static const unsigned short koi8_r_2uni[128] = {
12 0x2500, 0x2502, 0x250c, 0x2510, 0x2514, 0x2518, 0x251c, 0x2524,
13 0x252c, 0x2534, 0x253c, 0x2580, 0x2584, 0x2588, 0x258c, 0x2590,
15 0x2591, 0x2592, 0x2593, 0x2320, 0x25a0, 0x2219, 0x221a, 0x2248,
16 0x2264, 0x2265, 0x00a0, 0x2321, 0x00b0, 0x00b2, 0x00b7, 0x00f7,
18 0x2550, 0x2551, 0x2552, 0x0451, 0x2553, 0x2554, 0x2555, 0x2556,
19 0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x255c, 0x255d, 0x255e,
21 0x255f, 0x2560, 0x2561, 0x0401, 0x2562, 0x2563, 0x2564, 0x2565,
22 0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x256b, 0x256c, 0x00a9,
24 0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433,
25 0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e,
27 0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432,
28 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a,
30 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413,
31 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e,
33 0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412,
34 0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a,
38koi8_r_mbtowc (conv_t conv, ucs4_t *pwc,
const unsigned char *s,
int n)
44 *pwc = (ucs4_t) koi8_r_2uni[c-0x80];
50static const unsigned char koi8_r_page00[88] = {
51 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
52 0x00, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
53 0x9c, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x00, 0x9e,
54 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
55 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
56 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
57 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
58 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
59 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
60 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
61 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f,
63static const unsigned char koi8_r_page04[88] = {
64 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
65 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
66 0xe1, 0xe2, 0xf7, 0xe7, 0xe4, 0xe5, 0xf6, 0xfa,
67 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0,
68 0xf2, 0xf3, 0xf4, 0xf5, 0xe6, 0xe8, 0xe3, 0xfe,
69 0xfb, 0xfd, 0xff, 0xf9, 0xf8, 0xfc, 0xe0, 0xf1,
70 0xc1, 0xc2, 0xd7, 0xc7, 0xc4, 0xc5, 0xd6, 0xda,
71 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0,
72 0xd2, 0xd3, 0xd4, 0xd5, 0xc6, 0xc8, 0xc3, 0xde,
73 0xdb, 0xdd, 0xdf, 0xd9, 0xd8, 0xdc, 0xc0, 0xd1,
74 0x00, 0xa3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
76static const unsigned char koi8_r_page22[80] = {
77 0x00, 0x95, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00,
78 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
79 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
80 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
81 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
82 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
83 0x97, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
84 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
85 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
86 0x00, 0x00, 0x00, 0x00, 0x98, 0x99, 0x00, 0x00,
88static const unsigned char koi8_r_page23[8] = {
89 0x93, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
91static const unsigned char koi8_r_page25[168] = {
92 0x80, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00,
93 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00,
94 0x83, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00,
95 0x85, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00,
96 0x00, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00,
97 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00,
98 0x00, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00,
99 0x00, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00,
100 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
101 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
102 0xa0, 0xa1, 0xa2, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8,
103 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0,
104 0xb1, 0xb2, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9,
105 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0x00, 0x00, 0x00,
106 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
107 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
108 0x8b, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00,
109 0x8d, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00,
110 0x8f, 0x90, 0x91, 0x92, 0x00, 0x00, 0x00, 0x00,
111 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
112 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
116koi8_r_wctomb (conv_t conv,
unsigned char *r, ucs4_t wc,
int n)
123 else if (wc >= 0x00a0 && wc < 0x00f8)
124 c = koi8_r_page00[wc-0x00a0];
125 else if (wc >= 0x0400 && wc < 0x0458)
126 c = koi8_r_page04[wc-0x0400];
127 else if (wc >= 0x2218 && wc < 0x2268)
128 c = koi8_r_page22[wc-0x2218];
129 else if (wc >= 0x2320 && wc < 0x2328)
130 c = koi8_r_page23[wc-0x2320];
131 else if (wc >= 0x2500 && wc < 0x25a8)
132 c = koi8_r_page25[wc-0x2500];