home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / the25.zip / thesrc251.zip / key.h < prev    next >
C/C++ Source or Header  |  1997-09-10  |  20KB  |  601 lines

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