5 static unsigned char win2koi[] = {
6 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
7 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
8 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
9 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
10 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
11 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
12 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
14 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
16 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
18 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
20 160, 161, 162, 163, 164, 189, 166, 167, 179, 169, 180, 171, 172, 173,
22 176, 177, 182, 166, 173, 181, 182, 183, 163, 185, 164, 187, 188, 189,
24 225, 226, 247, 231, 228, 229, 246, 250, 233, 234, 235, 236, 237, 238,
26 242, 243, 244, 245, 230, 232, 227, 254, 251, 253, 255, 249, 248, 252,
28 193, 194, 215, 199, 196, 197, 214, 218, 201, 202, 203, 204, 205, 206,
30 210, 211, 212, 213, 198, 200, 195, 222, 219, 221, 223, 217, 216, 220,
34 static unsigned char koi2win[] = {
35 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
36 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
37 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
38 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
39 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
40 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
41 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
43 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
45 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
47 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
49 160, 161, 162, 184, 186, 165, 179, 191, 168, 169, 170, 171, 172, 180,
51 176, 177, 178, 168, 170, 181, 178, 175, 184, 185, 186, 187, 188, 165,
53 254, 224, 225, 246, 228, 229, 244, 227, 245, 232, 233, 234, 235, 236,
55 239, 255, 240, 241, 242, 243, 230, 226, 252, 251, 231, 248, 253, 249,
57 222, 192, 193, 214, 196, 197, 212, 195, 213, 200, 201, 202, 203, 204,
59 207, 223, 208, 209, 210, 211, 198, 194, 220, 219, 199, 216, 221, 217,
63 static unsigned char xlatWIN1250toISO88592[] = {
64 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
65 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
66 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
67 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
68 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
69 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
70 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
72 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
74 128, 129, 39, 131, 34, 46, 124, 124, 136, 47, 169, 60, 166, 171, 174,
76 144, 96, 39, 34, 34, 42, 45, 45, 152, 84, 185, 62, 182, 187, 190, 188,
77 160, 183, 162, 163, 164, 161, 124, 167, 168, 99, 170, 34, 39, 173, 82,
79 176, 63, 178, 179, 180, 117, 182, 255, 184, 177, 186, 34, 165, 189,
81 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
83 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
85 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
87 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
91 static unsigned char xlatISO88592toWIN1250[] = {
92 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
93 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
94 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
95 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
96 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
97 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
98 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
100 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
102 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
104 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
106 160, 165, 162, 163, 164, 188, 140, 167, 168, 138, 170, 141, 143, 173,
108 176, 185, 178, 179, 180, 190, 156, 161, 184, 154, 186, 157, 159, 189,
110 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
112 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
114 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
116 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
120 static unsigned char xlatISO88592toCP852[] = {
121 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
122 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
123 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
124 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
125 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
126 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
127 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
129 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
131 242, 32, 34, 32, 34, 46, 43, 35, 32, 47, 138, 60, 151, 141, 166, 141,
132 032, 34, 34, 34, 34, 254, 45, 45, 32, 126, 154, 62, 152, 157, 167, 171,
133 255, 164, 244, 157, 207, 149, 151, 245, 249, 230, 184, 155, 141, 240,
135 248, 165, 247, 136, 239, 150, 152, 243, 242, 231, 173, 156, 171, 241,
137 232, 181, 182, 198, 142, 145, 143, 128, 172, 144, 168, 211, 183, 214,
139 209, 227, 213, 224, 226, 138, 153, 158, 252, 222, 233, 235, 154, 237,
141 234, 160, 131, 199, 132, 146, 134, 135, 159, 130, 169, 137, 216, 161,
143 208, 228, 229, 162, 147, 139, 148, 246, 253, 133, 163, 251, 129, 236,
147 static unsigned char xlatCP852toISO88592[] = {
148 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
149 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
150 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
151 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
152 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
153 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
154 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
156 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
158 199, 252, 233, 226, 228, 249, 230, 231, 179, 235, 138, 245, 238, 141,
160 201, 197, 229, 244, 246, 165, 181, 140, 156, 214, 154, 171, 187, 157,
162 225, 237, 243, 250, 161, 177, 142, 158, 202, 234, 170, 159, 200, 186,
164 176, 177, 178, 179, 180, 193, 194, 204, 170, 185, 186, 187, 188, 175,
166 192, 193, 194, 195, 196, 197, 195, 227, 200, 201, 202, 203, 204, 205,
168 240, 208, 207, 203, 239, 210, 205, 206, 236, 217, 218, 219, 220, 222,
170 211, 223, 212, 209, 241, 242, 169, 185, 192, 218, 224, 219, 253, 221,
172 173, 189, 128, 183, 162, 167, 247, 178, 176, 168, 255, 251, 216, 248,
176 unsigned char xlat_kbd2tty(unsigned char c)
178 if (cfg.xlat_enablekoiwin)
180 else if (cfg.xlat_88592w1250 || cfg.xlat_88592cp852)
181 return xlatWIN1250toISO88592[c];
185 unsigned char xlat_tty2scr(unsigned char c)
187 if (cfg.xlat_enablekoiwin)
189 else if (cfg.xlat_88592w1250)
190 return xlatISO88592toWIN1250[c];
191 else if (cfg.xlat_88592cp852)
192 return xlatISO88592toCP852[c];
197 static unsigned char latkbd2_win[] = {
198 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
199 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
200 32, 33, 221, 35, 36, 37, 38, 253, 40, 41, 42, 178, 225, 186, 254, 46,
201 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 198, 230, 193, 179, 222, 44,
202 64, 212, 200, 209, 194, 211, 192, 207, 208, 216, 206, 203, 196, 220,
204 199, 201, 202, 219, 197, 195, 204, 214, 215, 205, 223, 245, 191, 250,
206 96, 244, 232, 241, 226, 243, 224, 239, 240, 248, 238, 235, 228, 252,
208 231, 233, 234, 251, 229, 227, 236, 246, 247, 237, 255, 213, 175, 218,
210 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
212 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
214 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
216 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
218 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
220 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
222 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
224 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
228 unsigned char xlat_latkbd2win(unsigned char c)
230 if (cfg.xlat_capslockcyr)
231 return latkbd2_win[c];