]>
Commit | Line | Data |
---|---|---|
c9d5b18d | 1 | --- dosemu-1.0.2/src/base/keyboard/keymaps.c Sun Mar 11 14:27:25 2001 |
2 | +++ dosemu-1.0.2.new/src/base/keyboard/keymaps.c Sun Dec 30 16:45:07 2001 | |
3 | @@ -1374,6 +1374,7 @@ | |
4 | 0}; | |
5 | ||
6 | /* Polish keyboard */ | |
7 | +/* | |
8 | CONST unsigned char key_map_pl[] = | |
9 | { | |
10 | 0, 27, '1', '2', '3', '4', '5', '6', | |
11 | @@ -1421,6 +1422,55 @@ | |
12 | 0, 0, 0, 0, 0, 0, '|', 0, | |
13 | 0, 0, 0, 0, 0, 0, 0, 0, | |
14 | 0}; | |
15 | +*/ | |
16 | +CONST unsigned char key_map_pl[] = | |
17 | +{ | |
18 | + 0,27,'1','2','3','4','5','6', | |
19 | + '7','8','9','0','-','=',127,9, | |
20 | + 'q','w','e','r','t','y','u','i', | |
21 | + 'o','p','[',']',13,0,'a','s', | |
22 | + 'd','f','g','h','j','k','l',';', | |
23 | + 39,96,0,92,'z','x','c','v', | |
24 | + 'b','n','m',',','.','/',0,'*', | |
25 | + 0,32,0,0,0,0,0,0, | |
26 | + 0,0,0,0,0,0,0,0, | |
27 | + 0,0,'-',0,0,0,'+',0, | |
28 | + 0,0,0,0,0,0,'<',0, | |
29 | + 0,0,0,0,0,0,0,0, | |
30 | + 0}; | |
31 | + | |
32 | +CONST unsigned char shift_map_pl[] = | |
33 | +{ | |
34 | + 0,27,'!','@','#','$','%','^', | |
35 | + '&','*','(',')','_','+',127,9, | |
36 | + 'Q','W','E','R','T','Y','U','I', | |
37 | + 'O','P','{','}',13,0,'A','S', | |
38 | + 'D','F','G','H','J','K','L',':', | |
39 | + 34,'~',0,'|','Z','X','C','V', | |
40 | + 'B','N','M','<','>','?',0,'*', | |
41 | + 0,32,0,0,0,0,0,0, | |
42 | + 0,0,0,0,0,0,0,0, | |
43 | + 0,0,'-',0,0,0,'+',0, | |
44 | + 0,0,0,0,0,0,'>',0, | |
45 | + 0,0,0,0,0,0,0,0, | |
46 | + 0}; | |
47 | + | |
48 | +CONST unsigned char alt_map_pl[] = | |
49 | +{ | |
50 | + 0,0,0,'@',0,0,0,0, | |
51 | + 0,0,0,0,0,0,0,0, | |
52 | + 0,0,DEAD_OGONEK,0,0,0,0,0, | |
53 | + DEAD_ACUTE,0,0,0,0,0,DEAD_OGONEK,DEAD_ACUTE, | |
54 | + 0,0,0,0,0,0,DEAD_STROKE,0, | |
55 | + 0,0,0,0,DEAD_ABOVEDOT,DEAD_ACUTE,DEAD_ACUTE,0, | |
56 | + 0,DEAD_ACUTE,0,0,0,0,0,0, | |
57 | + 0,0,0,0,0,0,0,0, | |
58 | + 0,0,0,0,0,0,0,0, | |
59 | + 0,0,0,0,0,0,0,0, | |
60 | + 0,0,0,0,0,0,0,0, | |
61 | + 0,0,0,0,0,0,0,0, | |
62 | + 0}; | |
63 | + | |
64 | ||
65 | CONST unsigned char key_map_hr_cp852[] = | |
66 | { | |
67 | @@ -1741,7 +1791,7 @@ | |
68 | {DEAD_CIRCUMFLEX, DEAD_CIRCUMFLEX, '^'}, {DEAD_DIAERESIS, DEAD_DIAERESIS, '"'}, | |
69 | {DEAD_TILDE, DEAD_TILDE, '~'}, {DEAD_DOUBLEACUTE, DEAD_DOUBLEACUTE, 241}, | |
70 | {DEAD_OGONEK, DEAD_OGONEK, 242}, {DEAD_CARON, DEAD_CARON, 243}, | |
71 | - {DEAD_BREVE, DEAD_BREVE, 244}, | |
72 | + {DEAD_BREVE, DEAD_BREVE, 244}, {DEAD_STROKE, DEAD_STROKE, 245}, | |
73 | ||
74 | {DEAD_ABOVERING, 'U', 222}, {DEAD_ABOVERING, 'u', 133}, | |
75 | ||
76 | @@ -1768,6 +1818,7 @@ | |
77 | {DEAD_ACUTE, 'U', 233}, {DEAD_ACUTE, 'u', 163}, | |
78 | {DEAD_ACUTE, 'Y', 237}, {DEAD_ACUTE, 'y', 236}, | |
79 | {DEAD_ACUTE, 'Z', 141}, {DEAD_ACUTE, 'z', 171}, | |
80 | + {DEAD_ACUTE, 'X', 141}, {DEAD_ACUTE, 'x', 171}, | |
81 | ||
82 | {DEAD_CIRCUMFLEX, 'A', 182}, {DEAD_CIRCUMFLEX, 'a', 131}, | |
83 | {DEAD_CIRCUMFLEX, 'I', 215}, {DEAD_CIRCUMFLEX, 'i', 140}, | |
84 | @@ -1790,7 +1841,8 @@ | |
85 | ||
86 | {DEAD_OGONEK, 'A', 164}, {DEAD_OGONEK, 'a', 165}, | |
87 | {DEAD_OGONEK, 'E', 168}, {DEAD_OGONEK, 'e', 169}, | |
88 | - | |
89 | + {DEAD_STROKE, 'L', 157}, {DEAD_STROKE, 'l', 136}, | |
90 | + | |
91 | {0, 0, 0} | |
92 | }; | |
93 | ||
94 | --- dosemu-1.0.2/src/base/keyboard/serv_xlat.c Sun Mar 11 14:27:25 2001 | |
95 | +++ dosemu-1.0.2.new/src/base/keyboard/serv_xlat.c Sun Dec 30 16:37:23 2001 | |
96 | @@ -477,17 +477,29 @@ | |
97 | * characters are generated. On US keyboards, translation is done | |
98 | * with both ALT keys. | |
99 | */ | |
100 | - if (!(config.keytable->flags & KT_USES_ALTMAP) || (shiftstate & R_ALT)) | |
101 | + | |
102 | + /* BASIC style hack for Polish language. ALT+DEAD_KEY -> accent=DEAD_KEY | |
103 | + * ch >= 32 should be "ch is not DEAD_KEY" | |
104 | + */ | |
105 | + | |
106 | + | |
107 | + if (!(config.keytable->flags & KT_USES_ALTMAP) || (shiftstate & R_ALT)) { | |
108 | ch = config.keytable->alt_map[key]; | |
109 | + if (ch >= 32) goto NEXT_CONDITION; | |
110 | + accent=ch; | |
111 | + } | |
112 | + else goto NEXT_CONDITION; | |
113 | } | |
114 | - else if (shiftstate & SHIFT) { | |
115 | + if (shiftstate & SHIFT) { | |
116 | ch = config.keytable->shift_map[key]; | |
117 | } | |
118 | else { /* unshifted */ | |
119 | ch = config.keytable->key_map[key]; | |
120 | } | |
121 | } | |
122 | - | |
123 | + | |
124 | +NEXT_CONDITION: | |
125 | + | |
126 | if (shiftstate & CTRL) { | |
127 | switch(ch) { | |
128 | case 0x40 ... 0x7e: ch&=0x1f; break; | |
129 | --- dosemu-1.0.2/src/include/keymaps.h Sun Mar 11 14:27:27 2001 | |
130 | +++ dosemu-1.0.2.new/src/include/keymaps.h Sun Dec 30 15:26:04 2001 | |
131 | @@ -73,10 +73,11 @@ | |
132 | #define DEAD_IOTA 12 | |
133 | #define DEAD_OGONEK 14 | |
134 | #define DEAD_CARON 15 | |
135 | +#define DEAD_STROKE 16 | |
136 | ||
137 | #define FULL_DEADKEY_LIST DEAD_GRAVE, DEAD_ACUTE, DEAD_CIRCUMFLEX, \ | |
138 | DEAD_TILDE, DEAD_BREVE, DEAD_ABOVEDOT, DEAD_DIAERESIS, DEAD_ABOVERING, \ | |
139 | - DEAD_DOUBLEACUTE, DEAD_CEDILLA, DEAD_IOTA, DEAD_OGONEK, DEAD_CARON | |
140 | + DEAD_DOUBLEACUTE, DEAD_CEDILLA, DEAD_IOTA, DEAD_OGONEK, DEAD_CARON, DEAD_STROKE | |
141 | ||
142 | struct dos_dead_key { | |
143 | unsigned char d_key; |