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