1 | /* generated by MKkeyname.awk */
|
---|
2 |
|
---|
3 | #include <curses.priv.h>
|
---|
4 | #include <tic.h>
|
---|
5 | #include <term_entry.h>
|
---|
6 |
|
---|
7 | const struct kn _nc_key_names[] = {
|
---|
8 | { "KEY_A1", KEY_A1 },
|
---|
9 | { "KEY_A3", KEY_A3 },
|
---|
10 | { "KEY_B2", KEY_B2 },
|
---|
11 | { "KEY_BACKSPACE", KEY_BACKSPACE },
|
---|
12 | { "KEY_BEG", KEY_BEG },
|
---|
13 | { "KEY_BREAK", KEY_BREAK },
|
---|
14 | { "KEY_BTAB", KEY_BTAB },
|
---|
15 | { "KEY_C1", KEY_C1 },
|
---|
16 | { "KEY_C3", KEY_C3 },
|
---|
17 | { "KEY_CANCEL", KEY_CANCEL },
|
---|
18 | { "KEY_CATAB", KEY_CATAB },
|
---|
19 | { "KEY_CLEAR", KEY_CLEAR },
|
---|
20 | { "KEY_CLOSE", KEY_CLOSE },
|
---|
21 | { "KEY_COMMAND", KEY_COMMAND },
|
---|
22 | { "KEY_COPY", KEY_COPY },
|
---|
23 | { "KEY_CREATE", KEY_CREATE },
|
---|
24 | { "KEY_CTAB", KEY_CTAB },
|
---|
25 | { "KEY_DC", KEY_DC },
|
---|
26 | { "KEY_DL", KEY_DL },
|
---|
27 | { "KEY_DOWN", KEY_DOWN },
|
---|
28 | { "KEY_EIC", KEY_EIC },
|
---|
29 | { "KEY_END", KEY_END },
|
---|
30 | { "KEY_ENTER", KEY_ENTER },
|
---|
31 | { "KEY_EOL", KEY_EOL },
|
---|
32 | { "KEY_EOS", KEY_EOS },
|
---|
33 | { "KEY_EXIT", KEY_EXIT },
|
---|
34 | { "KEY_F(0)", KEY_F(0) },
|
---|
35 | { "KEY_F(1)", KEY_F(1) },
|
---|
36 | { "KEY_F(10)", KEY_F(10) },
|
---|
37 | { "KEY_F(11)", KEY_F(11) },
|
---|
38 | { "KEY_F(12)", KEY_F(12) },
|
---|
39 | { "KEY_F(13)", KEY_F(13) },
|
---|
40 | { "KEY_F(14)", KEY_F(14) },
|
---|
41 | { "KEY_F(15)", KEY_F(15) },
|
---|
42 | { "KEY_F(16)", KEY_F(16) },
|
---|
43 | { "KEY_F(17)", KEY_F(17) },
|
---|
44 | { "KEY_F(18)", KEY_F(18) },
|
---|
45 | { "KEY_F(19)", KEY_F(19) },
|
---|
46 | { "KEY_F(2)", KEY_F(2) },
|
---|
47 | { "KEY_F(20)", KEY_F(20) },
|
---|
48 | { "KEY_F(21)", KEY_F(21) },
|
---|
49 | { "KEY_F(22)", KEY_F(22) },
|
---|
50 | { "KEY_F(23)", KEY_F(23) },
|
---|
51 | { "KEY_F(24)", KEY_F(24) },
|
---|
52 | { "KEY_F(25)", KEY_F(25) },
|
---|
53 | { "KEY_F(26)", KEY_F(26) },
|
---|
54 | { "KEY_F(27)", KEY_F(27) },
|
---|
55 | { "KEY_F(28)", KEY_F(28) },
|
---|
56 | { "KEY_F(29)", KEY_F(29) },
|
---|
57 | { "KEY_F(3)", KEY_F(3) },
|
---|
58 | { "KEY_F(30)", KEY_F(30) },
|
---|
59 | { "KEY_F(31)", KEY_F(31) },
|
---|
60 | { "KEY_F(32)", KEY_F(32) },
|
---|
61 | { "KEY_F(33)", KEY_F(33) },
|
---|
62 | { "KEY_F(34)", KEY_F(34) },
|
---|
63 | { "KEY_F(35)", KEY_F(35) },
|
---|
64 | { "KEY_F(36)", KEY_F(36) },
|
---|
65 | { "KEY_F(37)", KEY_F(37) },
|
---|
66 | { "KEY_F(38)", KEY_F(38) },
|
---|
67 | { "KEY_F(39)", KEY_F(39) },
|
---|
68 | { "KEY_F(4)", KEY_F(4) },
|
---|
69 | { "KEY_F(40)", KEY_F(40) },
|
---|
70 | { "KEY_F(41)", KEY_F(41) },
|
---|
71 | { "KEY_F(42)", KEY_F(42) },
|
---|
72 | { "KEY_F(43)", KEY_F(43) },
|
---|
73 | { "KEY_F(44)", KEY_F(44) },
|
---|
74 | { "KEY_F(45)", KEY_F(45) },
|
---|
75 | { "KEY_F(46)", KEY_F(46) },
|
---|
76 | { "KEY_F(47)", KEY_F(47) },
|
---|
77 | { "KEY_F(48)", KEY_F(48) },
|
---|
78 | { "KEY_F(49)", KEY_F(49) },
|
---|
79 | { "KEY_F(5)", KEY_F(5) },
|
---|
80 | { "KEY_F(50)", KEY_F(50) },
|
---|
81 | { "KEY_F(51)", KEY_F(51) },
|
---|
82 | { "KEY_F(52)", KEY_F(52) },
|
---|
83 | { "KEY_F(53)", KEY_F(53) },
|
---|
84 | { "KEY_F(54)", KEY_F(54) },
|
---|
85 | { "KEY_F(55)", KEY_F(55) },
|
---|
86 | { "KEY_F(56)", KEY_F(56) },
|
---|
87 | { "KEY_F(57)", KEY_F(57) },
|
---|
88 | { "KEY_F(58)", KEY_F(58) },
|
---|
89 | { "KEY_F(59)", KEY_F(59) },
|
---|
90 | { "KEY_F(6)", KEY_F(6) },
|
---|
91 | { "KEY_F(60)", KEY_F(60) },
|
---|
92 | { "KEY_F(61)", KEY_F(61) },
|
---|
93 | { "KEY_F(62)", KEY_F(62) },
|
---|
94 | { "KEY_F(63)", KEY_F(63) },
|
---|
95 | { "KEY_F(7)", KEY_F(7) },
|
---|
96 | { "KEY_F(8)", KEY_F(8) },
|
---|
97 | { "KEY_F(9)", KEY_F(9) },
|
---|
98 | { "KEY_FIND", KEY_FIND },
|
---|
99 | { "KEY_HELP", KEY_HELP },
|
---|
100 | { "KEY_HOME", KEY_HOME },
|
---|
101 | { "KEY_IC", KEY_IC },
|
---|
102 | { "KEY_IL", KEY_IL },
|
---|
103 | { "KEY_LEFT", KEY_LEFT },
|
---|
104 | { "KEY_LL", KEY_LL },
|
---|
105 | { "KEY_MARK", KEY_MARK },
|
---|
106 | { "KEY_MESSAGE", KEY_MESSAGE },
|
---|
107 | { "KEY_MOUSE", KEY_MOUSE },
|
---|
108 | { "KEY_MOVE", KEY_MOVE },
|
---|
109 | { "KEY_NEXT", KEY_NEXT },
|
---|
110 | { "KEY_NPAGE", KEY_NPAGE },
|
---|
111 | { "KEY_OPEN", KEY_OPEN },
|
---|
112 | { "KEY_OPTIONS", KEY_OPTIONS },
|
---|
113 | { "KEY_PPAGE", KEY_PPAGE },
|
---|
114 | { "KEY_PREVIOUS", KEY_PREVIOUS },
|
---|
115 | { "KEY_PRINT", KEY_PRINT },
|
---|
116 | { "KEY_REDO", KEY_REDO },
|
---|
117 | { "KEY_REFERENCE", KEY_REFERENCE },
|
---|
118 | { "KEY_REFRESH", KEY_REFRESH },
|
---|
119 | { "KEY_REPLACE", KEY_REPLACE },
|
---|
120 | { "KEY_RESET", KEY_RESET },
|
---|
121 | { "KEY_RESIZE", KEY_RESIZE },
|
---|
122 | { "KEY_RESTART", KEY_RESTART },
|
---|
123 | { "KEY_RESUME", KEY_RESUME },
|
---|
124 | { "KEY_RIGHT", KEY_RIGHT },
|
---|
125 | { "KEY_SAVE", KEY_SAVE },
|
---|
126 | { "KEY_SBEG", KEY_SBEG },
|
---|
127 | { "KEY_SCANCEL", KEY_SCANCEL },
|
---|
128 | { "KEY_SCOMMAND", KEY_SCOMMAND },
|
---|
129 | { "KEY_SCOPY", KEY_SCOPY },
|
---|
130 | { "KEY_SCREATE", KEY_SCREATE },
|
---|
131 | { "KEY_SDC", KEY_SDC },
|
---|
132 | { "KEY_SDL", KEY_SDL },
|
---|
133 | { "KEY_SELECT", KEY_SELECT },
|
---|
134 | { "KEY_SEND", KEY_SEND },
|
---|
135 | { "KEY_SEOL", KEY_SEOL },
|
---|
136 | { "KEY_SEXIT", KEY_SEXIT },
|
---|
137 | { "KEY_SF", KEY_SF },
|
---|
138 | { "KEY_SFIND", KEY_SFIND },
|
---|
139 | { "KEY_SHELP", KEY_SHELP },
|
---|
140 | { "KEY_SHOME", KEY_SHOME },
|
---|
141 | { "KEY_SIC", KEY_SIC },
|
---|
142 | { "KEY_SLEFT", KEY_SLEFT },
|
---|
143 | { "KEY_SMESSAGE", KEY_SMESSAGE },
|
---|
144 | { "KEY_SMOVE", KEY_SMOVE },
|
---|
145 | { "KEY_SNEXT", KEY_SNEXT },
|
---|
146 | { "KEY_SOPTIONS", KEY_SOPTIONS },
|
---|
147 | { "KEY_SPREVIOUS", KEY_SPREVIOUS },
|
---|
148 | { "KEY_SPRINT", KEY_SPRINT },
|
---|
149 | { "KEY_SR", KEY_SR },
|
---|
150 | { "KEY_SREDO", KEY_SREDO },
|
---|
151 | { "KEY_SREPLACE", KEY_SREPLACE },
|
---|
152 | { "KEY_SRESET", KEY_SRESET },
|
---|
153 | { "KEY_SRIGHT", KEY_SRIGHT },
|
---|
154 | { "KEY_SRSUME", KEY_SRSUME },
|
---|
155 | { "KEY_SSAVE", KEY_SSAVE },
|
---|
156 | { "KEY_SSUSPEND", KEY_SSUSPEND },
|
---|
157 | { "KEY_STAB", KEY_STAB },
|
---|
158 | { "KEY_SUNDO", KEY_SUNDO },
|
---|
159 | { "KEY_SUSPEND", KEY_SUSPEND },
|
---|
160 | { "KEY_UNDO", KEY_UNDO },
|
---|
161 | { "KEY_UP", KEY_UP },
|
---|
162 | { 0, 0 }};
|
---|
163 |
|
---|
164 | NCURSES_EXPORT(NCURSES_CONST char *) keyname (int c)
|
---|
165 | {
|
---|
166 | static char **table;
|
---|
167 | int i;
|
---|
168 | char name[20];
|
---|
169 | char *p;
|
---|
170 | NCURSES_CONST char *result = 0;
|
---|
171 |
|
---|
172 | if (c == -1) {
|
---|
173 | result = "-1";
|
---|
174 | } else {
|
---|
175 | for (i = 0; _nc_key_names[i].name != 0; i++) {
|
---|
176 | if (_nc_key_names[i].code == c) {
|
---|
177 | result = (NCURSES_CONST char *)_nc_key_names[i].name;
|
---|
178 | break;
|
---|
179 | }
|
---|
180 | }
|
---|
181 |
|
---|
182 | if (result == 0 && (c >= 0 && c < 256)) {
|
---|
183 | if (table == 0)
|
---|
184 | table = typeCalloc(char *, 256);
|
---|
185 | if (table != 0) {
|
---|
186 | if (table[c] == 0) {
|
---|
187 | p = name;
|
---|
188 | if (c >= 128) {
|
---|
189 | strcpy(p, "M-");
|
---|
190 | p += 2;
|
---|
191 | c -= 128;
|
---|
192 | }
|
---|
193 | if (c < 32)
|
---|
194 | sprintf(p, "^%c", c + '@');
|
---|
195 | else if (c == 127)
|
---|
196 | strcpy(p, "^?");
|
---|
197 | else
|
---|
198 | sprintf(p, "%c", c);
|
---|
199 | table[c] = strdup(name);
|
---|
200 | }
|
---|
201 | result = table[c];
|
---|
202 | }
|
---|
203 | #if NCURSES_EXT_FUNCS && NCURSES_XNAMES
|
---|
204 | } else if (result == 0 && cur_term != 0) {
|
---|
205 | int j, k;
|
---|
206 | char * bound;
|
---|
207 | TERMTYPE *tp = &(cur_term->type);
|
---|
208 | int save_trace = _nc_tracing;
|
---|
209 |
|
---|
210 | _nc_tracing = 0; /* prevent recursion via keybound() */
|
---|
211 | for (j = 0; (bound = keybound(c, j)) != 0; ++j) {
|
---|
212 | for(k = STRCOUNT; k < NUM_STRINGS(tp); k++) {
|
---|
213 | if (tp->Strings[k] != 0 && !strcmp(bound, tp->Strings[k])) {
|
---|
214 | result = ExtStrname(tp, k, strnames);
|
---|
215 | break;
|
---|
216 | }
|
---|
217 | }
|
---|
218 | if (result != 0)
|
---|
219 | break;
|
---|
220 | }
|
---|
221 | _nc_tracing = save_trace;
|
---|
222 | #endif
|
---|
223 | }
|
---|
224 | }
|
---|
225 | return result;
|
---|
226 | }
|
---|
227 |
|
---|
228 | #if USE_WIDEC_SUPPORT
|
---|
229 | NCURSES_EXPORT(NCURSES_CONST char *) key_name (wchar_t c)
|
---|
230 | {
|
---|
231 | NCURSES_CONST char *result = keyname((int)c);
|
---|
232 | if (!strncmp(result, "M-", 2)) result = 0;
|
---|
233 | return result;
|
---|
234 | }
|
---|
235 | #endif
|
---|