1 /*
2  * THE - The Hessling Editor. A text editor similar to VM/CMS xedit.
3  * Copyright (C) 1991-2001 Mark Hessling
4  *
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU General Public License as
7  * published by the Free Software Foundation; either version 2 of
8  * the License, or any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to:
17  *
18  *    The Free Software Foundation, Inc.
19  *    675 Mass Ave,
20  *    Cambridge, MA 02139 USA.
21  *
22  *
23  * If you make modifications to this software that you feel increases
24  * it usefulness for the rest of the community, please email the
25  * changes, enhancements, bug fixes as well as any and all ideas to me.
26  * This software is going to be maintained and enhanced as deemed
27  * necessary by the community.
28  *
29  * Mark Hessling,  M.Hessling@qut.edu.au  http://www.lightlink.com/hessling/
30  */
31 
32 /*
33 $Id: key.h,v 1.7 2010/04/05 23:00:56 mark Exp $
34 */
35 
36 #if defined(USE_EXTCURSES)
37 # include <cur02.h>
38 #endif
39 
40 #include "getch.h"
41 
42 struct key_values
43 {
44  CHARTYPE *mnemonic;
45  int key_value;
46  int shift;
47 };
48 typedef struct key_values KEYS;
49 
50 KEYS key_table[] =
51 {
52   {(CHARTYPE *)"A",(int)'a',0},
53   {(CHARTYPE *)"B",(int)'b',0},
54   {(CHARTYPE *)"C",(int)'c',0},
55   {(CHARTYPE *)"D",(int)'d',0},
56   {(CHARTYPE *)"E",(int)'e',0},
57   {(CHARTYPE *)"F",(int)'f',0},
58   {(CHARTYPE *)"G",(int)'g',0},
59   {(CHARTYPE *)"H",(int)'h',0},
60   {(CHARTYPE *)"I",(int)'i',0},
61   {(CHARTYPE *)"J",(int)'j',0},
62   {(CHARTYPE *)"K",(int)'k',0},
63   {(CHARTYPE *)"L",(int)'l',0},
64   {(CHARTYPE *)"M",(int)'m',0},
65   {(CHARTYPE *)"N",(int)'n',0},
66   {(CHARTYPE *)"O",(int)'o',0},
67   {(CHARTYPE *)"P",(int)'p',0},
68   {(CHARTYPE *)"Q",(int)'q',0},
69   {(CHARTYPE *)"R",(int)'r',0},
70   {(CHARTYPE *)"S",(int)'s',0},
71   {(CHARTYPE *)"T",(int)'t',0},
72   {(CHARTYPE *)"U",(int)'u',0},
73   {(CHARTYPE *)"V",(int)'v',0},
74   {(CHARTYPE *)"W",(int)'w',0},
75   {(CHARTYPE *)"X",(int)'x',0},
76   {(CHARTYPE *)"Y",(int)'y',0},
77   {(CHARTYPE *)"Z",(int)'z',0},
78   {(CHARTYPE *)"S-A",(int)'A',SHIFT_SHIFT},
79   {(CHARTYPE *)"S-B",(int)'B',SHIFT_SHIFT},
80   {(CHARTYPE *)"S-C",(int)'C',SHIFT_SHIFT},
81   {(CHARTYPE *)"S-D",(int)'D',SHIFT_SHIFT},
82   {(CHARTYPE *)"S-E",(int)'E',SHIFT_SHIFT},
83   {(CHARTYPE *)"S-F",(int)'F',SHIFT_SHIFT},
84   {(CHARTYPE *)"S-G",(int)'G',SHIFT_SHIFT},
85   {(CHARTYPE *)"S-H",(int)'H',SHIFT_SHIFT},
86   {(CHARTYPE *)"S-I",(int)'I',SHIFT_SHIFT},
87   {(CHARTYPE *)"S-J",(int)'J',SHIFT_SHIFT},
88   {(CHARTYPE *)"S-K",(int)'K',SHIFT_SHIFT},
89   {(CHARTYPE *)"S-L",(int)'L',SHIFT_SHIFT},
90   {(CHARTYPE *)"S-M",(int)'M',SHIFT_SHIFT},
91   {(CHARTYPE *)"S-N",(int)'N',SHIFT_SHIFT},
92   {(CHARTYPE *)"S-O",(int)'O',SHIFT_SHIFT},
93   {(CHARTYPE *)"S-P",(int)'P',SHIFT_SHIFT},
94   {(CHARTYPE *)"S-Q",(int)'Q',SHIFT_SHIFT},
95   {(CHARTYPE *)"S-R",(int)'R',SHIFT_SHIFT},
96   {(CHARTYPE *)"S-S",(int)'S',SHIFT_SHIFT},
97   {(CHARTYPE *)"S-T",(int)'T',SHIFT_SHIFT},
98   {(CHARTYPE *)"S-U",(int)'U',SHIFT_SHIFT},
99   {(CHARTYPE *)"S-V",(int)'V',SHIFT_SHIFT},
100   {(CHARTYPE *)"S-W",(int)'W',SHIFT_SHIFT},
101   {(CHARTYPE *)"S-X",(int)'X',SHIFT_SHIFT},
102   {(CHARTYPE *)"S-Y",(int)'Y',SHIFT_SHIFT},
103   {(CHARTYPE *)"S-Z",(int)'Z',SHIFT_SHIFT},
104   {(CHARTYPE *)"0",(int)'0',0},
105   {(CHARTYPE *)"1",(int)'1',0},
106   {(CHARTYPE *)"2",(int)'2',0},
107   {(CHARTYPE *)"3",(int)'3',0},
108   {(CHARTYPE *)"4",(int)'4',0},
109   {(CHARTYPE *)"5",(int)'5',0},
110   {(CHARTYPE *)"6",(int)'6',0},
111   {(CHARTYPE *)"7",(int)'7',0},
112   {(CHARTYPE *)"8",(int)'8',0},
113   {(CHARTYPE *)"9",(int)'9',0},
114   {(CHARTYPE *)"`",(int)'`',0},
115   {(CHARTYPE *)"-",(int)'-',0},
116   {(CHARTYPE *)"=",(int)'=',0},
117   {(CHARTYPE *)"[",(int)'[',0},
118   {(CHARTYPE *)"]",(int)']',0},
119   {(CHARTYPE *)"\\",(int)'\\',0},
120   {(CHARTYPE *)";",(int)';',0},
121   {(CHARTYPE *)"'",(int)'\'',0},
122   {(CHARTYPE *)",",(int)',',0},
123   {(CHARTYPE *)".",(int)'.',0},
124   {(CHARTYPE *)"/",(int)'/',0},
125   {(CHARTYPE *)")",(int)')',0},
126   {(CHARTYPE *)"!",(int)'!',0},
127   {(CHARTYPE *)"@",(int)'@',0},
128   {(CHARTYPE *)"#",(int)'#',0},
129   {(CHARTYPE *)"$",(int)'$',0},
130   {(CHARTYPE *)"%",(int)'%',0},
131   {(CHARTYPE *)"^",(int)'^',0},
132   {(CHARTYPE *)"&",(int)'&',0},
133   {(CHARTYPE *)"*",(int)'*',0},
134   {(CHARTYPE *)"(",(int)'(',0},
135   {(CHARTYPE *)"~",(int)'~',0},
136   {(CHARTYPE *)"_",(int)'_',0},
137   {(CHARTYPE *)"+",(int)'+',0},
138   {(CHARTYPE *)"{",(int)'{',0},
139   {(CHARTYPE *)"}",(int)'}',0},
140   {(CHARTYPE *)"|",(int)'|',0},
141   {(CHARTYPE *)":",(int)':',0},
142   {(CHARTYPE *)"\"",(int)'\"',0},
143   {(CHARTYPE *)"<",(int)'<',0},
144   {(CHARTYPE *)">",(int)'>',0},
145   {(CHARTYPE *)"?",(int)'?',0},
146   {(CHARTYPE *)"SPACE",(int)' ',0},
147   {(CHARTYPE *)"ESC",KEY_ESC ,0},
148   {(CHARTYPE *)"F0",KEY_F0,0},
149   {(CHARTYPE *)"F1",KEY_F1,0},
150   {(CHARTYPE *)"F2",KEY_F2,0},
151   {(CHARTYPE *)"F3",KEY_F3,0},
152   {(CHARTYPE *)"F4",KEY_F4,0},
153   {(CHARTYPE *)"F5",KEY_F5,0},
154   {(CHARTYPE *)"F6",KEY_F6,0},
155   {(CHARTYPE *)"F7",KEY_F7,0},
156   {(CHARTYPE *)"F8",KEY_F8,0},
157   {(CHARTYPE *)"F9",KEY_F9,0},
158   {(CHARTYPE *)"F10",KEY_F10,0},
159   {(CHARTYPE *)"F11",KEY_F11,0},
160   {(CHARTYPE *)"F12",KEY_F12,0},
161   {(CHARTYPE *)"S-F1",KEY_S_F1,SHIFT_SHIFT},
162   {(CHARTYPE *)"S-F2",KEY_S_F2,SHIFT_SHIFT},
163   {(CHARTYPE *)"S-F3",KEY_S_F3,SHIFT_SHIFT},
164   {(CHARTYPE *)"S-F4",KEY_S_F4,SHIFT_SHIFT},
165   {(CHARTYPE *)"S-F5",KEY_S_F5,SHIFT_SHIFT},
166   {(CHARTYPE *)"S-F6",KEY_S_F6,SHIFT_SHIFT},
167   {(CHARTYPE *)"S-F7",KEY_S_F7,SHIFT_SHIFT},
168   {(CHARTYPE *)"S-F8",KEY_S_F8,SHIFT_SHIFT},
169   {(CHARTYPE *)"S-F9",KEY_S_F9,SHIFT_SHIFT},
170   {(CHARTYPE *)"S-F10",KEY_S_F10,SHIFT_SHIFT},
171   {(CHARTYPE *)"S-F11",KEY_S_F11,SHIFT_SHIFT},
172   {(CHARTYPE *)"S-F12",KEY_S_F12,SHIFT_SHIFT},
173   {(CHARTYPE *)"C-F1",KEY_C_F1,SHIFT_CTRL},
174   {(CHARTYPE *)"C-F2",KEY_C_F2,SHIFT_CTRL},
175   {(CHARTYPE *)"C-F3",KEY_C_F3,SHIFT_CTRL},
176   {(CHARTYPE *)"C-F4",KEY_C_F4,SHIFT_CTRL},
177   {(CHARTYPE *)"C-F5",KEY_C_F5,SHIFT_CTRL},
178   {(CHARTYPE *)"C-F6",KEY_C_F6,SHIFT_CTRL},
179   {(CHARTYPE *)"C-F7",KEY_C_F7,SHIFT_CTRL},
180   {(CHARTYPE *)"C-F8",KEY_C_F8,SHIFT_CTRL},
181   {(CHARTYPE *)"C-F9",KEY_C_F9,SHIFT_CTRL},
182   {(CHARTYPE *)"C-F10",KEY_C_F10,SHIFT_CTRL},
183   {(CHARTYPE *)"C-F11",KEY_C_F11,SHIFT_CTRL},
184   {(CHARTYPE *)"C-F12",KEY_C_F12,SHIFT_CTRL},
185   {(CHARTYPE *)"A-F1",KEY_A_F1,SHIFT_ALT},
186   {(CHARTYPE *)"A-F2",KEY_A_F2,SHIFT_ALT},
187   {(CHARTYPE *)"A-F3",KEY_A_F3,SHIFT_ALT},
188   {(CHARTYPE *)"A-F4",KEY_A_F4,SHIFT_ALT},
189   {(CHARTYPE *)"A-F5",KEY_A_F5,SHIFT_ALT},
190   {(CHARTYPE *)"A-F6",KEY_A_F6,SHIFT_ALT},
191   {(CHARTYPE *)"A-F7",KEY_A_F7,SHIFT_ALT},
192   {(CHARTYPE *)"A-F8",KEY_A_F8,SHIFT_ALT},
193   {(CHARTYPE *)"A-F9",KEY_A_F9,SHIFT_ALT},
194   {(CHARTYPE *)"A-F10",KEY_A_F10,SHIFT_ALT},
195   {(CHARTYPE *)"A-F11",KEY_A_F11,SHIFT_ALT},
196   {(CHARTYPE *)"A-F12",KEY_A_F12,SHIFT_ALT},
197   {(CHARTYPE *)"F13",KEY_F13,0},
198   {(CHARTYPE *)"F14",KEY_F14,0},
199   {(CHARTYPE *)"F15",KEY_F15,0},
200   {(CHARTYPE *)"F16",KEY_F16,0},
201   {(CHARTYPE *)"F17",KEY_F17,0},
202   {(CHARTYPE *)"F18",KEY_F18,0},
203   {(CHARTYPE *)"F19",KEY_F19,0},
204   {(CHARTYPE *)"F20",KEY_F20,0},
205   {(CHARTYPE *)"S-F13",KEY_S_F13,SHIFT_SHIFT},
206   {(CHARTYPE *)"S-F14",KEY_S_F14,SHIFT_SHIFT},
207   {(CHARTYPE *)"S-F15",KEY_S_F15,SHIFT_SHIFT},
208   {(CHARTYPE *)"S-F16",KEY_S_F16,SHIFT_SHIFT},
209   {(CHARTYPE *)"S-F17",KEY_S_F17,SHIFT_SHIFT},
210   {(CHARTYPE *)"S-F18",KEY_S_F18,SHIFT_SHIFT},
211   {(CHARTYPE *)"S-F19",KEY_S_F19,SHIFT_SHIFT},
212   {(CHARTYPE *)"NUM0"     ,KEY_Pad0,0},
213   {(CHARTYPE *)"NUM1"     ,KEY_C1,0},
214   {(CHARTYPE *)"NUM2"     ,KEY_C2,0},
215   {(CHARTYPE *)"NUM3"     ,KEY_C3,0},
216   {(CHARTYPE *)"NUM4"     ,KEY_B1,0},
217   {(CHARTYPE *)"CENTER"   ,KEY_B2,0},
218   {(CHARTYPE *)"NUM6"     ,KEY_B3,0},
219   {(CHARTYPE *)"NUM7"     ,KEY_A1,0},
220   {(CHARTYPE *)"NUM8"     ,KEY_A2,0},
221   {(CHARTYPE *)"NUM9"     ,KEY_A3,0},
222 
223 #if defined(DOS) || defined(OS2) || defined(USE_XCURSES) || defined(WIN32)
224 /* normal characters */
225   {(CHARTYPE *)"CURU",KEY_CURU,0},
226   {(CHARTYPE *)"CURD",KEY_CURD,0},
227   {(CHARTYPE *)"CURL",KEY_CURL,0},
228   {(CHARTYPE *)"CURR",KEY_CURR,0},
229   {(CHARTYPE *)"ENTER",KEY_RETURN ,0},
230   {(CHARTYPE *)"ENTER",KEY_ENTER,0},
231   {(CHARTYPE *)"TAB",KEY_TAB ,0},
232   {(CHARTYPE *)"BKSP",KEY_BKSP ,0},
233   {(CHARTYPE *)"HOME",KEY_HOME,0},
234   {(CHARTYPE *)"PGUP",KEY_PGUP,0},
235   {(CHARTYPE *)"PGDN",KEY_PGDN,0},
236   {(CHARTYPE *)"END",KEY_END,0},
237   {(CHARTYPE *)"INS",KEY_INS,0},
238   {(CHARTYPE *)"DEL",KEY_DEL,0},
239   {(CHARTYPE *)"PLUS",PADPLUS,0},
240   {(CHARTYPE *)"MINUS",PADMINUS,0},
241   {(CHARTYPE *)"SLASH",PADSLASH,0},
242   {(CHARTYPE *)"STAR",PADSTAR,0},
243   {(CHARTYPE *)"NUMENTER",PADENTER,0},
244   {(CHARTYPE *)"NUMSTOP",PADSTOP,0},
245   {(CHARTYPE *)"MOUSE"    ,KEY_MOUSE,0},
246 /* shifted characters */
247   {(CHARTYPE *)"S-HOME",KEY_SHOME,SHIFT_SHIFT},
248   {(CHARTYPE *)"S-END",KEY_SEND,SHIFT_SHIFT},
249   {(CHARTYPE *)"S-PGUP",KEY_SPREVIOUS,SHIFT_SHIFT},
250   {(CHARTYPE *)"S-PGDN",KEY_SNEXT,SHIFT_SHIFT},
251   {(CHARTYPE *)"S-CURU",KEY_S_CURU,SHIFT_SHIFT},
252   {(CHARTYPE *)"S-CURD",KEY_S_CURD,SHIFT_SHIFT},
253   {(CHARTYPE *)"S-CURL",KEY_SLEFT,SHIFT_SHIFT},
254   {(CHARTYPE *)"S-CURR",KEY_SRIGHT,SHIFT_SHIFT},
255   {(CHARTYPE *)"S-CENTER",KEY_S_NUMCENTER,SHIFT_SHIFT},
256   {(CHARTYPE *)"S-NUM0",KEY_0,SHIFT_SHIFT},
257   {(CHARTYPE *)"S-NUM1",KEY_1,SHIFT_SHIFT},
258   {(CHARTYPE *)"S-NUM2",KEY_2,SHIFT_SHIFT},
259   {(CHARTYPE *)"S-NUM3",KEY_3,SHIFT_SHIFT},
260   {(CHARTYPE *)"S-NUM4",KEY_4,SHIFT_SHIFT},
261   {(CHARTYPE *)"S-NUM5",KEY_5,SHIFT_SHIFT},
262   {(CHARTYPE *)"S-NUM6",KEY_6,SHIFT_SHIFT},
263   {(CHARTYPE *)"S-NUM7",KEY_7,SHIFT_SHIFT},
264   {(CHARTYPE *)"S-NUM8",KEY_8,SHIFT_SHIFT},
265   {(CHARTYPE *)"S-NUM9",KEY_9,SHIFT_SHIFT},
266   {(CHARTYPE *)"S-PLUS",SHF_PADPLUS,SHIFT_SHIFT},
267   {(CHARTYPE *)"S-MINUS",SHF_PADMINUS,SHIFT_SHIFT},
268   {(CHARTYPE *)"S-SLASH",SHF_PADSLASH,SHIFT_SHIFT},
269   {(CHARTYPE *)"S-STAR",SHF_PADSTAR,SHIFT_SHIFT},
270   {(CHARTYPE *)"S-NUMENTER",SHF_PADENTER,SHIFT_SHIFT},
271 /* control characters */
272 /*  {(CHARTYPE *)"C-2",KEY_C_2,SHIFT_CTRL},*/
273   {(CHARTYPE *)"C-6",KEY_C_6,SHIFT_CTRL},
274   {(CHARTYPE *)"C--",KEY_C_MINUS,SHIFT_CTRL},
275   {(CHARTYPE *)"C-[",KEY_C_LBRACKET,SHIFT_CTRL},
276   {(CHARTYPE *)"C-]",KEY_C_RBRACKET,SHIFT_CTRL},
277   {(CHARTYPE *)"C-\\",KEY_C_BSLASH,SHIFT_CTRL},
278   {(CHARTYPE *)"C-ENTER",CTL_ENTER,SHIFT_CTRL},
279   {(CHARTYPE *)"C-TAB",CTL_TAB,SHIFT_CTRL},
280 /*  {(CHARTYPE *)"C-BKSP",CTL_BKSP,SHIFT_CTRL},*/
281   {(CHARTYPE *)"C-BKSP",127,SHIFT_CTRL},
282   {(CHARTYPE *)"C-HOME",CTL_HOME,SHIFT_CTRL},
283   {(CHARTYPE *)"C-PGUP",CTL_PGUP,SHIFT_CTRL},
284   {(CHARTYPE *)"C-PGDN",CTL_PGDN,SHIFT_CTRL},
285   {(CHARTYPE *)"C-CURU",CTL_UP,SHIFT_CTRL},
286   {(CHARTYPE *)"C-CURD",CTL_DOWN,SHIFT_CTRL},
287   {(CHARTYPE *)"C-CURL",CTL_LEFT,SHIFT_CTRL},
288   {(CHARTYPE *)"C-CURR",CTL_RIGHT,SHIFT_CTRL},
289   {(CHARTYPE *)"C-END",CTL_END,SHIFT_CTRL},
290   {(CHARTYPE *)"C-INS",CTL_INS,SHIFT_CTRL},
291   {(CHARTYPE *)"C-DEL",CTL_DEL,SHIFT_CTRL},
292   {(CHARTYPE *)"C-CENTER",CTL_PADCENTER,SHIFT_CTRL},
293   {(CHARTYPE *)"C-NUMSTOP",CTL_PADSTOP,SHIFT_CTRL},
294   {(CHARTYPE *)"C-NUM0",CTL_PAD0,SHIFT_CTRL},
295   {(CHARTYPE *)"C-NUM1",CTL_PAD1,SHIFT_CTRL},
296   {(CHARTYPE *)"C-NUM2",CTL_PAD2,SHIFT_CTRL},
297   {(CHARTYPE *)"C-NUM3",CTL_PAD3,SHIFT_CTRL},
298   {(CHARTYPE *)"C-NUM4",CTL_PAD4,SHIFT_CTRL},
299   {(CHARTYPE *)"C-NUM5",CTL_PAD5,SHIFT_CTRL},
300   {(CHARTYPE *)"C-NUM6",CTL_PAD6,SHIFT_CTRL},
301   {(CHARTYPE *)"C-NUM7",CTL_PAD7,SHIFT_CTRL},
302   {(CHARTYPE *)"C-NUM8",CTL_PAD8,SHIFT_CTRL},
303   {(CHARTYPE *)"C-NUM9",CTL_PAD9,SHIFT_CTRL},
304   {(CHARTYPE *)"C-PLUS",CTL_PADPLUS,SHIFT_CTRL},
305   {(CHARTYPE *)"C-MINUS",CTL_PADMINUS,SHIFT_CTRL},
306   {(CHARTYPE *)"C-SLASH",CTL_PADSLASH,SHIFT_CTRL},
307   {(CHARTYPE *)"C-STAR",CTL_PADSTAR,SHIFT_CTRL},
308   {(CHARTYPE *)"C-NUMENTER",CTL_PADENTER,SHIFT_CTRL},
309 /* alt characters */
310   {(CHARTYPE *)"A-A",ALT_A,SHIFT_ALT},
311   {(CHARTYPE *)"A-B",ALT_B,SHIFT_ALT},
312   {(CHARTYPE *)"A-C",ALT_C,SHIFT_ALT},
313   {(CHARTYPE *)"A-D",ALT_D,SHIFT_ALT},
314   {(CHARTYPE *)"A-E",ALT_E,SHIFT_ALT},
315   {(CHARTYPE *)"A-F",ALT_F,SHIFT_ALT},
316   {(CHARTYPE *)"A-G",ALT_G,SHIFT_ALT},
317   {(CHARTYPE *)"A-H",ALT_H,SHIFT_ALT},
318   {(CHARTYPE *)"A-I",ALT_I,SHIFT_ALT},
319   {(CHARTYPE *)"A-J",ALT_J,SHIFT_ALT},
320   {(CHARTYPE *)"A-K",ALT_K,SHIFT_ALT},
321   {(CHARTYPE *)"A-L",ALT_L,SHIFT_ALT},
322   {(CHARTYPE *)"A-M",ALT_M,SHIFT_ALT},
323   {(CHARTYPE *)"A-N",ALT_N,SHIFT_ALT},
324   {(CHARTYPE *)"A-O",ALT_O,SHIFT_ALT},
325   {(CHARTYPE *)"A-P",ALT_P,SHIFT_ALT},
326   {(CHARTYPE *)"A-Q",ALT_Q,SHIFT_ALT},
327   {(CHARTYPE *)"A-R",ALT_R,SHIFT_ALT},
328   {(CHARTYPE *)"A-S",ALT_S,SHIFT_ALT},
329   {(CHARTYPE *)"A-T",ALT_T,SHIFT_ALT},
330   {(CHARTYPE *)"A-U",ALT_U,SHIFT_ALT},
331   {(CHARTYPE *)"A-V",ALT_V,SHIFT_ALT},
332   {(CHARTYPE *)"A-W",ALT_W,SHIFT_ALT},
333   {(CHARTYPE *)"A-X",ALT_X,SHIFT_ALT},
334   {(CHARTYPE *)"A-Y",ALT_Y,SHIFT_ALT},
335   {(CHARTYPE *)"A-Z",ALT_Z,SHIFT_ALT},
336   {(CHARTYPE *)"A-0",ALT_0,SHIFT_ALT},
337   {(CHARTYPE *)"A-1",ALT_1,SHIFT_ALT},
338   {(CHARTYPE *)"A-2",ALT_2,SHIFT_ALT},
339   {(CHARTYPE *)"A-3",ALT_3,SHIFT_ALT},
340   {(CHARTYPE *)"A-4",ALT_4,SHIFT_ALT},
341   {(CHARTYPE *)"A-5",ALT_5,SHIFT_ALT},
342   {(CHARTYPE *)"A-6",ALT_6,SHIFT_ALT},
343   {(CHARTYPE *)"A-7",ALT_7,SHIFT_ALT},
344   {(CHARTYPE *)"A-8",ALT_8,SHIFT_ALT},
345   {(CHARTYPE *)"A-9",ALT_9,SHIFT_ALT},
346   {(CHARTYPE *)"A-`",ALT_BQUOTE,SHIFT_ALT},
347   {(CHARTYPE *)"A--",ALT_MINUS,SHIFT_ALT},
348   {(CHARTYPE *)"A-=",ALT_EQUAL,SHIFT_ALT},
349   {(CHARTYPE *)"A-[",ALT_LBRACKET,SHIFT_ALT},
350   {(CHARTYPE *)"A-]",ALT_RBRACKET,SHIFT_ALT},
351   {(CHARTYPE *)"A-\\",ALT_BSLASH,SHIFT_ALT},
352   {(CHARTYPE *)"A-;",ALT_SEMICOLON,SHIFT_ALT},
353   {(CHARTYPE *)"A-'",ALT_FQUOTE,SHIFT_ALT},
354   {(CHARTYPE *)"A-,",ALT_COMMA,SHIFT_ALT},
355   {(CHARTYPE *)"A-.",ALT_STOP,SHIFT_ALT},
356   {(CHARTYPE *)"A-/",ALT_FSLASH,SHIFT_ALT},
357   {(CHARTYPE *)"A-ENTER",ALT_ENTER,SHIFT_ALT},
358   {(CHARTYPE *)"A-TAB",ALT_TAB,SHIFT_ALT},
359   {(CHARTYPE *)"A-ESC",ALT_ESC ,SHIFT_ALT},
360   {(CHARTYPE *)"A-BKSP",ALT_BKSP ,SHIFT_ALT},
361   {(CHARTYPE *)"A-HOME",ALT_HOME,SHIFT_ALT},
362   {(CHARTYPE *)"A-PGUP",ALT_PGUP,SHIFT_ALT},
363   {(CHARTYPE *)"A-PGDN",ALT_PGDN,SHIFT_ALT},
364   {(CHARTYPE *)"A-CURU",ALT_UP,SHIFT_ALT},
365   {(CHARTYPE *)"A-CURD",ALT_DOWN,SHIFT_ALT},
366   {(CHARTYPE *)"A-CURL",ALT_LEFT,SHIFT_ALT},
367   {(CHARTYPE *)"A-CURR",ALT_RIGHT,SHIFT_ALT},
368   {(CHARTYPE *)"A-END",ALT_END,SHIFT_ALT},
369   {(CHARTYPE *)"A-INS",ALT_INS,SHIFT_ALT},
370   {(CHARTYPE *)"A-DEL",ALT_DEL,SHIFT_ALT},
371   {(CHARTYPE *)"A-PLUS",ALT_PADPLUS,SHIFT_ALT},
372   {(CHARTYPE *)"A-MINUS",ALT_PADMINUS,SHIFT_ALT},
373   {(CHARTYPE *)"A-SLASH",ALT_PADSLASH,SHIFT_ALT},
374   {(CHARTYPE *)"A-STAR",ALT_PADSTAR,SHIFT_ALT},
375   {(CHARTYPE *)"A-NUMENTER",ALT_PADENTER,SHIFT_ALT},
376   {(CHARTYPE *)"A-NUMSTOP",ALT_PADSTOP,SHIFT_ALT},
377   {(CHARTYPE *)"A-NUM0",ALT_PAD0,SHIFT_ALT},
378   {(CHARTYPE *)"A-NUM1",ALT_PAD1,SHIFT_ALT},
379   {(CHARTYPE *)"A-NUM2",ALT_PAD2,SHIFT_ALT},
380   {(CHARTYPE *)"A-NUM3",ALT_PAD3,SHIFT_ALT},
381   {(CHARTYPE *)"A-NUM4",ALT_PAD4,SHIFT_ALT},
382   {(CHARTYPE *)"A-NUM5",ALT_PAD5,SHIFT_ALT},
383   {(CHARTYPE *)"A-NUM6",ALT_PAD6,SHIFT_ALT},
384   {(CHARTYPE *)"A-NUM7",ALT_PAD7,SHIFT_ALT},
385   {(CHARTYPE *)"A-NUM8",ALT_PAD8,SHIFT_ALT},
386   {(CHARTYPE *)"A-NUM9",ALT_PAD9,SHIFT_ALT},
387 # if defined(USE_XCURSES)
388   {(CHARTYPE *)"S-TAB",KEY_BTAB,SHIFT_SHIFT},
389   {(CHARTYPE *)"S-INS",KEY_SIC,SHIFT_SHIFT},
390   {(CHARTYPE *)"S-DEL",KEY_SDC,SHIFT_SHIFT},
391   {(CHARTYPE *)"SELECT",KEY_SELECT,0},
392   {(CHARTYPE *)"PRINT",KEY_PRINT,0},
393   {(CHARTYPE *)"S-PRINT",KEY_SPRINT,SHIFT_SHIFT},
394   {(CHARTYPE *)"FIND",KEY_FIND,0},
395   {(CHARTYPE *)"S-FIND",KEY_SFIND,SHIFT_SHIFT},
396   {(CHARTYPE *)"SUSPEND",KEY_SUSPEND,0},
397   {(CHARTYPE *)"S-SUSPEND",KEY_SSUSPEND,SHIFT_SHIFT},
398   {(CHARTYPE *)"CLEAR",KEY_CLEAR,0},
399   {(CHARTYPE *)"OPTIONS",KEY_OPTIONS,0},
400   {(CHARTYPE *)"S-OPTIONS",KEY_SOPTIONS,SHIFT_SHIFT},
401   {(CHARTYPE *)"BREAK",KEY_BREAK,0},
402   {(CHARTYPE *)"CANCEL",KEY_CANCEL,0},
403   {(CHARTYPE *)"S-CANCEL",KEY_SCANCEL,SHIFT_SHIFT},
404   {(CHARTYPE *)"HELP"       ,KEY_HELP,0},
405   {(CHARTYPE *)"S-HELP"     ,KEY_SHELP,SHIFT_SHIFT},
406   {(CHARTYPE *)"C-HELP"     ,KEY_LHELP,SHIFT_CTRL},
407 # else
408   {(CHARTYPE *)"S-TAB",KEY_S_TAB,SHIFT_SHIFT},
409   {(CHARTYPE *)"S-INS",KEY_S_INS,SHIFT_SHIFT},
410   {(CHARTYPE *)"S-DEL",KEY_S_DEL,SHIFT_SHIFT},
411 # endif
412 # ifdef KEY_SHIFT_L
413   {(CHARTYPE *)"SHIFT-L",KEY_SHIFT_L,SHIFT_MODIFIER_ONLY},
414 # endif
415 # ifdef KEY_SHIFT_R
416   {(CHARTYPE *)"SHIFT-R",KEY_SHIFT_R,SHIFT_MODIFIER_ONLY},
417 # endif
418 # ifdef KEY_CONTROL_L
419   {(CHARTYPE *)"CONTROL-L",KEY_CONTROL_L,SHIFT_MODIFIER_ONLY},
420 # endif
421 # ifdef KEY_CONTROL_R
422   {(CHARTYPE *)"CONTROL-R",KEY_CONTROL_R,SHIFT_MODIFIER_ONLY},
423 # endif
424 # ifdef KEY_ALT_L
425   {(CHARTYPE *)"ALT-L",KEY_ALT_L,SHIFT_MODIFIER_ONLY},
426 # endif
427 # ifdef KEY_ALT_R
428   {(CHARTYPE *)"ALT-R",KEY_ALT_R,SHIFT_MODIFIER_ONLY},
429 # endif
430 # ifdef KEY_EXIT
431   {(CHARTYPE *)"EXIT"     ,KEY_EXIT,0},
432 # endif
433 #else
434   {(CHARTYPE *)"CURD"     ,KEY_DOWN ,0},
435   {(CHARTYPE *)"CURU"     ,KEY_UP ,0},
436   {(CHARTYPE *)"CURL"     ,KEY_LEFT ,0},
437   {(CHARTYPE *)"CURR"     ,KEY_RIGHT,0},
438   {(CHARTYPE *)"BACKSPACE",KEY_BACKSPACE,0},
439   {(CHARTYPE *)"HOME"     ,KEY_HOME,0},
440   {(CHARTYPE *)"PF1"      ,KEY_PF1,0},
441   {(CHARTYPE *)"PF2"      ,KEY_PF2,0},
442   {(CHARTYPE *)"PF3"      ,KEY_PF3,0},
443   {(CHARTYPE *)"PF4"      ,KEY_PF4,0},
444   {(CHARTYPE *)"NUMENTER" ,KEY_NUMENTER,0},
445   {(CHARTYPE *)"MINUS"    ,KEY_PadMinus,0},
446   {(CHARTYPE *)"NUMSTOP"  ,KEY_PadPeriod,0},
447   {(CHARTYPE *)"COMMA"    ,KEY_PadComma,0},
448   {(CHARTYPE *)"STAR"     ,KEY_PadStar,0},
449   {(CHARTYPE *)"PLUS"     ,KEY_PadPlus,0},
450   {(CHARTYPE *)"SLASH"    ,KEY_PadSlash,0},
451   {(CHARTYPE *)"S-TAB"    ,KEY_BTAB,SHIFT_SHIFT},
452   {(CHARTYPE *)"FIND"     ,KEY_Find,0},
453   {(CHARTYPE *)"INS"      ,KEY_InsertHere,0},
454   {(CHARTYPE *)"REMOVE"   ,KEY_Remove,0},
455   {(CHARTYPE *)"DEL"      ,KEY_DELETE,0},
456   {(CHARTYPE *)"SELECT"   ,KEY_Select,0},
457   {(CHARTYPE *)"PGUP"     ,KEY_PrevScreen,0},
458   {(CHARTYPE *)"PGDN"     ,KEY_NextScreen,0},
459 #if defined(USE_EXTCURSES)
460   {(CHARTYPE *)"TAB"      ,KEY_TAB,0},
461   {(CHARTYPE *)"ENTER"    ,KEY_NEWL,0},
462 #else
463   {(CHARTYPE *)"TAB"      ,KEY_C_i,0},
464   {(CHARTYPE *)"RETURN"   ,KEY_RETURN,0},
465 #endif
466   {(CHARTYPE *)"CSI"      ,CSI,0},
467   {(CHARTYPE *)"BREAK"    ,KEY_BREAK ,0},
468   {(CHARTYPE *)"DL"       ,KEY_DL,0},
469   {(CHARTYPE *)"IL"       ,KEY_IL,0},
470   {(CHARTYPE *)"DC"       ,KEY_DC,0},
471   {(CHARTYPE *)"INS"      ,KEY_IC,0},
472   {(CHARTYPE *)"EIC"      ,KEY_EIC,0},
473   {(CHARTYPE *)"CLEAR"    ,KEY_CLEAR,0},
474   {(CHARTYPE *)"EOS"      ,KEY_EOS,0},
475   {(CHARTYPE *)"EOL"      ,KEY_EOL,0},
476   {(CHARTYPE *)"SF"       ,KEY_SF,0},
477   {(CHARTYPE *)"SR"       ,KEY_SR,0},
478   {(CHARTYPE *)"PGDN"     ,KEY_NPAGE,0},
479   {(CHARTYPE *)"PGUP"     ,KEY_PPAGE,0},
480   {(CHARTYPE *)"S-TAB"    ,KEY_STAB,SHIFT_SHIFT},
481   {(CHARTYPE *)"C-TAB"    ,KEY_CTAB,SHIFT_CTRL},
482   {(CHARTYPE *)"CATAB"    ,KEY_CATAB,0},
483   {(CHARTYPE *)"ENTER"    ,KEY_ENTER,0},
484   {(CHARTYPE *)"S-RESET"  ,KEY_SRESET,SHIFT_SHIFT},
485   {(CHARTYPE *)"RESET"    ,KEY_RESET,0},
486   {(CHARTYPE *)"PRINT"    ,KEY_PRINT,0},
487   {(CHARTYPE *)"LL"       ,KEY_LL,0},
488   {(CHARTYPE *)"A1"       ,KEY_A1,0},
489   {(CHARTYPE *)"A3"       ,KEY_A3,0},
490   {(CHARTYPE *)"B2"       ,KEY_B2,0},
491   {(CHARTYPE *)"C1"       ,KEY_C1,0},
492   {(CHARTYPE *)"C3"       ,KEY_C3,0},
493   {(CHARTYPE *)"S-TAB"    ,KEY_BTAB,SHIFT_SHIFT},
494   {(CHARTYPE *)"BEG"      ,KEY_BEG,0},
495   {(CHARTYPE *)"CANCEL"   ,KEY_CANCEL,0},
496   {(CHARTYPE *)"CLOSE"    ,KEY_CLOSE,0},
497   {(CHARTYPE *)"COMMAND"  ,KEY_COMMAND,0},
498   {(CHARTYPE *)"COPY"     ,KEY_COPY,0},
499   {(CHARTYPE *)"CREATE"   ,KEY_CREATE,0},
500   {(CHARTYPE *)"END"      ,KEY_END,0},
501   {(CHARTYPE *)"EXIT"     ,KEY_EXIT,0},
502   {(CHARTYPE *)"FIND"     ,KEY_FIND,0},
503   {(CHARTYPE *)"HELP"     ,KEY_HELP,0},
504   {(CHARTYPE *)"MARK"     ,KEY_MARK,0},
505   {(CHARTYPE *)"MESSAGE"  ,KEY_MESSAGE,0},
506   {(CHARTYPE *)"MOVE"     ,KEY_MOVE,0},
507   {(CHARTYPE *)"NEXT"     ,KEY_NEXT,0},
508   {(CHARTYPE *)"OPEN"     ,KEY_OPEN,0},
509   {(CHARTYPE *)"OPTIONS"  ,KEY_OPTIONS,0},
510   {(CHARTYPE *)"PREVIOUS" ,KEY_PREVIOUS,0},
511   {(CHARTYPE *)"REDO"     ,KEY_REDO,0},
512   {(CHARTYPE *)"REFERENCE",KEY_REFERENCE,0},
513   {(CHARTYPE *)"REFRESH"  ,KEY_REFRESH,0},
514   {(CHARTYPE *)"REPLACE"  ,KEY_REPLACE,0},
515   {(CHARTYPE *)"RESTART"  ,KEY_RESTART,0},
516   {(CHARTYPE *)"RESUME"   ,KEY_RESUME,0},
517   {(CHARTYPE *)"SAVE"     ,KEY_SAVE,0},
518   {(CHARTYPE *)"S-BEG"    ,KEY_SBEG,SHIFT_SHIFT},
519   {(CHARTYPE *)"S-CANCEL" ,KEY_SCANCEL,SHIFT_SHIFT},
520   {(CHARTYPE *)"S-COMMAND",KEY_SCOMMAND,SHIFT_SHIFT},
521   {(CHARTYPE *)"S-COPY"   ,KEY_SCOPY,SHIFT_SHIFT},
522   {(CHARTYPE *)"S-CREATE" ,KEY_SCREATE,SHIFT_SHIFT},
523   {(CHARTYPE *)"S-DC"     ,KEY_SDC,SHIFT_SHIFT},
524   {(CHARTYPE *)"S-DL"     ,KEY_SDL,SHIFT_SHIFT},
525   {(CHARTYPE *)"SELECT"   ,KEY_SELECT,0},
526   {(CHARTYPE *)"S-END"    ,KEY_SEND,SHIFT_SHIFT},
527   {(CHARTYPE *)"S-EOL"    ,KEY_SEOL,SHIFT_SHIFT},
528   {(CHARTYPE *)"S-EXIT"   ,KEY_SEXIT,SHIFT_SHIFT},
529   {(CHARTYPE *)"S-FIND"   ,KEY_SFIND,SHIFT_SHIFT},
530   {(CHARTYPE *)"S-HELP"   ,KEY_SHELP,SHIFT_SHIFT},
531   {(CHARTYPE *)"S-HOME"   ,KEY_SHOME,SHIFT_SHIFT},
532   {(CHARTYPE *)"S-INS"    ,KEY_SIC,SHIFT_SHIFT},
533   {(CHARTYPE *)"S-CURL"   ,KEY_SLEFT,SHIFT_SHIFT},
534   {(CHARTYPE *)"S-MESSAGE",KEY_SMESSAGE,SHIFT_SHIFT},
535   {(CHARTYPE *)"S-MOVE"   ,KEY_SMOVE,SHIFT_SHIFT},
536   {(CHARTYPE *)"S-NEXT"   ,KEY_SNEXT,SHIFT_SHIFT},
537   {(CHARTYPE *)"S-OPTIONS",KEY_SOPTIONS,SHIFT_SHIFT},
538   {(CHARTYPE *)"S-PREVIOUS",KEY_SPREVIOUS,SHIFT_SHIFT},
539   {(CHARTYPE *)"S-PRINT"  ,KEY_SPRINT,SHIFT_SHIFT},
540   {(CHARTYPE *)"S-REDO"   ,KEY_SREDO,SHIFT_SHIFT},
541   {(CHARTYPE *)"S-REPLACE",KEY_SREPLACE,SHIFT_SHIFT},
542   {(CHARTYPE *)"S-CURR"   ,KEY_SRIGHT,SHIFT_SHIFT},
543   {(CHARTYPE *)"S-RSUME"  ,KEY_SRSUME,SHIFT_SHIFT},
544   {(CHARTYPE *)"S-SAVE"   ,KEY_SSAVE,SHIFT_SHIFT},
545   {(CHARTYPE *)"S-SUSPEND",KEY_SSUSPEND,SHIFT_SHIFT},
546   {(CHARTYPE *)"S-UNDO"   ,KEY_SUNDO,SHIFT_SHIFT},
547   {(CHARTYPE *)"SUSPEND"  ,KEY_SUSPEND,0},
548   {(CHARTYPE *)"UNDO"     ,KEY_UNDO,0},
549   {(CHARTYPE *)"C-CURL"   ,CTL_LEFT,SHIFT_CTRL},
550   {(CHARTYPE *)"C-CURR"   ,CTL_RIGHT,SHIFT_CTRL},
551   {(CHARTYPE *)"C-CURU"   ,CTL_UP,SHIFT_CTRL},
552   {(CHARTYPE *)"C-CURD"   ,CTL_DOWN,SHIFT_CTRL},
553   {(CHARTYPE *)"C-HOME"   ,CTL_HOME,SHIFT_CTRL},
554   {(CHARTYPE *)"C-END"    ,CTL_END,SHIFT_CTRL},
555   {(CHARTYPE *)"C-PGUP"   ,CTL_PGUP,SHIFT_CTRL},
556   {(CHARTYPE *)"C-PGDN"   ,CTL_PGDN,SHIFT_CTRL},
557 #endif
558   {(CHARTYPE *)"C-A",(int)KEY_C_a,SHIFT_CTRL},
559   {(CHARTYPE *)"C-B",(int)KEY_C_b,SHIFT_CTRL},
560   {(CHARTYPE *)"C-C",(int)KEY_C_c,SHIFT_CTRL},
561   {(CHARTYPE *)"C-D",(int)KEY_C_d,SHIFT_CTRL},
562   {(CHARTYPE *)"C-E",(int)KEY_C_e,SHIFT_CTRL},
563   {(CHARTYPE *)"C-F",(int)KEY_C_f,SHIFT_CTRL},
564   {(CHARTYPE *)"C-G",(int)KEY_C_g,SHIFT_CTRL},
565   {(CHARTYPE *)"C-H",(int)KEY_C_h,SHIFT_CTRL},
566   {(CHARTYPE *)"C-I",(int)KEY_C_i,SHIFT_CTRL},
567   {(CHARTYPE *)"C-J",(int)KEY_C_j,SHIFT_CTRL},
568   {(CHARTYPE *)"C-K",(int)KEY_C_k,SHIFT_CTRL},
569   {(CHARTYPE *)"C-L",(int)KEY_C_l,SHIFT_CTRL},
570   {(CHARTYPE *)"C-M",(int)KEY_C_m,SHIFT_CTRL},
571   {(CHARTYPE *)"C-N",(int)KEY_C_n,SHIFT_CTRL},
572   {(CHARTYPE *)"C-O",(int)KEY_C_o,SHIFT_CTRL},
573   {(CHARTYPE *)"C-P",(int)KEY_C_p,SHIFT_CTRL},
574   {(CHARTYPE *)"C-Q",(int)KEY_C_q,SHIFT_CTRL},
575   {(CHARTYPE *)"C-R",(int)KEY_C_r,SHIFT_CTRL},
576   {(CHARTYPE *)"C-S",(int)KEY_C_s,SHIFT_CTRL},
577   {(CHARTYPE *)"C-T",(int)KEY_C_t,SHIFT_CTRL},
578   {(CHARTYPE *)"C-U",(int)KEY_C_u,SHIFT_CTRL},
579   {(CHARTYPE *)"C-V",(int)KEY_C_v,SHIFT_CTRL},
580   {(CHARTYPE *)"C-W",(int)KEY_C_w,SHIFT_CTRL},
581   {(CHARTYPE *)"C-X",(int)KEY_C_x,SHIFT_CTRL},
582   {(CHARTYPE *)"C-Y",(int)KEY_C_y,SHIFT_CTRL},
583   {(CHARTYPE *)"C-Z",(int)KEY_C_z,SHIFT_CTRL},
584 #if defined(BUTTON_MODIFER_MASK_NOT_NEEDED)
585   {(CHARTYPE *)"PB1",(int)KEY_PB1,0},
586   {(CHARTYPE *)"PB2",(int)KEY_PB2,0},
587   {(CHARTYPE *)"PB3",(int)KEY_PB3,0},
588   {(CHARTYPE *)"S-PB1",(int)KEY_S_PB1,0},
589   {(CHARTYPE *)"S-PB2",(int)KEY_S_PB2,0},
590   {(CHARTYPE *)"S-PB3",(int)KEY_S_PB3,0},
591   {(CHARTYPE *)"C-PB1",(int)KEY_C_PB1,0},
592   {(CHARTYPE *)"C-PB2",(int)KEY_C_PB2,0},
593   {(CHARTYPE *)"C-PB3",(int)KEY_C_PB3,0},
594   {(CHARTYPE *)"A-PB1",(int)KEY_A_PB1,0},
595   {(CHARTYPE *)"A-PB2",(int)KEY_A_PB2,0},
596   {(CHARTYPE *)"A-PB3",(int)KEY_A_PB3,0},
597   {(CHARTYPE *)"RB1",(int)KEY_RB1,0},
598   {(CHARTYPE *)"RB2",(int)KEY_RB2,0},
599   {(CHARTYPE *)"RB3",(int)KEY_RB3,0},
600   {(CHARTYPE *)"S-RB1",(int)KEY_S_RB1,0},
601   {(CHARTYPE *)"S-RB2",(int)KEY_S_RB2,0},
602   {(CHARTYPE *)"S-RB3",(int)KEY_S_RB3,0},
603   {(CHARTYPE *)"C-RB1",(int)KEY_C_RB1,0},
604   {(CHARTYPE *)"C-RB2",(int)KEY_C_RB2,0},
605   {(CHARTYPE *)"C-RB3",(int)KEY_C_RB3,0},
606   {(CHARTYPE *)"A-RB1",(int)KEY_A_RB1,0},
607   {(CHARTYPE *)"A-RB2",(int)KEY_A_RB2,0},
608   {(CHARTYPE *)"A-RB3",(int)KEY_A_RB3,0},
609   {(CHARTYPE *)"DB1",(int)KEY_DB1,0},
610   {(CHARTYPE *)"DB2",(int)KEY_DB2,0},
611   {(CHARTYPE *)"DB3",(int)KEY_DB3,0},
612   {(CHARTYPE *)"S-DB1",(int)KEY_S_DB1,0},
613   {(CHARTYPE *)"S-DB2",(int)KEY_S_DB2,0},
614   {(CHARTYPE *)"S-DB3",(int)KEY_S_DB3,0},
615   {(CHARTYPE *)"C-DB1",(int)KEY_C_DB1,0},
616   {(CHARTYPE *)"C-DB2",(int)KEY_C_DB2,0},
617   {(CHARTYPE *)"C-DB3",(int)KEY_C_DB3,0},
618   {(CHARTYPE *)"A-DB1",(int)KEY_A_DB1,0},
619   {(CHARTYPE *)"A-DB2",(int)KEY_A_DB2,0},
620   {(CHARTYPE *)"A-DB3",(int)KEY_A_DB3,0},
621 #endif
622   {(CHARTYPE *)NULL    ,0,0},
623 };
624