9 static const unsigned short koi8_u_2uni[128] = {
11 0x2500, 0x2502, 0x250c, 0x2510, 0x2514, 0x2518, 0x251c, 0x2524,
12 0x252c, 0x2534, 0x253c, 0x2580, 0x2584, 0x2588, 0x258c, 0x2590,
14 0x2591, 0x2592, 0x2593, 0x2320, 0x25a0, 0x2219, 0x221a, 0x2248,
15 0x2264, 0x2265, 0x00a0, 0x2321, 0x00b0, 0x00b2, 0x00b7, 0x00f7,
17 0x2550, 0x2551, 0x2552, 0x0451, 0x0454, 0x2554, 0x0456, 0x0457,
18 0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x0491, 0x255d, 0x255e,
20 0x255f, 0x2560, 0x2561, 0x0401, 0x0404, 0x2563, 0x0406, 0x0407,
21 0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x0490, 0x256c, 0x00a9,
23 0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433,
24 0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e,
26 0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432,
27 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a,
29 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413,
30 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e,
32 0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412,
33 0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a,
37 koi8_u_mbtowc (conv_t conv, ucs4_t *pwc,
const unsigned char *s,
int n)
43 *pwc = (ucs4_t) koi8_u_2uni[c-0x80];
49 static const unsigned char koi8_u_page00[88] = {
50 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
51 0x00, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
52 0x9c, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x00, 0x9e,
53 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
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, 0x9f,
62 static const unsigned char koi8_u_page04[152] = {
63 0x00, 0xb3, 0x00, 0x00, 0xb4, 0x00, 0xb6, 0xb7,
64 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
65 0xe1, 0xe2, 0xf7, 0xe7, 0xe4, 0xe5, 0xf6, 0xfa,
66 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0,
67 0xf2, 0xf3, 0xf4, 0xf5, 0xe6, 0xe8, 0xe3, 0xfe,
68 0xfb, 0xfd, 0xff, 0xf9, 0xf8, 0xfc, 0xe0, 0xf1,
69 0xc1, 0xc2, 0xd7, 0xc7, 0xc4, 0xc5, 0xd6, 0xda,
70 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0,
71 0xd2, 0xd3, 0xd4, 0xd5, 0xc6, 0xc8, 0xc3, 0xde,
72 0xdb, 0xdd, 0xdf, 0xd9, 0xd8, 0xdc, 0xc0, 0xd1,
73 0x00, 0xa3, 0x00, 0x00, 0xa4, 0x00, 0xa6, 0xa7,
74 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
75 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
76 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
77 0x00, 0x00, 0x00, 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 0xbd, 0xad, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
83 static const unsigned char koi8_u_page22[80] = {
84 0x00, 0x95, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00,
85 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
86 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
87 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
88 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
89 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
90 0x97, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
91 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
92 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
93 0x00, 0x00, 0x00, 0x00, 0x98, 0x99, 0x00, 0x00,
95 static const unsigned char koi8_u_page23[8] = {
96 0x93, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
98 static const unsigned char koi8_u_page25[168] = {
99 0x80, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00,
100 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00,
101 0x83, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00,
102 0x85, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00,
103 0x00, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00,
104 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00,
105 0x00, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00,
106 0x00, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00,
107 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
108 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
109 0xa0, 0xa1, 0xa2, 0x00, 0xa5, 0x00, 0x00, 0xa8,
110 0xa9, 0xaa, 0xab, 0xac, 0x00, 0xae, 0xaf, 0xb0,
111 0xb1, 0xb2, 0x00, 0xb5, 0x00, 0x00, 0xb8, 0xb9,
112 0xba, 0xbb, 0xbc, 0x00, 0xbe, 0x00, 0x00, 0x00,
113 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
114 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
115 0x8b, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00,
116 0x8d, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00,
117 0x8f, 0x90, 0x91, 0x92, 0x00, 0x00, 0x00, 0x00,
118 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
119 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
123 koi8_u_wctomb (conv_t conv,
unsigned char *r, ucs4_t wc,
int n)
130 else if (wc >= 0x00a0 && wc < 0x00f8)
131 c = koi8_u_page00[wc-0x00a0];
132 else if (wc >= 0x0400 && wc < 0x0498)
133 c = koi8_u_page04[wc-0x0400];
134 else if (wc >= 0x2218 && wc < 0x2268)
135 c = koi8_u_page22[wc-0x2218];
136 else if (wc >= 0x2320 && wc < 0x2328)
137 c = koi8_u_page23[wc-0x2320];
138 else if (wc >= 0x2500 && wc < 0x25a8)
139 c = koi8_u_page25[wc-0x2500];