hc
2023-03-21 4b55d97acc464242bcd6a8ae77b8ff37c22dec58
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
/* Do not edit this file! It was automatically generated by   */
/*    loadkeys --mktable defkeymap.map > defkeymap.c          */
 
#include <linux/types.h>
#include <linux/keyboard.h>
#include <linux/kd.h>
 
u_short plain_map[NR_KEYS] = {
   0xf200,    0xf01b,    0xf031,    0xf032,    0xf033,    0xf034,    0xf035,    0xf036,
   0xf037,    0xf038,    0xf039,    0xf030,    0xf02d,    0xf03d,    0xf07f,    0xf009,
   0xfb71,    0xfb77,    0xfb65,    0xfb72,    0xfb74,    0xfb79,    0xfb75,    0xfb69,
   0xfb6f,    0xfb70,    0xf05b,    0xf05d,    0xf201,    0xf702,    0xfb61,    0xfb73,
   0xfb64,    0xfb66,    0xfb67,    0xfb68,    0xfb6a,    0xfb6b,    0xfb6c,    0xf03b,
   0xf027,    0xf060,    0xf700,    0xf05c,    0xfb7a,    0xfb78,    0xfb63,    0xfb76,
   0xfb62,    0xfb6e,    0xfb6d,    0xf02c,    0xf02e,    0xf02f,    0xf700,    0xf30c,
   0xf703,    0xf020,    0xf207,    0xf100,    0xf101,    0xf102,    0xf103,    0xf104,
   0xf105,    0xf106,    0xf107,    0xf108,    0xf109,    0xf208,    0xf209,    0xf307,
   0xf308,    0xf309,    0xf30b,    0xf304,    0xf305,    0xf306,    0xf30a,    0xf301,
   0xf302,    0xf303,    0xf300,    0xf310,    0xf206,    0xf200,    0xf03c,    0xf10a,
   0xf10b,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,
   0xf30e,    0xf702,    0xf30d,    0xf01c,    0xf701,    0xf205,    0xf114,    0xf603,
   0xf118,    0xf601,    0xf602,    0xf117,    0xf600,    0xf119,    0xf115,    0xf116,
   0xf11a,    0xf10c,    0xf10d,    0xf11b,    0xf11c,    0xf110,    0xf311,    0xf11d,
   0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,
};
 
u_short shift_map[NR_KEYS] = {
   0xf200,    0xf01b,    0xf021,    0xf040,    0xf023,    0xf024,    0xf025,    0xf05e,
   0xf026,    0xf02a,    0xf028,    0xf029,    0xf05f,    0xf02b,    0xf07f,    0xf009,
   0xfb51,    0xfb57,    0xfb45,    0xfb52,    0xfb54,    0xfb59,    0xfb55,    0xfb49,
   0xfb4f,    0xfb50,    0xf07b,    0xf07d,    0xf201,    0xf702,    0xfb41,    0xfb53,
   0xfb44,    0xfb46,    0xfb47,    0xfb48,    0xfb4a,    0xfb4b,    0xfb4c,    0xf03a,
   0xf022,    0xf07e,    0xf700,    0xf07c,    0xfb5a,    0xfb58,    0xfb43,    0xfb56,
   0xfb42,    0xfb4e,    0xfb4d,    0xf03c,    0xf03e,    0xf03f,    0xf700,    0xf30c,
   0xf703,    0xf020,    0xf207,    0xf10a,    0xf10b,    0xf10c,    0xf10d,    0xf10e,
   0xf10f,    0xf110,    0xf111,    0xf112,    0xf113,    0xf213,    0xf203,    0xf307,
   0xf308,    0xf309,    0xf30b,    0xf304,    0xf305,    0xf306,    0xf30a,    0xf301,
   0xf302,    0xf303,    0xf300,    0xf310,    0xf206,    0xf200,    0xf03e,    0xf10a,
   0xf10b,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,
   0xf30e,    0xf702,    0xf30d,    0xf200,    0xf701,    0xf205,    0xf114,    0xf603,
   0xf20b,    0xf601,    0xf602,    0xf117,    0xf600,    0xf20a,    0xf115,    0xf116,
   0xf11a,    0xf10c,    0xf10d,    0xf11b,    0xf11c,    0xf110,    0xf311,    0xf11d,
   0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,
};
 
u_short altgr_map[NR_KEYS] = {
   0xf200,    0xf200,    0xf200,    0xf040,    0xf200,    0xf024,    0xf200,    0xf200,
   0xf07b,    0xf05b,    0xf05d,    0xf07d,    0xf05c,    0xf200,    0xf200,    0xf200,
   0xfb71,    0xfb77,    0xf918,    0xfb72,    0xfb74,    0xfb79,    0xfb75,    0xfb69,
   0xfb6f,    0xfb70,    0xf200,    0xf07e,    0xf201,    0xf702,    0xf914,    0xfb73,
   0xf917,    0xf919,    0xfb67,    0xfb68,    0xfb6a,    0xfb6b,    0xfb6c,    0xf200,
   0xf200,    0xf200,    0xf700,    0xf200,    0xfb7a,    0xfb78,    0xf916,    0xfb76,
   0xf915,    0xfb6e,    0xfb6d,    0xf200,    0xf200,    0xf200,    0xf700,    0xf30c,
   0xf703,    0xf200,    0xf207,    0xf50c,    0xf50d,    0xf50e,    0xf50f,    0xf510,
   0xf511,    0xf512,    0xf513,    0xf514,    0xf515,    0xf208,    0xf202,    0xf911,
   0xf912,    0xf913,    0xf30b,    0xf90e,    0xf90f,    0xf910,    0xf30a,    0xf90b,
   0xf90c,    0xf90d,    0xf90a,    0xf310,    0xf206,    0xf200,    0xf07c,    0xf516,
   0xf517,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,
   0xf30e,    0xf702,    0xf30d,    0xf200,    0xf701,    0xf205,    0xf114,    0xf603,
   0xf118,    0xf601,    0xf602,    0xf117,    0xf600,    0xf119,    0xf115,    0xf116,
   0xf11a,    0xf10c,    0xf10d,    0xf11b,    0xf11c,    0xf110,    0xf311,    0xf11d,
   0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,
};
 
u_short ctrl_map[NR_KEYS] = {
   0xf200,    0xf200,    0xf200,    0xf000,    0xf01b,    0xf01c,    0xf01d,    0xf01e,
   0xf01f,    0xf07f,    0xf200,    0xf200,    0xf01f,    0xf200,    0xf008,    0xf200,
   0xf011,    0xf017,    0xf005,    0xf012,    0xf014,    0xf019,    0xf015,    0xf009,
   0xf00f,    0xf010,    0xf01b,    0xf01d,    0xf201,    0xf702,    0xf001,    0xf013,
   0xf004,    0xf006,    0xf007,    0xf008,    0xf00a,    0xf00b,    0xf00c,    0xf200,
   0xf007,    0xf000,    0xf700,    0xf01c,    0xf01a,    0xf018,    0xf003,    0xf016,
   0xf002,    0xf00e,    0xf00d,    0xf200,    0xf20e,    0xf07f,    0xf700,    0xf30c,
   0xf703,    0xf000,    0xf207,    0xf100,    0xf101,    0xf102,    0xf103,    0xf104,
   0xf105,    0xf106,    0xf107,    0xf108,    0xf109,    0xf208,    0xf204,    0xf307,
   0xf308,    0xf309,    0xf30b,    0xf304,    0xf305,    0xf306,    0xf30a,    0xf301,
   0xf302,    0xf303,    0xf300,    0xf310,    0xf206,    0xf200,    0xf200,    0xf10a,
   0xf10b,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,
   0xf30e,    0xf702,    0xf30d,    0xf01c,    0xf701,    0xf205,    0xf114,    0xf603,
   0xf118,    0xf601,    0xf602,    0xf117,    0xf600,    0xf119,    0xf115,    0xf116,
   0xf11a,    0xf10c,    0xf10d,    0xf11b,    0xf11c,    0xf110,    0xf311,    0xf11d,
   0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,
};
 
u_short shift_ctrl_map[NR_KEYS] = {
   0xf200,    0xf200,    0xf200,    0xf000,    0xf200,    0xf200,    0xf200,    0xf200,
   0xf200,    0xf200,    0xf200,    0xf200,    0xf01f,    0xf200,    0xf200,    0xf200,
   0xf011,    0xf017,    0xf005,    0xf012,    0xf014,    0xf019,    0xf015,    0xf009,
   0xf00f,    0xf010,    0xf200,    0xf200,    0xf201,    0xf702,    0xf001,    0xf013,
   0xf004,    0xf006,    0xf007,    0xf008,    0xf00a,    0xf00b,    0xf00c,    0xf200,
   0xf200,    0xf200,    0xf700,    0xf200,    0xf01a,    0xf018,    0xf003,    0xf016,
   0xf002,    0xf00e,    0xf00d,    0xf200,    0xf200,    0xf200,    0xf700,    0xf30c,
   0xf703,    0xf200,    0xf207,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,
   0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf208,    0xf200,    0xf307,
   0xf308,    0xf309,    0xf30b,    0xf304,    0xf305,    0xf306,    0xf30a,    0xf301,
   0xf302,    0xf303,    0xf300,    0xf310,    0xf206,    0xf200,    0xf200,    0xf200,
   0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,
   0xf30e,    0xf702,    0xf30d,    0xf200,    0xf701,    0xf205,    0xf114,    0xf603,
   0xf118,    0xf601,    0xf602,    0xf117,    0xf600,    0xf119,    0xf115,    0xf116,
   0xf11a,    0xf10c,    0xf10d,    0xf11b,    0xf11c,    0xf110,    0xf311,    0xf11d,
   0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,
};
 
u_short alt_map[NR_KEYS] = {
   0xf200,    0xf81b,    0xf831,    0xf832,    0xf833,    0xf834,    0xf835,    0xf836,
   0xf837,    0xf838,    0xf839,    0xf830,    0xf82d,    0xf83d,    0xf87f,    0xf809,
   0xf871,    0xf877,    0xf865,    0xf872,    0xf874,    0xf879,    0xf875,    0xf869,
   0xf86f,    0xf870,    0xf85b,    0xf85d,    0xf80d,    0xf702,    0xf861,    0xf873,
   0xf864,    0xf866,    0xf867,    0xf868,    0xf86a,    0xf86b,    0xf86c,    0xf83b,
   0xf827,    0xf860,    0xf700,    0xf85c,    0xf87a,    0xf878,    0xf863,    0xf876,
   0xf862,    0xf86e,    0xf86d,    0xf82c,    0xf82e,    0xf82f,    0xf700,    0xf30c,
   0xf703,    0xf820,    0xf207,    0xf500,    0xf501,    0xf502,    0xf503,    0xf504,
   0xf505,    0xf506,    0xf507,    0xf508,    0xf509,    0xf208,    0xf209,    0xf907,
   0xf908,    0xf909,    0xf30b,    0xf904,    0xf905,    0xf906,    0xf30a,    0xf901,
   0xf902,    0xf903,    0xf900,    0xf310,    0xf206,    0xf200,    0xf83c,    0xf50a,
   0xf50b,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,
   0xf30e,    0xf702,    0xf30d,    0xf01c,    0xf701,    0xf205,    0xf114,    0xf603,
   0xf118,    0xf210,    0xf211,    0xf117,    0xf600,    0xf119,    0xf115,    0xf116,
   0xf11a,    0xf10c,    0xf10d,    0xf11b,    0xf11c,    0xf110,    0xf311,    0xf11d,
   0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,
};
 
u_short ctrl_alt_map[NR_KEYS] = {
   0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,
   0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,
   0xf811,    0xf817,    0xf805,    0xf812,    0xf814,    0xf819,    0xf815,    0xf809,
   0xf80f,    0xf810,    0xf200,    0xf200,    0xf201,    0xf702,    0xf801,    0xf813,
   0xf804,    0xf806,    0xf807,    0xf808,    0xf80a,    0xf80b,    0xf80c,    0xf200,
   0xf200,    0xf200,    0xf700,    0xf200,    0xf81a,    0xf818,    0xf803,    0xf816,
   0xf802,    0xf80e,    0xf80d,    0xf200,    0xf200,    0xf200,    0xf700,    0xf30c,
   0xf703,    0xf200,    0xf207,    0xf500,    0xf501,    0xf502,    0xf503,    0xf504,
   0xf505,    0xf506,    0xf507,    0xf508,    0xf509,    0xf208,    0xf200,    0xf307,
   0xf308,    0xf309,    0xf30b,    0xf304,    0xf305,    0xf306,    0xf30a,    0xf301,
   0xf302,    0xf303,    0xf300,    0xf20c,    0xf206,    0xf200,    0xf200,    0xf50a,
   0xf50b,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,
   0xf30e,    0xf702,    0xf30d,    0xf200,    0xf701,    0xf205,    0xf114,    0xf603,
   0xf118,    0xf601,    0xf602,    0xf117,    0xf600,    0xf119,    0xf115,    0xf20c,
   0xf11a,    0xf10c,    0xf10d,    0xf11b,    0xf11c,    0xf110,    0xf311,    0xf11d,
   0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,    0xf200,
};
 
ushort *key_maps[MAX_NR_KEYMAPS] = {
   plain_map, shift_map, altgr_map, NULL,
   ctrl_map, shift_ctrl_map, NULL, NULL,
   alt_map, NULL, NULL, NULL,
   ctrl_alt_map, NULL
};
 
unsigned int keymap_count = 7;
 
/*
 * Philosophy: most people do not define more strings, but they who do
 * often want quite a lot of string space. So, we statically allocate
 * the default and allocate dynamically in chunks of 512 bytes.
 */
 
char func_buf[] = {
   '\033', '[', '[', 'A', 0, 
   '\033', '[', '[', 'B', 0, 
   '\033', '[', '[', 'C', 0, 
   '\033', '[', '[', 'D', 0, 
   '\033', '[', '[', 'E', 0, 
   '\033', '[', '1', '7', '~', 0, 
   '\033', '[', '1', '8', '~', 0, 
   '\033', '[', '1', '9', '~', 0, 
   '\033', '[', '2', '0', '~', 0, 
   '\033', '[', '2', '1', '~', 0, 
   '\033', '[', '2', '3', '~', 0, 
   '\033', '[', '2', '4', '~', 0, 
   '\033', '[', '2', '5', '~', 0, 
   '\033', '[', '2', '6', '~', 0, 
   '\033', '[', '2', '8', '~', 0, 
   '\033', '[', '2', '9', '~', 0, 
   '\033', '[', '3', '1', '~', 0, 
   '\033', '[', '3', '2', '~', 0, 
   '\033', '[', '3', '3', '~', 0, 
   '\033', '[', '3', '4', '~', 0, 
   '\033', '[', '1', '~', 0, 
   '\033', '[', '2', '~', 0, 
   '\033', '[', '3', '~', 0, 
   '\033', '[', '4', '~', 0, 
   '\033', '[', '5', '~', 0, 
   '\033', '[', '6', '~', 0, 
   '\033', '[', 'M', 0, 
   '\033', '[', 'P', 0, 
};
 
char *funcbufptr = func_buf;
int funcbufsize = sizeof(func_buf);
int funcbufleft = 0;          /* space left */
 
char *func_table[MAX_NR_FUNC] = {
   func_buf + 0,
   func_buf + 5,
   func_buf + 10,
   func_buf + 15,
   func_buf + 20,
   func_buf + 25,
   func_buf + 31,
   func_buf + 37,
   func_buf + 43,
   func_buf + 49,
   func_buf + 55,
   func_buf + 61,
   func_buf + 67,
   func_buf + 73,
   func_buf + 79,
   func_buf + 85,
   func_buf + 91,
   func_buf + 97,
   func_buf + 103,
   func_buf + 109,
   func_buf + 115,
   func_buf + 120,
   func_buf + 125,
   func_buf + 130,
   func_buf + 135,
   func_buf + 140,
   func_buf + 145,
   NULL,
   NULL,
   func_buf + 149,
   NULL,
};
 
struct kbdiacruc accent_table[MAX_DIACR] = {
   {'`', 'A', 0300},    {'`', 'a', 0340},
   {'\'', 'A', 0301},    {'\'', 'a', 0341},
   {'^', 'A', 0302},    {'^', 'a', 0342},
   {'~', 'A', 0303},    {'~', 'a', 0343},
   {'"', 'A', 0304},    {'"', 'a', 0344},
   {'O', 'A', 0305},    {'o', 'a', 0345},
   {'0', 'A', 0305},    {'0', 'a', 0345},
   {'A', 'A', 0305},    {'a', 'a', 0345},
   {'A', 'E', 0306},    {'a', 'e', 0346},
   {',', 'C', 0307},    {',', 'c', 0347},
   {'`', 'E', 0310},    {'`', 'e', 0350},
   {'\'', 'E', 0311},    {'\'', 'e', 0351},
   {'^', 'E', 0312},    {'^', 'e', 0352},
   {'"', 'E', 0313},    {'"', 'e', 0353},
   {'`', 'I', 0314},    {'`', 'i', 0354},
   {'\'', 'I', 0315},    {'\'', 'i', 0355},
   {'^', 'I', 0316},    {'^', 'i', 0356},
   {'"', 'I', 0317},    {'"', 'i', 0357},
   {'-', 'D', 0320},    {'-', 'd', 0360},
   {'~', 'N', 0321},    {'~', 'n', 0361},
   {'`', 'O', 0322},    {'`', 'o', 0362},
   {'\'', 'O', 0323},    {'\'', 'o', 0363},
   {'^', 'O', 0324},    {'^', 'o', 0364},
   {'~', 'O', 0325},    {'~', 'o', 0365},
   {'"', 'O', 0326},    {'"', 'o', 0366},
   {'/', 'O', 0330},    {'/', 'o', 0370},
   {'`', 'U', 0331},    {'`', 'u', 0371},
   {'\'', 'U', 0332},    {'\'', 'u', 0372},
   {'^', 'U', 0333},    {'^', 'u', 0373},
   {'"', 'U', 0334},    {'"', 'u', 0374},
   {'\'', 'Y', 0335},    {'\'', 'y', 0375},
   {'T', 'H', 0336},    {'t', 'h', 0376},
   {'s', 's', 0337},    {'"', 'y', 0377},
   {'s', 'z', 0337},    {'i', 'j', 0377},
};
 
unsigned int accent_table_size = 68;