home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / thesrc15.zip / key.h < prev    next >
C/C++ Source or Header  |  1993-11-17  |  21KB  |  624 lines

  1. /*
  2.  * THE - The Hessling Editor. A text editor similar to VM/CMS xedit.
  3.  * Copyright (C) 1991-1993 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                     email: M.Hessling@gu.edu.au
  30.  * 36 David Road                     Phone: +61 7 849 7731
  31.  * Holland Park                      Fax:   +61 7 875 5314
  32.  * QLD 4121
  33.  * Australia
  34.  */
  35.  
  36. /*
  37. $Header: C:\THE\RCS\key.h 1.4 1993/09/01 16:26:37 MH Interim MH $
  38. */
  39.  
  40. #include "getch.h"
  41.  
  42. struct key_values
  43. {
  44.  char *mnemonic;
  45.  unsigned short key_value;
  46. };
  47. typedef struct key_values KEYS;
  48.  
  49. #if defined(DOS) || defined(OS2)
  50. #define MAX_NUMBER_KEYS 312
  51. #else
  52. #define MAX_NUMBER_KEYS 247
  53. #endif
  54.  
  55. KEYS key_table[MAX_NUMBER_KEYS] =
  56. {
  57. #if defined(DOS) || defined(OS2)
  58. /* normal characters */
  59.   {(char *)"A",KEY_a },
  60.   {(char *)"B",KEY_b },
  61.   {(char *)"C",KEY_c },
  62.   {(char *)"D",KEY_d },
  63.   {(char *)"E",KEY_e },
  64.   {(char *)"F",KEY_f },
  65.   {(char *)"G",KEY_g },
  66.   {(char *)"H",KEY_h },
  67.   {(char *)"I",KEY_i },
  68.   {(char *)"J",KEY_j },
  69.   {(char *)"K",KEY_k },
  70.   {(char *)"L",KEY_l },
  71.   {(char *)"M",KEY_m },
  72.   {(char *)"N",KEY_n },
  73.   {(char *)"O",KEY_o },
  74.   {(char *)"P",KEY_p },
  75.   {(char *)"Q",KEY_q },
  76.   {(char *)"R",KEY_r },
  77.   {(char *)"S",KEY_s },
  78.   {(char *)"T",KEY_t },
  79.   {(char *)"U",KEY_u },
  80.   {(char *)"V",KEY_v },
  81.   {(char *)"W",KEY_w },
  82.   {(char *)"X",KEY_x },
  83.   {(char *)"Y",KEY_y },
  84.   {(char *)"Z",KEY_z },
  85.   {(char *)"0",KEY_0 },
  86.   {(char *)"1",KEY_1 },
  87.   {(char *)"2",KEY_2 },
  88.   {(char *)"3",KEY_3 },
  89.   {(char *)"4",KEY_4 },
  90.   {(char *)"5",KEY_5 },
  91.   {(char *)"6",KEY_6 },
  92.   {(char *)"7",KEY_7 },
  93.   {(char *)"8",KEY_8 },
  94.   {(char *)"9",KEY_9 },
  95.   {(char *)"`",KEY_BQUOTE },
  96.   {(char *)"-",KEY_MINUS },
  97.   {(char *)"=",KEY_EQUAL },
  98.   {(char *)"[",KEY_LBRACKET },
  99.   {(char *)"]",KEY_RBRACKET },
  100.   {(char *)"\\",KEY_BSLASH },
  101.   {(char *)";",KEY_SEMICOLON },
  102.   {(char *)"'",KEY_FQUOTE },
  103.   {(char *)",",KEY_COMMA },
  104.   {(char *)".",KEY_STOP },
  105.   {(char *)"/",KEY_FSLASH },
  106.   {(char *)"SPACE",KEY_SPACE },
  107.   {(char *)"ENTER",KEY_RETURN },
  108.   {(char *)"TAB",KEY_TAB },
  109.   {(char *)"ESC",KEY_ESC },
  110.   {(char *)"BKSP",KEY_BKSP },
  111.   {(char *)"F1",KEY_F1},
  112.   {(char *)"F2",KEY_F2},
  113.   {(char *)"F3",KEY_F3},
  114.   {(char *)"F4",KEY_F4},
  115.   {(char *)"F5",KEY_F5},
  116.   {(char *)"F6",KEY_F6},
  117.   {(char *)"F7",KEY_F7},
  118.   {(char *)"F8",KEY_F8},
  119.   {(char *)"F9",KEY_F9},
  120.   {(char *)"F10",KEY_F10},
  121.   {(char *)"F11",KEY_F11},
  122.   {(char *)"F12",KEY_F12},
  123.   {(char *)"HOME",KEY_HOME},
  124.   {(char *)"PGUP",KEY_PGUP},
  125.   {(char *)"PGDN",KEY_PGDN},
  126.   {(char *)"CURU",KEY_CURU},
  127.   {(char *)"CURD",KEY_CURD},
  128.   {(char *)"CURL",KEY_CURL},
  129.   {(char *)"CURR",KEY_CURR},
  130.   {(char *)"END",KEY_END},
  131.   {(char *)"INS",KEY_INS},
  132.   {(char *)"DEL",KEY_DEL},
  133.   {(char *)"CENTER",KEY_NUMCENTER },
  134.   {(char *)"PLUS",KEY_NUMPLUS},
  135.   {(char *)"MINUS",KEY_NUMMINUS},
  136.   {(char *)"SLASH",KEY_NUMSLASH},
  137.   {(char *)"STAR",KEY_NUMSTAR},
  138.   {(char *)"NUMENTER",KEY_NUMENTER},
  139. /* shifted characters */
  140.   {(char *)"S-A",KEY_S_a  },
  141.   {(char *)"S-B",KEY_S_b  },
  142.   {(char *)"S-C",KEY_S_c  },
  143.   {(char *)"S-D",KEY_S_d  },
  144.   {(char *)"S-E",KEY_S_e  },
  145.   {(char *)"S-F",KEY_S_f  },
  146.   {(char *)"S-G",KEY_S_g  },
  147.   {(char *)"S-H",KEY_S_h  },
  148.   {(char *)"S-I",KEY_S_i  },
  149.   {(char *)"S-J",KEY_S_j  },
  150.   {(char *)"S-K",KEY_S_k  },
  151.   {(char *)"S-L",KEY_S_l  },
  152.   {(char *)"S-M",KEY_S_m  },
  153.   {(char *)"S-N",KEY_S_n  },
  154.   {(char *)"S-O",KEY_S_o  },
  155.   {(char *)"S-P",KEY_S_p  },
  156.   {(char *)"S-Q",KEY_S_q  },
  157.   {(char *)"S-R",KEY_S_r  },
  158.   {(char *)"S-S",KEY_S_s  },
  159.   {(char *)"S-T",KEY_S_t  },
  160.   {(char *)"S-U",KEY_S_u  },
  161.   {(char *)"S-V",KEY_S_v  },
  162.   {(char *)"S-W",KEY_S_w  },
  163.   {(char *)"S-X",KEY_S_x  },
  164.   {(char *)"S-Y",KEY_S_y  },
  165.   {(char *)"S-Z",KEY_S_z  },
  166.   {(char *)"S-0",KEY_S_0  },
  167.   {(char *)"S-1",KEY_S_1  },
  168.   {(char *)"S-2",KEY_S_2  },
  169.   {(char *)"S-3",KEY_S_3  },
  170.   {(char *)"S-4",KEY_S_4  },
  171.   {(char *)"S-5",KEY_S_5  },
  172.   {(char *)"S-6",KEY_S_6  },
  173.   {(char *)"S-7",KEY_S_7  },
  174.   {(char *)"S-8",KEY_S_8  },
  175.   {(char *)"S-9",KEY_S_9  },
  176.   {(char *)"S-`",KEY_S_BQUOTE  },
  177.   {(char *)"S--",KEY_S_MINUS  },
  178.   {(char *)"S-=",KEY_S_EQUAL  },
  179.   {(char *)"S-[",KEY_S_LBRACKET  },
  180.   {(char *)"S-]",KEY_S_RBRACKET  },
  181.   {(char *)"S-\\",KEY_S_BSLASH  },
  182.   {(char *)"S-;",KEY_S_SEMICOLON  },
  183.   {(char *)"S-'",KEY_S_FQUOTE  },
  184.   {(char *)"S-,",KEY_S_COMMA  },
  185.   {(char *)"S-.",KEY_S_STOP  },
  186.   {(char *)"S-/",KEY_S_FSLASH  },
  187.   {(char *)"S-TAB",KEY_S_TAB },
  188.   {(char *)"S-F1",KEY_S_F1},
  189.   {(char *)"S-F2",KEY_S_F2},
  190.   {(char *)"S-F3",KEY_S_F3},
  191.   {(char *)"S-F4",KEY_S_F4},
  192.   {(char *)"S-F5",KEY_S_F5},
  193.   {(char *)"S-F6",KEY_S_F6},
  194.   {(char *)"S-F7",KEY_S_F7},
  195.   {(char *)"S-F8",KEY_S_F8},
  196.   {(char *)"S-F9",KEY_S_F9},
  197.   {(char *)"S-F10",KEY_S_F10},
  198.   {(char *)"S-F11",KEY_S_F11},
  199.   {(char *)"S-F12",KEY_S_F12},
  200.   {(char *)"S-HOME",KEY_S_HOME},
  201.   {(char *)"S-PGUP",KEY_S_PGUP},
  202.   {(char *)"S-PGDN",KEY_S_PGDN},
  203.   {(char *)"S-CURU",KEY_S_CURU},
  204.   {(char *)"S-CURD",KEY_S_CURD},
  205.   {(char *)"S-CURL",KEY_S_CURL},
  206.   {(char *)"S-CURR",KEY_S_CURR},
  207.   {(char *)"S-END",KEY_S_END},
  208.   {(char *)"S-INS",KEY_S_INS},
  209.   {(char *)"S-DEL",KEY_S_DEL},
  210.   {(char *)"S-CENTER",KEY_S_NUMCENTER},
  211.   {(char *)"S-NUMSTOP",KEY_S_NUMSTOP},
  212.   {(char *)"S-NUM0",KEY_S_NUM0},
  213.   {(char *)"S-NUM1",KEY_S_NUM1},
  214.   {(char *)"S-NUM2",KEY_S_NUM2},
  215.   {(char *)"S-NUM3",KEY_S_NUM3},
  216.   {(char *)"S-NUM4",KEY_S_NUM4},
  217.   {(char *)"S-NUM6",KEY_S_NUM6},
  218.   {(char *)"S-NUM7",KEY_S_NUM7},
  219.   {(char *)"S-NUM8",KEY_S_NUM8},
  220.   {(char *)"S-NUM9",KEY_S_NUM9},
  221. /* control characters */
  222.   {(char *)"C-A",KEY_C_a  },
  223.   {(char *)"C-B",KEY_C_b  },
  224.   {(char *)"C-C",KEY_C_c  },
  225.   {(char *)"C-D",KEY_C_d  },
  226.   {(char *)"C-E",KEY_C_e  },
  227.   {(char *)"C-F",KEY_C_f  },
  228.   {(char *)"C-G",KEY_C_g  },
  229.   {(char *)"C-H",KEY_C_h  },
  230.   {(char *)"C-I",KEY_C_i  },
  231.   {(char *)"C-J",KEY_C_j  },
  232.   {(char *)"C-K",KEY_C_k  },
  233.   {(char *)"C-L",KEY_C_l  },
  234.   {(char *)"C-M",KEY_C_m  },
  235.   {(char *)"C-N",KEY_C_n  },
  236.   {(char *)"C-O",KEY_C_o  },
  237.   {(char *)"C-P",KEY_C_p  },
  238.   {(char *)"C-Q",KEY_C_q  },
  239.   {(char *)"C-R",KEY_C_r  },
  240.   {(char *)"C-S",KEY_C_s  },
  241.   {(char *)"C-T",KEY_C_t  },
  242.   {(char *)"C-U",KEY_C_u  },
  243.   {(char *)"C-V",KEY_C_v  },
  244.   {(char *)"C-W",KEY_C_w  },
  245.   {(char *)"C-X",KEY_C_x  },
  246.   {(char *)"C-Y",KEY_C_y  },
  247.   {(char *)"C-Z",KEY_C_z  },
  248.   {(char *)"C-2",KEY_C_2  },
  249.   {(char *)"C-6",KEY_C_6  },
  250.   {(char *)"C--",KEY_C_MINUS  },
  251.   {(char *)"C-[",KEY_C_LBRACKET  },
  252.   {(char *)"C-]",KEY_C_RBRACKET  },
  253.   {(char *)"C-\\",KEY_C_BSLASH  },
  254.   {(char *)"C-ENTER",KEY_C_ENTER },
  255.   {(char *)"C-TAB",KEY_C_TAB},
  256.   {(char *)"C-BKSP",KEY_C_BKSP  },
  257.   {(char *)"C-F1",KEY_C_F1},
  258.   {(char *)"C-F2",KEY_C_F2},
  259.   {(char *)"C-F3",KEY_C_F3},
  260.   {(char *)"C-F4",KEY_C_F4},
  261.   {(char *)"C-F5",KEY_C_F5},
  262.   {(char *)"C-F6",KEY_C_F6},
  263.   {(char *)"C-F7",KEY_C_F7},
  264.   {(char *)"C-F8",KEY_C_F8},
  265.   {(char *)"C-F9",KEY_C_F9},
  266.   {(char *)"C-F10",KEY_C_F10},
  267.   {(char *)"C-F11",KEY_C_F11},
  268.   {(char *)"C-F12",KEY_C_F12},
  269.   {(char *)"C-HOME",KEY_C_HOME},
  270.   {(char *)"C-PGUP",KEY_C_PGUP},
  271.   {(char *)"C-PGDN",KEY_C_PGDN},
  272.   {(char *)"C-CURU",KEY_C_CURU},
  273.   {(char *)"C-CURD",KEY_C_CURD},
  274.   {(char *)"C-CURL",KEY_C_CURL},
  275.   {(char *)"C-CURR",KEY_C_CURR},
  276.   {(char *)"C-END",KEY_C_END},
  277.   {(char *)"C-INS",KEY_C_INS},
  278.   {(char *)"C-DEL",KEY_C_DEL},
  279.   {(char *)"C-CENTER",KEY_C_NUMCENTER},
  280.   {(char *)"C-NUMSTOP",KEY_C_NUMSTOP},
  281.   {(char *)"C-NUM0",KEY_C_NUM0},
  282.   {(char *)"C-NUM1",KEY_C_NUM1},
  283.   {(char *)"C-NUM2",KEY_C_NUM2},
  284.   {(char *)"C-NUM3",KEY_C_NUM3},
  285.   {(char *)"C-NUM4",KEY_C_NUM4},
  286.   {(char *)"C-NUM6",KEY_C_NUM6},
  287.   {(char *)"C-NUM7",KEY_C_NUM7},
  288.   {(char *)"C-NUM8",KEY_C_NUM8},
  289.   {(char *)"C-NUM9",KEY_C_NUM9},
  290.   {(char *)"C-PLUS",KEY_C_NUMPLUS},
  291.   {(char *)"C-MINUS",KEY_C_NUMMINUS},
  292.   {(char *)"C-SLASH",KEY_C_NUMSLASH},
  293.   {(char *)"C-STAR",KEY_C_NUMSTAR},
  294.   {(char *)"C-NUMENTER",KEY_C_NUMENTER},
  295. /* alt characters */
  296.   {(char *)"A-A",KEY_A_a},
  297.   {(char *)"A-B",KEY_A_b},
  298.   {(char *)"A-C",KEY_A_c},
  299.   {(char *)"A-D",KEY_A_d},
  300.   {(char *)"A-E",KEY_A_e},
  301.   {(char *)"A-F",KEY_A_f},
  302.   {(char *)"A-G",KEY_A_g},
  303.   {(char *)"A-H",KEY_A_h},
  304.   {(char *)"A-I",KEY_A_i},
  305.   {(char *)"A-J",KEY_A_j},
  306.   {(char *)"A-K",KEY_A_k},
  307.   {(char *)"A-L",KEY_A_l},
  308.   {(char *)"A-M",KEY_A_m},
  309.   {(char *)"A-N",KEY_A_n},
  310.   {(char *)"A-O",KEY_A_o},
  311.   {(char *)"A-P",KEY_A_p},
  312.   {(char *)"A-Q",KEY_A_q},
  313.   {(char *)"A-R",KEY_A_r},
  314.   {(char *)"A-S",KEY_A_s},
  315.   {(char *)"A-T",KEY_A_t},
  316.   {(char *)"A-U",KEY_A_u},
  317.   {(char *)"A-V",KEY_A_v},
  318.   {(char *)"A-W",KEY_A_w},
  319.   {(char *)"A-X",KEY_A_x},
  320.   {(char *)"A-Y",KEY_A_y},
  321.   {(char *)"A-Z",KEY_A_z},
  322.   {(char *)"A-0",KEY_A_0},
  323.   {(char *)"A-1",KEY_A_1},
  324.   {(char *)"A-2",KEY_A_2},
  325.   {(char *)"A-3",KEY_A_3},
  326.   {(char *)"A-4",KEY_A_4},
  327.   {(char *)"A-5",KEY_A_5},
  328.   {(char *)"A-6",KEY_A_6},
  329.   {(char *)"A-7",KEY_A_7},
  330.   {(char *)"A-8",KEY_A_8},
  331.   {(char *)"A-9",KEY_A_9},
  332.   {(char *)"A-`",KEY_A_BQUOTE},
  333.   {(char *)"A--",KEY_A_MINUS},
  334.   {(char *)"A-=",KEY_A_EQUAL},
  335.   {(char *)"A-[",KEY_A_LBRACKET},
  336.   {(char *)"A-]",KEY_A_RBRACKET},
  337.   {(char *)"A-\\",KEY_A_BSLASH},
  338.   {(char *)"A-;",KEY_A_SEMICOLON},
  339.   {(char *)"A-'",KEY_A_FQUOTE},
  340.   {(char *)"A-,",KEY_A_COMMA},
  341.   {(char *)"A-.",KEY_A_STOP},
  342.   {(char *)"A-/",KEY_A_FSLASH},
  343.   {(char *)"A-ENTER",KEY_A_ENTER},
  344.   {(char *)"A-TAB",KEY_A_TAB},
  345.   {(char *)"A-ESC",KEY_A_ESC },
  346.   {(char *)"A-BKSP",KEY_A_BKSP },
  347.   {(char *)"A-F1",KEY_A_F1},
  348.   {(char *)"A-F2",KEY_A_F2},
  349.   {(char *)"A-F3",KEY_A_F3},
  350.   {(char *)"A-F4",KEY_A_F4},
  351.   {(char *)"A-F5",KEY_A_F5},
  352.   {(char *)"A-F6",KEY_A_F6},
  353.   {(char *)"A-F7",KEY_A_F7},
  354.   {(char *)"A-F8",KEY_A_F8},
  355.   {(char *)"A-F9",KEY_A_F9},
  356.   {(char *)"A-F10",KEY_A_F10},
  357.   {(char *)"A-F11",KEY_A_F11},
  358.   {(char *)"A-F12",KEY_A_F12},
  359.   {(char *)"A-HOME",KEY_A_HOME},
  360.   {(char *)"A-PGUP",KEY_A_PGUP},
  361.   {(char *)"A-PGDN",KEY_A_PGDN},
  362.   {(char *)"A-CURU",KEY_A_CURU},
  363.   {(char *)"A-CURD",KEY_A_CURD},
  364.   {(char *)"A-CURL",KEY_A_CURL},
  365.   {(char *)"A-CURR",KEY_A_CURR},
  366.   {(char *)"A-END",KEY_A_END},
  367.   {(char *)"A-INS",KEY_A_INS},
  368.   {(char *)"A-DEL",KEY_A_DEL},
  369.   {(char *)"A-PLUS",KEY_A_NUMPLUS},
  370.   {(char *)"A-MINUS",KEY_A_NUMMINUS},
  371.   {(char *)"A-SLASH",KEY_A_NUMSLASH},
  372.   {(char *)"A-STAR",KEY_A_NUMSTAR},
  373.   {(char *)"A-NUMENTER",KEY_A_NUMENTER}
  374. #else
  375.   {(char *)"KEY_MIN"      ,KEY_MIN },
  376.   {(char *)"KEY_Help"     ,KEY_Help},
  377.   {(char *)"KEY_Do"       ,KEY_Do},
  378.   {(char *)"KEY_PF1"      ,KEY_PF1},
  379.   {(char *)"KEY_PF2"      ,KEY_PF2},
  380.   {(char *)"KEY_PF3"      ,KEY_PF3},
  381.   {(char *)"KEY_PF4"      ,KEY_PF4},
  382.   {(char *)"KEY_Pad0"     ,KEY_Pad0},
  383.   {(char *)"KEY_Pad1"     ,KEY_Pad1},
  384.   {(char *)"KEY_Pad2"     ,KEY_Pad2},
  385.   {(char *)"KEY_Pad3"     ,KEY_Pad3},
  386.   {(char *)"KEY_Pad4"     ,KEY_Pad4},
  387.   {(char *)"KEY_Pad5"     ,KEY_Pad5},
  388.   {(char *)"KEY_Pad6"     ,KEY_Pad6},
  389.   {(char *)"KEY_Pad7"     ,KEY_Pad7},
  390.   {(char *)"KEY_Pad8"     ,KEY_Pad8},
  391.   {(char *)"KEY_Pad9"     ,KEY_Pad9},
  392.   {(char *)"KEY_PadEnter" ,KEY_PadEnter},
  393.   {(char *)"KEY_PadMinus" ,KEY_PadMinus},
  394.   {(char *)"KEY_PadPeriod",KEY_PadPeriod},
  395.   {(char *)"KEY_PadComma" ,KEY_PadComma},
  396.   {(char *)"KEY_BackTab"  ,KEY_BackTab},
  397.   {(char *)"KEY_Find"     ,KEY_Find},
  398.   {(char *)"KEY_InsertHere",KEY_InsertHere},
  399.   {(char *)"KEY_Remove"   ,KEY_Remove},
  400.   {(char *)"KEY_Select"   ,KEY_Select},
  401.   {(char *)"KEY_PrevScreen",KEY_PrevScreen},
  402.   {(char *)"KEY_PrevScrn" ,KEY_PrevScrn},
  403.   {(char *)"KEY_NextScreen",KEY_NextScreen},
  404.   {(char *)"KEY_NextScrn" ,KEY_NextScrn},
  405.   {(char *)"KEY_SF1"      ,KEY_SF1},
  406.   {(char *)"KEY_SF2"      ,KEY_SF2},
  407.   {(char *)"KEY_SF3"      ,KEY_SF3},
  408.   {(char *)"KEY_SF4"      ,KEY_SF4},
  409.   {(char *)"KEY_SF5"      ,KEY_SF5},
  410.   {(char *)"KEY_SF6"      ,KEY_SF6},
  411.   {(char *)"KEY_SF7"      ,KEY_SF7},
  412.   {(char *)"KEY_SF8"      ,KEY_SF8},
  413.   {(char *)"KEY_SF9"      ,KEY_SF9},
  414.   {(char *)"KEY_SF10"     ,KEY_SF10},
  415.   {(char *)"KEY_SF11"     ,KEY_SF11},
  416.   {(char *)"KEY_SF12"     ,KEY_SF12},
  417.   {(char *)"KEY_SF13"     ,KEY_SF13},
  418.   {(char *)"KEY_SF14"     ,KEY_SF14},
  419.   {(char *)"KEY_SF15"     ,KEY_SF15},
  420.   {(char *)"KEY_SHelp"    ,KEY_SHelp},
  421.   {(char *)"KEY_SF16"     ,KEY_SF16},
  422.   {(char *)"KEY_SDo"      ,KEY_SDo},
  423.   {(char *)"KEY_SF17"     ,KEY_SF17},
  424.   {(char *)"KEY_SF18"     ,KEY_SF18},
  425.   {(char *)"KEY_SF19"     ,KEY_SF19},
  426.   {(char *)"KEY_SF20"     ,KEY_SF20},
  427.   {(char *)"ControlA"     ,ControlA},
  428.   {(char *)"ControlB"     ,ControlB},
  429.   {(char *)"ControlC"     ,ControlC},
  430.   {(char *)"ControlD"     ,ControlD},
  431.   {(char *)"ControlE"     ,ControlE},
  432.   {(char *)"ControlF"     ,ControlF},
  433.   {(char *)"ControlG"     ,ControlG},
  434.   {(char *)"ControlH"     ,ControlH},
  435.   {(char *)"BackSpace"    ,BackSpace},
  436.   {(char *)"ControlI"     ,ControlI},
  437.   {(char *)"Tab"          ,Tab},
  438.   {(char *)"ControlJ"     ,ControlJ},
  439.   {(char *)"LineFeed"     ,LineFeed},
  440.   {(char *)"ControlK"     ,ControlK},
  441.   {(char *)"ControlL"     ,ControlL},
  442.   {(char *)"ControlM"     ,ControlM},
  443.   {(char *)"Return"       ,Return},
  444.   {(char *)"ControlN"     ,ControlN},
  445.   {(char *)"ControlO"     ,ControlO},
  446.   {(char *)"ControlP"     ,ControlP},
  447.   {(char *)"ControlQ"     ,ControlQ},
  448.   {(char *)"ControlR"     ,ControlR},
  449.   {(char *)"ControlS"     ,ControlS},
  450.   {(char *)"ControlT"     ,ControlT},
  451.   {(char *)"ControlU"     ,ControlU},
  452.   {(char *)"ControlV"     ,ControlV},
  453.   {(char *)"ControlW"     ,ControlW},
  454.   {(char *)"ControlX"     ,ControlX},
  455.   {(char *)"ControlY"     ,ControlY},
  456.   {(char *)"ControlZ"     ,ControlZ},
  457.   {(char *)"Escape"       ,Escape},
  458.   {(char *)"Del"          ,Del},
  459.   {(char *)"CSI"          ,CSI},
  460.   {(char *)"KEY_BREAK"    ,KEY_BREAK },
  461.   {(char *)"KEY_DOWN"     ,KEY_DOWN },
  462.   {(char *)"KEY_UP"       ,KEY_UP },
  463.   {(char *)"KEY_LEFT"     ,KEY_LEFT },
  464.   {(char *)"KEY_RIGHT"    ,KEY_RIGHT},
  465.   {(char *)"KEY_HOME"     ,KEY_HOME},
  466.   {(char *)"KEY_BACKSPACE",KEY_BACKSPACE},
  467.   {(char *)"KEY_F0"       ,KEY_F0},
  468.   {(char *)"KEY_F1"       ,(KEY_F(0)+1)},
  469.   {(char *)"KEY_F2"       ,(KEY_F(0)+2)},
  470.   {(char *)"KEY_F3"       ,(KEY_F(0)+3)},
  471.   {(char *)"KEY_F4"       ,(KEY_F(0)+4)},
  472.   {(char *)"KEY_F5"       ,(KEY_F(0)+5)},
  473.   {(char *)"KEY_F6"       ,(KEY_F(0)+6)},
  474.   {(char *)"KEY_F7"       ,(KEY_F(0)+7)},
  475.   {(char *)"KEY_F8"       ,(KEY_F(0)+8)},
  476.   {(char *)"KEY_F9"       ,(KEY_F(0)+9)},
  477.   {(char *)"KEY_F10"      ,(KEY_F(0)+10)},
  478.   {(char *)"KEY_F11"      ,(KEY_F(0)+11)},
  479.   {(char *)"KEY_F12"      ,(KEY_F(0)+12)},
  480.   {(char *)"KEY_F13"      ,(KEY_F(0)+13)},
  481.   {(char *)"KEY_F14"      ,(KEY_F(0)+14)},
  482.   {(char *)"KEY_F15"      ,(KEY_F(0)+15)},
  483.   {(char *)"KEY_F16"      ,(KEY_F(0)+16)},
  484.   {(char *)"KEY_F17"      ,(KEY_F(0)+17)},
  485.   {(char *)"KEY_F18"      ,(KEY_F(0)+18)},
  486.   {(char *)"KEY_F19"      ,(KEY_F(0)+19)},
  487.   {(char *)"KEY_F20"      ,(KEY_F(0)+20)},
  488.   {(char *)"KEY_F21"      ,(KEY_F(0)+21)},
  489.   {(char *)"KEY_F22"      ,(KEY_F(0)+22)},
  490.   {(char *)"KEY_F23"      ,(KEY_F(0)+23)},
  491.   {(char *)"KEY_F24"      ,(KEY_F(0)+24)},
  492.   {(char *)"KEY_F25"      ,(KEY_F(0)+25)},
  493.   {(char *)"KEY_F26"      ,(KEY_F(0)+26)},
  494.   {(char *)"KEY_F27"      ,(KEY_F(0)+27)},
  495.   {(char *)"KEY_F28"      ,(KEY_F(0)+28)},
  496.   {(char *)"KEY_F29"      ,(KEY_F(0)+29)},
  497.   {(char *)"KEY_F30"      ,(KEY_F(0)+30)},
  498.   {(char *)"KEY_F31"      ,(KEY_F(0)+31)},
  499.   {(char *)"KEY_F32"      ,(KEY_F(0)+32)},
  500.   {(char *)"KEY_F33"      ,(KEY_F(0)+33)},
  501.   {(char *)"KEY_F34"      ,(KEY_F(0)+34)},
  502.   {(char *)"KEY_F35"      ,(KEY_F(0)+35)},
  503.   {(char *)"KEY_F36"      ,(KEY_F(0)+36)},
  504.   {(char *)"KEY_F37"      ,(KEY_F(0)+37)},
  505.   {(char *)"KEY_F38"      ,(KEY_F(0)+38)},
  506.   {(char *)"KEY_F39"      ,(KEY_F(0)+39)},
  507.   {(char *)"KEY_F40"      ,(KEY_F(0)+40)},
  508.   {(char *)"KEY_F41"      ,(KEY_F(0)+41)},
  509.   {(char *)"KEY_F42"      ,(KEY_F(0)+42)},
  510.   {(char *)"KEY_F43"      ,(KEY_F(0)+43)},
  511.   {(char *)"KEY_F44"      ,(KEY_F(0)+44)},
  512.   {(char *)"KEY_F45"      ,(KEY_F(0)+45)},
  513.   {(char *)"KEY_F46"      ,(KEY_F(0)+46)},
  514.   {(char *)"KEY_F47"      ,(KEY_F(0)+47)},
  515.   {(char *)"KEY_F48"      ,(KEY_F(0)+48)},
  516.   {(char *)"KEY_F49"      ,(KEY_F(0)+49)},
  517.   {(char *)"KEY_F50"      ,(KEY_F(0)+50)},
  518.   {(char *)"KEY_F51"      ,(KEY_F(0)+51)},
  519.   {(char *)"KEY_F52"      ,(KEY_F(0)+52)},
  520.   {(char *)"KEY_F53"      ,(KEY_F(0)+53)},
  521.   {(char *)"KEY_F54"      ,(KEY_F(0)+54)},
  522.   {(char *)"KEY_F55"      ,(KEY_F(0)+55)},
  523.   {(char *)"KEY_F56"      ,(KEY_F(0)+56)},
  524.   {(char *)"KEY_F57"      ,(KEY_F(0)+57)},
  525.   {(char *)"KEY_F58"      ,(KEY_F(0)+58)},
  526.   {(char *)"KEY_F59"      ,(KEY_F(0)+59)},
  527.   {(char *)"KEY_F60"      ,(KEY_F(0)+60)},
  528.   {(char *)"KEY_F61"      ,(KEY_F(0)+61)},
  529.   {(char *)"KEY_F62"      ,(KEY_F(0)+62)},
  530.   {(char *)"KEY_F63"      ,(KEY_F(0)+63)},
  531.   {(char *)"KEY_F64"      ,(KEY_F(0)+64)},
  532.   {(char *)"KEY_DL"       ,KEY_DL},
  533.   {(char *)"KEY_IL"       ,KEY_IL},
  534.   {(char *)"KEY_DC"       ,KEY_DC},
  535.   {(char *)"KEY_IC"       ,KEY_IC},
  536.   {(char *)"KEY_EIC"      ,KEY_EIC},
  537.   {(char *)"KEY_CLEAR"    ,KEY_CLEAR},
  538.   {(char *)"KEY_EOS"      ,KEY_EOS},
  539.   {(char *)"KEY_EOL"      ,KEY_EOL},
  540.   {(char *)"KEY_SF"       ,KEY_SF},
  541.   {(char *)"KEY_SR"       ,KEY_SR},
  542.   {(char *)"KEY_NPAGE"    ,KEY_NPAGE},
  543.   {(char *)"KEY_PPAGE"    ,KEY_PPAGE},
  544.   {(char *)"KEY_STAB"     ,KEY_STAB},
  545.   {(char *)"KEY_CTAB"     ,KEY_CTAB},
  546.   {(char *)"KEY_CATAB"    ,KEY_CATAB},
  547.   {(char *)"KEY_ENTER"    ,KEY_ENTER},
  548.   {(char *)"KEY_SRESET"   ,KEY_SRESET},
  549.   {(char *)"KEY_RESET"    ,KEY_RESET},
  550.   {(char *)"KEY_PRINT"    ,KEY_PRINT},
  551.   {(char *)"KEY_LL"       ,KEY_LL},
  552.   {(char *)"KEY_A1"       ,KEY_A1},
  553.   {(char *)"KEY_A3"       ,KEY_A3},
  554.   {(char *)"KEY_B2"       ,KEY_B2},
  555.   {(char *)"KEY_C1"       ,KEY_C1},
  556.   {(char *)"KEY_C3"       ,KEY_C3},
  557.   {(char *)"KEY_BTAB"     ,KEY_BTAB},
  558.   {(char *)"KEY_BEG"      ,KEY_BEG},
  559.   {(char *)"KEY_CANCEL"   ,KEY_CANCEL},
  560.   {(char *)"KEY_CLOSE"    ,KEY_CLOSE},
  561.   {(char *)"KEY_COMMAND"  ,KEY_COMMAND},
  562.   {(char *)"KEY_COPY"     ,KEY_COPY},
  563.   {(char *)"KEY_CREATE"   ,KEY_CREATE},
  564.   {(char *)"KEY_END"      ,KEY_END},
  565.   {(char *)"KEY_EXIT"     ,KEY_EXIT},
  566.   {(char *)"KEY_FIND"     ,KEY_FIND},
  567.   {(char *)"KEY_HELP"     ,KEY_HELP},
  568.   {(char *)"KEY_MARK"     ,KEY_MARK},
  569.   {(char *)"KEY_MESSAGE"  ,KEY_MESSAGE},
  570.   {(char *)"KEY_MOVE"     ,KEY_MOVE},
  571.   {(char *)"KEY_NEXT"     ,KEY_NEXT},
  572.   {(char *)"KEY_OPEN"     ,KEY_OPEN},
  573.   {(char *)"KEY_OPTIONS"  ,KEY_OPTIONS},
  574.   {(char *)"KEY_PREVIOUS" ,KEY_PREVIOUS},
  575.   {(char *)"KEY_REDO"     ,KEY_REDO},
  576.   {(char *)"KEY_REFERENCE",KEY_REFERENCE},
  577.   {(char *)"KEY_REFRESH"  ,KEY_REFRESH},
  578.   {(char *)"KEY_REPLACE"  ,KEY_REPLACE},
  579.   {(char *)"KEY_RESTART"  ,KEY_RESTART},
  580.   {(char *)"KEY_RESUME"   ,KEY_RESUME},
  581.   {(char *)"KEY_SAVE"     ,KEY_SAVE},
  582.   {(char *)"KEY_SBEG"     ,KEY_SBEG},
  583.   {(char *)"KEY_SCANCEL"  ,KEY_SCANCEL},
  584.   {(char *)"KEY_SCOMMAND" ,KEY_SCOMMAND},
  585.   {(char *)"KEY_SCOPY"    ,KEY_SCOPY},
  586.   {(char *)"KEY_SCREATE"  ,KEY_SCREATE},
  587.   {(char *)"KEY_SDC"      ,KEY_SDC},
  588.   {(char *)"KEY_SDL"      ,KEY_SDL},
  589.   {(char *)"KEY_SELECT"   ,KEY_SELECT},
  590.   {(char *)"KEY_SEND"     ,KEY_SEND},
  591.   {(char *)"KEY_SEOL"     ,KEY_SEOL},
  592.   {(char *)"KEY_SEXIT"    ,KEY_SEXIT},
  593.   {(char *)"KEY_SFIND"    ,KEY_SFIND},
  594.   {(char *)"KEY_SHELP"    ,KEY_SHELP},
  595.   {(char *)"KEY_SHOME"    ,KEY_SHOME},
  596.   {(char *)"KEY_SIC"      ,KEY_SIC},
  597.   {(char *)"KEY_SLEFT"    ,KEY_SLEFT},
  598.   {(char *)"KEY_SMESSAGE" ,KEY_SMESSAGE},
  599.   {(char *)"KEY_SMOVE"    ,KEY_SMOVE},
  600.   {(char *)"KEY_SNEXT"    ,KEY_SNEXT},
  601.   {(char *)"KEY_SOPTIONS" ,KEY_SOPTIONS},
  602.   {(char *)"KEY_SPREVIOUS",KEY_SPREVIOUS},
  603.   {(char *)"KEY_SPRINT"   ,KEY_SPRINT},
  604.   {(char *)"KEY_SREDO"    ,KEY_SREDO},
  605.   {(char *)"KEY_SREPLACE" ,KEY_SREPLACE},
  606.   {(char *)"KEY_SRIGHT"   ,KEY_SRIGHT},
  607.   {(char *)"KEY_SRSUME"   ,KEY_SRSUME},
  608.   {(char *)"KEY_SSAVE"    ,KEY_SSAVE},
  609.   {(char *)"KEY_SSUSPEND" ,KEY_SSUSPEND},
  610.   {(char *)"KEY_SUNDO"    ,KEY_SUNDO},
  611.   {(char *)"KEY_SUSPEND"  ,KEY_SUSPEND},
  612.   {(char *)"KEY_UNDO"     ,KEY_UNDO},
  613.   {(char *)"KEY_CLEFT"    ,KEY_CLEFT},
  614.   {(char *)"KEY_CRIGHT"   ,KEY_CRIGHT},
  615.   {(char *)"KEY_CUP"      ,KEY_CUP},
  616.   {(char *)"KEY_CDOWN"    ,KEY_CDOWN},
  617.   {(char *)"KEY_CHOME"    ,KEY_CHOME},
  618.   {(char *)"KEY_CEND"     ,KEY_CEND},
  619.   {(char *)"KEY_CPGUP"    ,KEY_CPGUP},
  620.   {(char *)"KEY_CPGDN"    ,KEY_CPGDN},
  621.   {(char *)"KEY_MAX"      ,KEY_MAX}
  622. #endif
  623. };
  624.