home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / the25.zip / thesrc251.zip / command.h < prev    next >
C/C++ Source or Header  |  1998-06-01  |  57KB  |  482 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: command.h 2.1 1995/06/24 16:29:02 MH Rel MH $
  38. */
  39.  
  40. struct commands
  41. {
  42.  CHARTYPE *text;
  43.  unsigned short min_len;
  44.  int funkey;
  45. #ifdef HAVE_PROTO
  46.  short (*function)(CHARTYPE *);
  47. #else
  48.  short (*function)();
  49. #endif
  50.  bool valid_batch_command;
  51.  bool set_command;
  52.  bool sos_command;
  53.  bool valid_in_readonly;
  54.  bool edit_command;
  55.  bool strip_param;
  56.  bool valid_readv;
  57.  bool valid_input_full;
  58.  bool valid_for_reprofile;
  59.  CHARTYPE *params;
  60. };
  61. typedef struct commands COMMAND;
  62.  
  63. #include "proto.h"
  64.  
  65. /*---------------------- *** IMPORTANT *** ----------------------------*/
  66. /* Make sure that there is no chance two or more commands can be       */
  67. /* matched based on number of significant charcters.                   */
  68. /*---------------------- *** IMPORTANT *** ----------------------------*/
  69. /*                                                                  Batch/ Set / SOS / RO   /edit/strip     /readv/input/reprof  */
  70. COMMAND command[] =
  71. {
  72. #if defined(DOS) || defined(OS2) || defined(USE_XCURSES) || defined(WIN32)
  73.  {(CHARTYPE *)"cursor",      0,  KEY_CURR,        Cursor,           FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)"right"},  /* comm1.c */
  74.  {(CHARTYPE *)"cursor",      0,  KEY_CURL,        Cursor,           FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)"left"},  /* comm1.c */
  75.  {(CHARTYPE *)"cursor",      0,  KEY_CURD,        Cursor,           FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"down"},  /* comm1.c */
  76.  {(CHARTYPE *)"cursor",      0,  KEY_CURU,        Cursor,           FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"up"},  /* comm1.c */
  77. #else
  78.  {(CHARTYPE *)"cursor",      0,  KEY_RIGHT,       Cursor,           FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)"right"},  /* comm1.c */
  79.  {(CHARTYPE *)"cursor",      0,  KEY_LEFT,        Cursor,           FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)"left"},  /* comm1.c */
  80.  {(CHARTYPE *)"cursor",      0,  KEY_DOWN,        Cursor,           FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"down"},  /* comm1.c */
  81.  {(CHARTYPE *)"cursor",      0,  KEY_UP,          Cursor,           FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"up"},  /* comm1.c */
  82. #endif
  83. #if defined(XCURSES)
  84.  {(CHARTYPE *)"scrollbar",   0,  KEY_SF,          ScrollbarVert,    FALSE,FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* mouse.c */
  85.  {(CHARTYPE *)"scrollbar",   0,  KEY_SR,          ScrollbarHorz,    FALSE,FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* mouse.c */
  86. #endif
  87.  {(CHARTYPE *)"add",         1,  (-1),            Add,              TRUE, FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"1"}, /* comm1.c */
  88.  {(CHARTYPE *)"all",         3,  (-1),            All,              TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm1.c */
  89.  {(CHARTYPE *)"arbchar",     3,  (-1),            Arbchar,          TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  90.  {(CHARTYPE *)"alt",         3,  (-1),            Alt,              TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  91.  {(CHARTYPE *)"autosave",    2,  (-1),            Autosave,         TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  92. #if defined(DOS) || defined(OS2) || defined(USE_XCURSES) || defined(WIN32)
  93.  {(CHARTYPE *)"backward",    2,  KEY_PGUP,        Backward,         TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"1"}, /* comm1.c */
  94. #else
  95.  {(CHARTYPE *)"backward",    2,  KEY_PPAGE,       Backward,         TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"1"}, /* comm1.c */
  96.  {(CHARTYPE *)"backward",    2,  KEY_PrevScreen,  Backward,         TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"1"}, /* comm1.c */
  97. #endif
  98.  {(CHARTYPE *)"backup",      4,  (-1),            Backup,           TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  99.  {(CHARTYPE *)"beep",        4,  (-1),            BeepSound,        TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  100.  {(CHARTYPE *)"bottom",      1,  (-1),            Bottom,           TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm1.c */
  101.  {(CHARTYPE *)"cancel",      3,  (-1),            Cancel,           TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm1.c */
  102.  {(CHARTYPE *)"cappend",     2,  (-1),            Cappend,          TRUE, FALSE,FALSE,FALSE,FALSE,STRIP_NONE,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm1.c */
  103.  {(CHARTYPE *)"case",        4,  (-1),            Case,             TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  104.  {(CHARTYPE *)"ccancel",     2,  (-1),            Ccancel,          TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm1.c */
  105.  {(CHARTYPE *)"cdelete",     2,  (-1),            Cdelete,          TRUE, FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm1.c */
  106.  {(CHARTYPE *)"cfirst",      2,  (-1),            Cfirst,           TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm1.c */
  107.  {(CHARTYPE *)"change",      1,  (-1),            Change,           TRUE, FALSE,FALSE,FALSE,FALSE,STRIP_NONE,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm1.c */
  108.  {(CHARTYPE *)"cinsert",     2,  (-1),            Cinsert,          TRUE, FALSE,FALSE,FALSE,FALSE,STRIP_NONE,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm1.c */
  109.  {(CHARTYPE *)"clast",       3,  (-1),            Clast,            TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm1.c */
  110.  {(CHARTYPE *)"clearscreen", 6,  (-1),            Clearscreen,      TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  111.  {(CHARTYPE *)"clocate",     2,  (-1),            Clocate,          TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm1.c */
  112.  {(CHARTYPE *)"clock",       5,  (-1),            Clock,            TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  113. #if defined(DOS) || defined(OS2) || defined(USE_XCURSES) || defined(WIN32)
  114.  {(CHARTYPE *)"cmatch",      6,  KEY_F7,          Cmatch,           FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm1.c */
  115. #else
  116.  {(CHARTYPE *)"cmatch",      6,  KEY_F(7),        Cmatch,           FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm1.c */
  117. #endif
  118.  {(CHARTYPE *)"cmdarrows",   4,  (-1),            Cmdarrows,        TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  119.  {(CHARTYPE *)"cmdline",     3,  (-1),            Cmdline,          TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  120.  {(CHARTYPE *)"cmsg",        4,  (-1),            Cmsg,             TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_NONE,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm1.c */
  121.  {(CHARTYPE *)"command",     7,  (-1),            THECommand,       TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm1.c */
  122.  {(CHARTYPE *)"colour",      6,  (-1),            Colour,           TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  123.  {(CHARTYPE *)"color",       5,  (-1),            Colour,           TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  124.  {(CHARTYPE *)"compat",      6,  (-1),            Compat,           TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  125.  {(CHARTYPE *)"compress",    4,  (-1),            Compress,         TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_NONE,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm1.c */
  126.  {(CHARTYPE *)"copy",        4,  (-1),            Copy,             FALSE,FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm1.c */
  127. #if defined(DOS) || defined(OS2) || defined(USE_XCURSES) || defined(WIN32)
  128.  {(CHARTYPE *)"controlchar", 8,  KEY_F11,         ControlChar,      FALSE,FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm1.c */
  129. #if  defined(USE_XCURSES)
  130.  {(CHARTYPE *)"copy",        0,  KEY_C_c,         Copy,             FALSE,FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"block reset"},  /* comm1.c */
  131.  {(CHARTYPE *)"copy",        0,  KEY_C_k,         Copy,             FALSE,FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"block"},  /* comm1.c */
  132. #  else
  133.  {(CHARTYPE *)"copy",        0,  ALT_C,           Copy,             FALSE,FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"block reset"},  /* comm1.c */
  134.  {(CHARTYPE *)"copy",        0,  ALT_K,           Copy,             FALSE,FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"block"},  /* comm1.c */
  135. #  endif
  136.  {(CHARTYPE *)"cursor",      3,  KEY_HOME,        Cursor,           TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"home save"},  /* comm1.c */
  137. #else
  138.  {(CHARTYPE *)"controlchar" ,8,  KEY_F(11),       ControlChar,      FALSE,FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm1.c */
  139.  {(CHARTYPE *)"copy",        0,  KEY_C_c,         Copy,             FALSE,FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"block reset"},  /* comm1.c */
  140.  {(CHARTYPE *)"copy",        0,  KEY_C_k,         Copy,             FALSE,FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"block"},  /* comm1.c */
  141.  {(CHARTYPE *)"cursor",      3,  KEY_HOME,        Cursor,           TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"home save"},  /* comm1.c */
  142.  {(CHARTYPE *)"cursor",      0,  KEY_F16,         Cursor,           FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"home save"},  /* comm1.c */
  143. #endif
  144.  {(CHARTYPE *)"coverlay",    3,  (-1),            Coverlay,         TRUE, FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm1.c */
  145.  {(CHARTYPE *)"creplace",    2,  (-1),            Creplace,         TRUE, FALSE,FALSE,FALSE,FALSE,STRIP_NONE,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm1.c */
  146.  {(CHARTYPE *)"curline",     4,  (-1),            Curline,          TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  147.  {(CHARTYPE *)"cursorstay",  8,  (-1),            CursorStay,       TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  148.  {(CHARTYPE *)"define",      3,  (-1),            Define,           TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm2.c */
  149.  {(CHARTYPE *)"delete",      3,  (-1),            DeleteLine,       TRUE, FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"1"}, /* comm2.c */
  150. #if defined(DOS) || defined(OS2) || defined(WIN32)
  151.  {(CHARTYPE *)"delete",      0,  ALT_G,           DeleteLine,       FALSE,FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"block"}, /* comm2.c */
  152. #else
  153.  {(CHARTYPE *)"delete",      0,  KEY_C_g,         DeleteLine,       FALSE,FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"block"}, /* comm2.c */
  154. #endif
  155.  {(CHARTYPE *)"directory",   3,  (-1),            Directory,        FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,FALSE,(CHARTYPE *)""},  /* comm2.c */
  156.  {(CHARTYPE *)"dirinclude",  4,  (-1),            Dirinclude,       TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"*"}, /* commset1.c */
  157.  {(CHARTYPE *)"ls",          2,  (-1),            Directory,        FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,FALSE,(CHARTYPE *)""},  /* comm2.c */
  158.  {(CHARTYPE *)"defsort",     7,  (-1),            Defsort,          TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  159.  {(CHARTYPE *)"display",     4,  (-1),            Display,          TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  160.  {(CHARTYPE *)"down",        1,  (-1),            THENext,          TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"1"}, /* comm3.c */
  161.  {(CHARTYPE *)"duplicate",   3,  (-1),            Duplicate,        TRUE, FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm2.c */
  162. #if defined(DOS) || defined(OS2) || defined(WIN32)
  163.  {(CHARTYPE *)"duplicate",   0,  ALT_D,           Duplicate,        TRUE, FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"1 BLOCK"},  /* comm2.c */
  164. #else
  165.  {(CHARTYPE *)"duplicate",   0,  KEY_C_d,         Duplicate,        TRUE, FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"1 BLOCK"},  /* comm2.c */
  166.  {(CHARTYPE *)"enter",       0,  KEY_C_m,         Enter,            FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm2.c */
  167.  {(CHARTYPE *)"enter",       0,  KEY_ENTER,       Enter,            FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm2.c */
  168. #endif
  169. #if defined(USE_EXTCURSES)
  170.  {(CHARTYPE *)"enter",       0,  KEY_NEWL,        Enter,            FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm2.c */
  171. #else
  172.  {(CHARTYPE *)"enter",       0,  KEY_RETURN,      Enter,            FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm2.c */
  173. #endif
  174.  {(CHARTYPE *)"editv",       5,  (-1),            THEEditv,         TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm2.c */
  175.  {(CHARTYPE *)"emsg",        4,  (-1),            Emsg,             TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_NONE,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm2.c */
  176.  {(CHARTYPE *)"eolout",      4,  (-1),            Eolout,           TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  177.  {(CHARTYPE *)"etmode",      6,  (-1),            Etmode,           TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  178.  {(CHARTYPE *)"expand",      3,  (-1),            Expand,           TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm2.c */
  179.  {(CHARTYPE *)"extract",     3,  (-1),            Extract,          TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm2.c */
  180.  {(CHARTYPE *)"ffile",       2,  (-1),            Ffile,            TRUE, FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm2.c */
  181. #if defined(DOS) || defined(OS2) || defined(WIN32)
  182.  {(CHARTYPE *)"file",        4,  KEY_F3,          File,             TRUE, FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm2.c */
  183.  {(CHARTYPE *)"fillbox",     4,  ALT_F,           Fillbox,          FALSE,FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm2.c */
  184. #else
  185. #  if defined(USE_XCURSES)
  186.  {(CHARTYPE *)"file",        4,  KEY_F3,          File,             TRUE, FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm2.c */
  187. #  else
  188.  {(CHARTYPE *)"file",        4,  KEY_F(3),        File,             TRUE, FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm2.c */
  189.  {(CHARTYPE *)"file",        0,  KEY_PF3,         File,             TRUE, FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm2.c */
  190. #  endif
  191.  {(CHARTYPE *)"fillbox",     4,  KEY_C_f,         Fillbox,          FALSE,FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm2.c */
  192. #endif
  193.  {(CHARTYPE *)"find",        1,  (-1),            Find,             TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_NONE,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm2.c */
  194.  {(CHARTYPE *)"findup",      5,  (-1),            Findup,           TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_NONE,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm2.c */
  195.  {(CHARTYPE *)"fup",         2,  (-1),            Findup,           TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_NONE,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm2.c */
  196.  {(CHARTYPE *)"fext",        2,  (-1),            Fext,             TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  197.  {(CHARTYPE *)"filename",    5,  (-1),            Filename,         TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  198.  {(CHARTYPE *)"fmode",       2,  (-1),            Fmode,            TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  199.  {(CHARTYPE *)"fname",       2,  (-1),            Fname,            TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  200.  {(CHARTYPE *)"fpath",       2,  (-1),            Fpath,            TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  201.  {(CHARTYPE *)"ftype",       2,  (-1),            Fext,             TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  202. #if defined(DOS) || defined(OS2) || defined(USE_XCURSES) || defined(WIN32)
  203.  {(CHARTYPE *)"forward",     2,  KEY_PGDN,        Forward,          TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"1"}, /* comm2.c */
  204.  {(CHARTYPE *)"forward",     2,  CTL_PGDN,        Forward,          TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"*"}, /* comm2.c */
  205. #else
  206.  {(CHARTYPE *)"forward",     2,  KEY_NPAGE,       Forward,          TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"1"}, /* comm2.c */
  207.  {(CHARTYPE *)"forward",     2,  KEY_NextScreen,  Forward,          TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"1"}, /* comm2.c */
  208. #endif
  209.  {(CHARTYPE *)"fullfname",   6,  (-1),            Fullfname,        TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  210.  {(CHARTYPE *)"get",         3,  (-1),            Get,              TRUE, FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm2.c */
  211. #if defined(DOS) || defined(OS2) || defined(USE_XCURSES) || defined(WIN32)
  212.  {(CHARTYPE *)"help",        4,  KEY_F1,          Help,             FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm2.c */
  213. #else
  214.  {(CHARTYPE *)"help",        4,  KEY_F(1),        Help,             FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm2.c */
  215.  {(CHARTYPE *)"help",        0,  KEY_PF1,         Help,             FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm2.c */
  216. #endif
  217.  {(CHARTYPE *)"hex",         3,  (-1),            Hex,              TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  218.  {(CHARTYPE *)"hexdisplay",  7,  (-1),            Hexdisplay,       TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  219.  {(CHARTYPE *)"hexshow",     4,  (-1),            Hexshow,          TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  220.  {(CHARTYPE *)"highlight",   4,  (-1),            Highlight,        TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  221.  {(CHARTYPE *)"hit",         3,  (-1),            Hit,              TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm2.c */
  222.  {(CHARTYPE *)"idline",      2,  (-1),            Idline,           TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  223.  {(CHARTYPE *)"impmacro",    5,  (-1),            Impmacro,         TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  224.  {(CHARTYPE *)"impos",       5,  (-1),            Impos,            TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  225.  {(CHARTYPE *)"impcmscp",    3,  (-1),            Impos,            TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  226.  {(CHARTYPE *)"input",       1,  (-1),            Input,            TRUE, FALSE,FALSE,FALSE,FALSE,STRIP_NONE,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm2.c */
  227.  {(CHARTYPE *)"inputmode",   6,  (-1),            Inputmode,        TRUE, TRUE, FALSE,FALSE,FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  228. #if defined(DOS) || defined(OS2) || defined(USE_XCURSES) || defined(WIN32)
  229.  {(CHARTYPE *)"insertmode",  7,  KEY_INS,         Insertmode,       TRUE, TRUE, FALSE,FALSE,FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)"toggle"},  /* commset1.c */
  230.  {(CHARTYPE *)"locate",      1,  KEY_S_F1,        Locate,           TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm3.c */
  231. #else
  232.  {(CHARTYPE *)"insertmode",  7,  KEY_IC,          Insertmode,       TRUE, TRUE, FALSE,FALSE,FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)"toggle"},  /* commset1.c */
  233.  {(CHARTYPE *)"locate",      1,  KEY_F(11),       Locate,           TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm3.c */
  234. #endif
  235.  {(CHARTYPE *)"left",        2,  (-1),            Left,             TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm3.c */
  236.  {(CHARTYPE *)"linend",      5,  (-1),            Linend,           TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  237.  {(CHARTYPE *)"lowercase",   3,  (-1),            Lowercase,        TRUE, FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm3.c */
  238.  {(CHARTYPE *)"macro",       5,  (-1),            Macro,            TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm3.c */
  239.  {(CHARTYPE *)"macro",       5,  (-1),            SetMacro,         TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  240.  {(CHARTYPE *)"macroext",    6,  (-1),            Macroext,         TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  241.  {(CHARTYPE *)"macropath",   6,  (-1),            Macropath,        TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  242.  {(CHARTYPE *)"margins",     3,  (-1),            Margins,          TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  243.  {(CHARTYPE *)"mark",        4,  (-1),            Mark,             FALSE,FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm3.c */
  244.  {(CHARTYPE *)"modify",      3,  (-1),            Modify,           FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm3.c */
  245.  {(CHARTYPE *)"mouse",       5,  (-1),            Mouse,            TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  246. #if defined(MOUSE_SUPPORT_ENABLED)
  247.  {(CHARTYPE *)"",            0,  KEY_MOUSE,       THEMouse,         FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm3.c */
  248. #endif
  249. #if defined(DOS) || defined(OS2) || defined(WIN32)
  250.  {(CHARTYPE *)"mark",        0,  ALT_L,           Mark,             FALSE,FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"line"},  /* comm3.c */
  251.  {(CHARTYPE *)"mark",        0,  ALT_B,           Mark,             FALSE,FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"box"},  /* comm3.c */
  252.  {(CHARTYPE *)"move",        4,  ALT_M,           THEMove,          FALSE,FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"block reset"},  /* comm3.c */
  253.  {(CHARTYPE *)"nextwindow",  5,  KEY_F2,          Nextwindow,       FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""}, /* comm3.c */
  254.  {(CHARTYPE *)"overlaybox",  8,  ALT_O,           Overlaybox,       FALSE,FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""}, /* comm3.c */
  255. #else
  256.  {(CHARTYPE *)"mark",        0,  KEY_C_l,         Mark,             FALSE,FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"line"},  /* comm3.c */
  257.  {(CHARTYPE *)"mark",        0,  KEY_C_b,         Mark,             FALSE,FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"box"},  /* comm3.c */
  258.  {(CHARTYPE *)"move",        4,  KEY_C_v,         THEMove,          FALSE,FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"block reset"},  /* comm3.c */
  259. #  if defined(USE_XCURSES)
  260.  {(CHARTYPE *)"nextwindow",  5,  KEY_F2,          Nextwindow,       FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm3.c */
  261. #  else
  262.  {(CHARTYPE *)"nextwindow",  5,  KEY_F(2),        Nextwindow,       FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm3.c */
  263.  {(CHARTYPE *)"nextwindow",  5,  KEY_PF2,         Nextwindow,       FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm3.c */
  264. #  endif
  265.  {(CHARTYPE *)"overlaybox",  8,  KEY_C_o,         Overlaybox,       FALSE,FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm3.c */
  266. #endif
  267.  {(CHARTYPE *)"nfind",       2,  (-1),            Nfind,            TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_NONE,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm3.c */
  268.  {(CHARTYPE *)"nfindup",     6,  (-1),            Nfindup,          TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_NONE,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm3.c */
  269.  {(CHARTYPE *)"nfup",        3,  (-1),            Nfindup,          TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_NONE,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm3.c */
  270.  {(CHARTYPE *)"msg",         3,  (-1),            Msg,              TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_NONE,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm3.c */
  271.  {(CHARTYPE *)"msgline",     4,  (-1),            Msgline,          TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  272.  {(CHARTYPE *)"msgmode",     4,  (-1),            Msgmode,          TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  273.  {(CHARTYPE *)"newlines",    4,  (-1),            Newlines,         TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  274.  {(CHARTYPE *)"next",        1,  (-1),            THENext,          TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"1"}, /* comm3.c */
  275.  {(CHARTYPE *)"nomsg",       5,  (-1),            Nomsg,            TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm3.c */
  276.  {(CHARTYPE *)"nondisp",     4,  (-1),            Nondisp,          TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset1.c */
  277.  {(CHARTYPE *)"nop",         3,  (-1),            Nop,              FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm3.c */
  278.  {(CHARTYPE *)"number",      3,  (-1),            Number,           TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset2.c */
  279.  {(CHARTYPE *)"osnowait",    3,  (-1),            Osnowait,         FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm3.c */
  280.  {(CHARTYPE *)"osquiet",     3,  (-1),            Osquiet,          FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm3.c */
  281.  {(CHARTYPE *)"osredir",     3,  (-1),            Osredir,          FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm3.c */
  282.  {(CHARTYPE *)"os",          2,  (-1),            Os,               FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm3.c */
  283.  {(CHARTYPE *)"dosnowait",   4,  (-1),            Osnowait,         FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm3.c */
  284.  {(CHARTYPE *)"dosquiet",    4,  (-1),            Osquiet,          FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm3.c */
  285.  {(CHARTYPE *)"dos",         3,  (-1),            Os,               FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm3.c */
  286.  {(CHARTYPE *)"!",           1,  (-1),            Os,               FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm3.c */
  287.  {(CHARTYPE *)"pending",     4,  (-1),            Pending,          TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset2.c */
  288.  {(CHARTYPE *)"point",       1,  (-1),            Point,            TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset2.c */
  289. #if defined(DOS) || defined(OS2) || defined(USE_XCURSES) || defined(WIN32)
  290.  {(CHARTYPE *)"point",       0,  KEY_C_F11,       Point,            TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)".a"},/* commset2.c */
  291.  {(CHARTYPE *)"locate",      0,  KEY_C_F12,       Locate,           TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)".a"},/* commset2.c */
  292. #else
  293.  {(CHARTYPE *)"point",       0,  KEY_F(31),       Point,            TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)".a"},/* commset2.c */
  294.  {(CHARTYPE *)"locate",      0,  KEY_F(32),       Locate,           TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)".a"},/* commset2.c */
  295. #endif
  296.  {(CHARTYPE *)"position",    3,  (-1),            Position,         TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset2.c */
  297.  {(CHARTYPE *)"prefix",      3,  (-1),            Prefix,           TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset2.c */
  298.  {(CHARTYPE *)"preserve",    4,  (-1),            Preserve,         TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm4.c */
  299.  {(CHARTYPE *)"prevwindow",  5,  (-1),            Prevwindow,       FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm4.c */
  300.  {(CHARTYPE *)"printer",     7,  (-1),            THEPrinter,       TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset2.c */
  301.  {(CHARTYPE *)"print",       2,  (-1),            Print,            TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm4.c */
  302.  {(CHARTYPE *)"pscreen",     4,  (-1),            Pscreen,          TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset2.c */
  303.  {(CHARTYPE *)"put",         3,  (-1),            Put,              TRUE, FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm4.c */
  304.  {(CHARTYPE *)"putd",        4,  (-1),            Putd,             TRUE, FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm4.c */
  305. #if defined(DOS) || defined(OS2) || defined(USE_XCURSES) || defined(WIN32)
  306.  {(CHARTYPE *)"qquit",       2,  KEY_S_F3,        Qquit,            TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm4.c */
  307. #else
  308.  {(CHARTYPE *)"qquit",       2,  KEY_F(13),       Qquit,            TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm4.c */
  309. #endif
  310.  {(CHARTYPE *)"quit",        4,  (-1),            Quit,             TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm4.c */
  311.  {(CHARTYPE *)"query",       1,  (-1),            Query,            FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm4.c */
  312. #if defined(DOS) || defined(OS2) || defined(USE_XCURSES) || defined(WIN32)
  313.  {(CHARTYPE *)"recover",     3,  KEY_F8,          Recover,          FALSE,FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"1"},  /* comm4.c */
  314. #else
  315.  {(CHARTYPE *)"recover",     3,  KEY_F(8),        Recover,          FALSE,FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"1"},  /* comm4.c */
  316. #endif
  317.  {(CHARTYPE *)"readv",       5,  (-1),            Readv,            TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm4.c */
  318.  {(CHARTYPE *)"redraw",      6,  KEY_C_r,         Redraw,           FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm4.c */
  319.  {(CHARTYPE *)"refresh",     7,  (-1),            THERefresh,       FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm4.c */
  320.  {(CHARTYPE *)"repeat",      4,  (-1),            Repeat,           TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm4.c */
  321.  {(CHARTYPE *)"replace",     1,  (-1),            Replace,          TRUE, FALSE,FALSE,FALSE,FALSE,STRIP_NONE,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm4.c */
  322.  {(CHARTYPE *)"reprofile",   6,  (-1),            Reprofile,        TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset2.c */
  323.  {(CHARTYPE *)"reserved",    5,  (-1),            Reserved,         TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset2.c */
  324.  {(CHARTYPE *)"reset",       3,  (-1),            Reset,            FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm4.c */
  325. #if defined(DOS) || defined(OS2) || defined(WIN32)
  326.  {(CHARTYPE *)"reset",       0,  ALT_U,           Reset,            FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"block"},  /* comm4.c */
  327. #else
  328.  {(CHARTYPE *)"reset",       0,  KEY_C_u,         Reset,            FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"block"},  /* comm4.c */
  329. #endif
  330.  {(CHARTYPE *)"restore",     3,  (-1),            Restore,          TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm4.c */
  331.  {(CHARTYPE *)"rexxoutput",  7,  (-1),            Rexxoutput,       TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset2.c */
  332.  {(CHARTYPE *)"rgtleft",     7,  (-1),            Rgtleft,          TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm4.c */
  333.  {(CHARTYPE *)"rexx",        4,  (-1),            THERexx,          TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm4.c */
  334.  {(CHARTYPE *)"right",       2,  (-1),            Right,            TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm4.c */
  335.  {(CHARTYPE *)"=",           1,  (-1),            Reexecute,        TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm5.c */
  336. #if defined(DOS) || defined(OS2) || defined(XCURSES) || defined(WIN32)
  337.  {(CHARTYPE *)"?",           1,  KEY_F6,          Retrieve,         FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm5.c */
  338. #else
  339.  {(CHARTYPE *)"?",           1,  KEY_F(6),        Retrieve,         FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm5.c */
  340. #endif
  341.  {(CHARTYPE *)"save",        4,  (-1),            Save,             TRUE, FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm4.c */
  342.  {(CHARTYPE *)"scale",       4,  (-1),            Scale,            TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset2.c */
  343.  {(CHARTYPE *)"schange",     3,  (-1),            Schange,          FALSE,FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm4.c */
  344.  {(CHARTYPE *)"screen",      3,  (-1),            THEScreen,        FALSE,TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset2.c */
  345.  {(CHARTYPE *)"scope",       5,  (-1),            Scope,            TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset2.c */
  346.  {(CHARTYPE *)"select",      3,  (-1),            Select,           TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset2.c */
  347.  {(CHARTYPE *)"set",         3,  (-1),            Set,              TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset2.c */
  348.  {(CHARTYPE *)"shadow",      4,  (-1),            Shadow,           TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset2.c */
  349.  {(CHARTYPE *)"shift",       2,  (-1),            Shift,            TRUE, FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm4.c */
  350.  {(CHARTYPE *)"showkey",     4,  (-1),            ShowKey,          FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm4.c */
  351.  {(CHARTYPE *)"slk",         3,  (-1),            Slk,              TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset2.c */
  352.  {(CHARTYPE *)"sort",        4,  (-1),            Sort,             TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm4.c */
  353.  {(CHARTYPE *)"sos",         3,  (-1),            Sos,              FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)""},  /* comm4.c */
  354.  {(CHARTYPE *)"span",        4,  (-1),            Span,             TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset2.c */
  355.  {(CHARTYPE *)"spill",       5,  (-1),            Spill,            TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset2.c */
  356.  {(CHARTYPE *)"bottomedge",  7,  (-1),            Sos_bottomedge,   FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  357.  {(CHARTYPE *)"current",     4,  (-1),            Sos_current,      FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  358.  {(CHARTYPE *)"endchar",     4,  (-1),            Sos_endchar,      FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  359.  {(CHARTYPE *)"execute",     2,  (-1),            Sos_execute,      FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  360.  {(CHARTYPE *)"firstchar",   7,  (-1),            Sos_firstchar,    FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  361.  {(CHARTYPE *)"firstcol",    7,  (-1),            Sos_firstcol,     FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  362.  {(CHARTYPE *)"instab",      6,  (-1),            Sos_instab,       FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  363.  {(CHARTYPE *)"lastcol",     6,  (-1),            Sos_lastcol,      FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  364.  {(CHARTYPE *)"leftedge",    5,  (-1),            Sos_leftedge,     FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  365.  {(CHARTYPE *)"marginl",     7,  (-1),            Sos_marginl,      FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  366.  {(CHARTYPE *)"marginr",     7,  (-1),            Sos_marginr,      FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  367.  {(CHARTYPE *)"pastecmdline",6,  KEY_C_p,         Sos_pastecmdline, FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  368.  {(CHARTYPE *)"parindent",   6,  (-1),            Sos_parindent,    FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  369.  {(CHARTYPE *)"prefix",      3,  (-1),            Sos_prefix,       FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  370.  {(CHARTYPE *)"qcmnd",       2,  (-1),            Sos_qcmnd,        FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  371.  {(CHARTYPE *)"rightedge",   6,  (-1),            Sos_rightedge,    FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  372.  {(CHARTYPE *)"tabfieldb",   9,  (-1),            Sos_tabfieldb,    FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  373.  {(CHARTYPE *)"tabfieldf",   8,  (-1),            Sos_tabfieldf,    FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  374.  {(CHARTYPE *)"topedge",     4,  (-1),            Sos_topedge,      FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  375.  {(CHARTYPE *)"blockstart",  6,  (-1),            Sos_blockstart,   FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  376.  {(CHARTYPE *)"blockend",    6,  (-1),            Sos_blockend,     FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  377.  {(CHARTYPE *)"cursoradj",   7,  KEY_C_a,         Sos_cursoradj,    FALSE,FALSE,TRUE, FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  378. #if defined(DOS) || defined(OS2) || defined(USE_XCURSES) || defined(WIN32)
  379.  {(CHARTYPE *)"addline",     3,  KEY_F4,          Sos_addline,      FALSE,FALSE,TRUE, FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  380.  {(CHARTYPE *)"delback",     5,  KEY_BKSP,        Sos_delback,      FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  381.  {(CHARTYPE *)"delchar",     4,  KEY_DEL,         Sos_delchar,      FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  382.  {(CHARTYPE *)"delend",      4,  CTL_END,         Sos_delend,       FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  383.  {(CHARTYPE *)"delline",     4,  KEY_F9,          Sos_delline,      FALSE,FALSE,TRUE, FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  384.  {(CHARTYPE *)"doprefix",    5,  KEY_NUMENTER,    Sos_doprefix,     FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  385.  {(CHARTYPE *)"settab",      6,  (-1),            Sos_settab,       FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  386.  {(CHARTYPE *)"startendchar",9,  KEY_END,         Sos_startendchar, FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  387.  {(CHARTYPE *)"makecurr",    8,  KEY_F5,          Sos_makecurr,     FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  388.  {(CHARTYPE *)"tabb",        4,  KEY_S_TAB,       Sos_tabb,         FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  389.  {(CHARTYPE *)"tabf",        3,  KEY_TAB,         Sos_tabf,         FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  390.  {(CHARTYPE *)"tabwordb",    8,  CTL_LEFT,        Sos_tabwordb,     FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  391.  {(CHARTYPE *)"tabwordf",    7,  CTL_RIGHT,       Sos_tabwordf,     FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  392.  {(CHARTYPE *)"undo",        4,  KEY_ESC,         Sos_undo,         FALSE,FALSE,TRUE, FALSE,FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  393.  {(CHARTYPE *)"spltjoin",    8,  KEY_F10,         Spltjoin,         FALSE,FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm4.c */
  394. #  if defined(USE_XCURSES)
  395.  {(CHARTYPE *)"delword",     4,  KEY_C_w,         Sos_delword,      FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  396.  {(CHARTYPE *)"edit",        4,  KEY_C_x,         Sos_edit,         FALSE,FALSE,TRUE, TRUE, TRUE, STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  397.  {(CHARTYPE *)"split",       2,  KEY_C_s,         Split,            FALSE,FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"aligned cursor"},  /* comm4.c */
  398.  {(CHARTYPE *)"join",        1,  KEY_C_j,         Join,             FALSE,FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"aligned cursor"},  /* comm2.c */
  399. #  else
  400.  {(CHARTYPE *)"delword",     4,  ALT_W,           Sos_delword,      FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  401.  {(CHARTYPE *)"edit",        4,  ALT_X,           Sos_edit,         FALSE,FALSE,TRUE, TRUE, TRUE, STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  402.  {(CHARTYPE *)"split",       2,  ALT_S,           Split,            FALSE,FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"aligned cursor"},  /* comm4.c */
  403.  {(CHARTYPE *)"join",        1,  ALT_J,           Join,             FALSE,FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"aligned cursor"},  /* comm2.c */
  404. #  endif
  405. #else
  406.  {(CHARTYPE *)"addline",     3,  KEY_F(4),        Sos_addline,      FALSE,FALSE,TRUE, FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  407.  {(CHARTYPE *)"addline",     3,  KEY_PF4,         Sos_addline,      FALSE,FALSE,TRUE, FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  408.  {(CHARTYPE *)"tabb",        4,  (-1),            Sos_tabb,         FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  409. #ifdef OLD_DELBACK_DELCHAR
  410.  {(CHARTYPE *)"delback",     4,  127,             Sos_delback,      FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  411.  {(CHARTYPE *)"delchar",     4,  8,               Sos_delchar,      FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  412.  {(CHARTYPE *)"delchar",     4,  KEY_DC,          Sos_delchar,      FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  413. #else
  414.  {(CHARTYPE *)"delback",     4,  KEY_C_h,         Sos_delback,      FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  415.  {(CHARTYPE *)"delback",     4,  KEY_BACKSPACE,   Sos_delback,      FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  416.  {(CHARTYPE *)"delchar",     4,  KEY_Remove,      Sos_delchar,      FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  417.  {(CHARTYPE *)"delchar",     4,  KEY_DELETE,      Sos_delchar,      FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  418.  {(CHARTYPE *)"delchar",     4,  KEY_DC,          Sos_delchar,      FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  419. #endif
  420.  {(CHARTYPE *)"delend",      4,  KEY_C_e,         Sos_delend,       FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  421.  {(CHARTYPE *)"delline",     4,  KEY_F(9),        Sos_delline,      FALSE,FALSE,TRUE, FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  422.  {(CHARTYPE *)"delword",     4,  KEY_C_w,         Sos_delword,      FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  423.  {(CHARTYPE *)"doprefix",    5,  KEY_C_p,         Sos_doprefix,     FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  424.  {(CHARTYPE *)"edit",        4,  KEY_C_x,         Sos_edit,         FALSE,FALSE,TRUE, TRUE, TRUE, STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  425.  {(CHARTYPE *)"startendchar",9,  KEY_F(20),       Sos_startendchar, FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  426.  {(CHARTYPE *)"makecurr",    8,  KEY_F(5),        Sos_makecurr,     FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  427. #if defined(USE_EXTCURSES)
  428.  {(CHARTYPE *)"tabf",        3,  KEY_TAB,         Sos_tabf,         FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  429. #else
  430.  {(CHARTYPE *)"tabf",        3,  KEY_C_i,         Sos_tabf,         FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  431. #endif
  432.  {(CHARTYPE *)"tabwordb",    8,  KEY_F(18),       Sos_tabwordb,     FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  433.  {(CHARTYPE *)"tabwordf",    7,  KEY_F(19),       Sos_tabwordf,     FALSE,FALSE,TRUE, TRUE, FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  434.  {(CHARTYPE *)"undo",        4,  KEY_C_q,         Sos_undo,         FALSE,FALSE,TRUE, FALSE,FALSE,STRIP_BOTH,TRUE, FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  435.  {(CHARTYPE *)"split",       2,  KEY_C_s,         Split,            FALSE,FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"aligned cursor"},  /* comm4.c */
  436.  {(CHARTYPE *)"join",        1,  KEY_C_j,         Join,             FALSE,FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"aligned cursor"},  /* comm2.c */
  437.  {(CHARTYPE *)"spltjoin",    8,  KEY_F(10),       Spltjoin,         FALSE,FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm4.c */
  438. #endif
  439.  {(CHARTYPE *)"lineadd",     5,  (-1),            Sos_addline,      FALSE,FALSE,TRUE, FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  440.  {(CHARTYPE *)"linedel",     5,  (-1),            Sos_delline,      FALSE,FALSE,TRUE, FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commsos.c */
  441.  {(CHARTYPE *)"ssave",       2,  (-1),            Ssave,            TRUE, FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm4.c */
  442.  {(CHARTYPE *)"status",      4,  (-1),            Status,           TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm4.c */
  443.  {(CHARTYPE *)"statusline",  7,  (-1),            Statusline,       TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset2.c */
  444.  {(CHARTYPE *)"stay",        4,  (-1),            Stay,             TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset2.c */
  445.  {(CHARTYPE *)"synonym",     3,  (-1),            Synonym,          TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset2.c */
  446.  {(CHARTYPE *)"suspend",     4,  KEY_C_z,         Suspend,          FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm4.c */
  447. #if defined(DOS) || defined(OS2) || defined(USE_XCURSES) || defined(WIN32)
  448.  {(CHARTYPE *)"tabpre",      0,  PADPLUS,         Tabpre,           FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm5.c */
  449.  {(CHARTYPE *)"tabpre",      0,  KEY_F12,         Tabpre,           FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm5.c */
  450. #else
  451.  {(CHARTYPE *)"tabpre",      0,  KEY_F(12),       Tabpre,           FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm5.c */
  452. #endif
  453.  {(CHARTYPE *)"tabline",     4,  (-1),            Tabline,          TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset2.c */
  454.  {(CHARTYPE *)"tabkey",      4,  (-1),            Tabkey,           TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset2.c */
  455.  {(CHARTYPE *)"tabs",        4,  (-1),            Tabs,             TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset2.c */
  456.  {(CHARTYPE *)"tabsin",      5,  (-1),            Tabsin,           TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset2.c */
  457.  {(CHARTYPE *)"tabsout",     5,  (-1),            Tabsout,          TRUE, TRUE, FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset2.c */
  458.  {(CHARTYPE *)"text",        4,  (-1),            Text,             FALSE,FALSE,FALSE,TRUE, FALSE,STRIP_NONE,TRUE, FALSE,TRUE ,(CHARTYPE *)""},  /* comm5.c */
  459. #if defined(DOS) || defined(OS2) || defined(USE_XCURSES) || defined(WIN32)
  460.  {(CHARTYPE *)"top",         3,  CTL_PGUP,        Top,              TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm5.c */
  461. #else
  462.  {(CHARTYPE *)"top",         3,  (-1),            Top,              TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm5.c */
  463. #endif
  464.  {(CHARTYPE *)"trunc",       5,  (-1),            Trunc,            TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset2.c */
  465.  {(CHARTYPE *)"typeahead",   5,  (-1),            THETypeahead,     TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset2.c */
  466.  {(CHARTYPE *)"undoing",     7,  (-1),            Undoing,          TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset2.c */
  467.  {(CHARTYPE *)"up",          1,  (-1),            Up,               TRUE, FALSE,FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)"1"}, /* comm5.c */
  468.  {(CHARTYPE *)"uppercase",   3,  (-1),            Uppercase,        TRUE, FALSE,FALSE,FALSE,FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* comm5.c */
  469.  {(CHARTYPE *)"verify",      1,  (-1),            Verify,           TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset2.c */
  470.  {(CHARTYPE *)"width",       5,  (-1),            Width,            TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset2.c */
  471.  {(CHARTYPE *)"word",        4,  (-1),            Word,             TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset2.c */
  472.  {(CHARTYPE *)"wrap",        2,  (-1),            Wrap,             TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset2.c */
  473.  {(CHARTYPE *)"wordwrap",    5,  (-1),            Wordwrap,         TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset2.c */
  474.  {(CHARTYPE *)"xterminal",   5,  (-1),            Xterminal,        TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset2.c */
  475.  {(CHARTYPE *)"edit",        1,  (-1),            Xedit,            TRUE, FALSE,FALSE,TRUE, TRUE, STRIP_BOTH,FALSE,FALSE,FALSE,(CHARTYPE *)""},  /* comm5.c */
  476.  {(CHARTYPE *)"xedit",       1,  (-1),            Xedit,            TRUE, FALSE,FALSE,TRUE, TRUE, STRIP_BOTH,FALSE,FALSE,FALSE,(CHARTYPE *)""},  /* comm5.c */
  477.  {(CHARTYPE *)"the",         3,  (-1),            Xedit,            TRUE, FALSE,FALSE,TRUE, TRUE, STRIP_BOTH,FALSE,FALSE,FALSE,(CHARTYPE *)""},  /* comm5.c */
  478.  {(CHARTYPE *)"untaa",       5,  (-1),            Untaa,            TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset2.c */
  479.  {(CHARTYPE *)"zone",        1,  (-1),            Zone,             TRUE, TRUE, FALSE,TRUE, FALSE,STRIP_BOTH,FALSE,FALSE,TRUE ,(CHARTYPE *)""},  /* commset2.c */
  480.  {NULL,                      0,  (-1),            NULL,             FALSE,FALSE,FALSE,FALSE,FALSE,STRIP_NONE,FALSE,FALSE,TRUE ,(CHARTYPE *)""}
  481. };
  482.