home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / thesrc15.zip / command.h < prev    next >
C/C++ Source or Header  |  1993-11-17  |  29KB  |  358 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\command.h 1.4 1993/09/01 16:25:48 MH Interim MH $
  38. */
  39.  
  40. struct commands
  41. {
  42.  char *text;
  43.  unsigned short min_len;
  44.  unsigned int funkey;
  45. #ifdef PROTO
  46.  int (*function)(char *);
  47. #else
  48.  int (*function)();
  49. #endif
  50.  bool valid_profile_command;
  51.  bool set_command;
  52.  bool sos_command;
  53.  bool strip_param;
  54.  char *params;
  55. };
  56. typedef struct commands COMMAND;
  57.  
  58. #include "proto.h"
  59.  
  60. /*---------------------- *** IMPORTANT *** ----------------------------*/
  61. /* Make sure that there is no chance two or more commands can be       */
  62. /* matched based on number of significant charcters.                   */
  63. /*---------------------- *** IMPORTANT *** ----------------------------*/
  64. /*                                                                  Prof / Set / SOS /strip */
  65. COMMAND command[] =
  66. {
  67.  {(char *)"add",         3,  (-1),            Add,         TRUE, FALSE,FALSE,TRUE, (char *)"1"}, /* comm1.c */
  68.  {(char *)"all",         3,  (-1),            All,         TRUE, FALSE,FALSE,TRUE, (char *)""},  /* comm1.c */
  69.  {(char *)"arbchar",     3,  (-1),            Arbchar,     TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset1.c */
  70.  {(char *)"autosave",    2,  (-1),            Autosave,    TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset1.c */
  71.  {(char *)"backup",      4,  (-1),            Backup,      TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset1.c */
  72.  {(char *)"beep",        4,  (-1),            BeepSound,   TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset1.c */
  73. #if defined(DOS) || defined(OS2)
  74.  {(char *)"backward",    2,  KEY_PGUP,        Backward,    FALSE,FALSE,FALSE,TRUE, (char *)"1"}, /* comm1.c */
  75. #else
  76.  {(char *)"backward",    2,  KEY_PPAGE,       Backward,    FALSE,FALSE,FALSE,TRUE, (char *)"1"}, /* comm1.c */
  77.  {(char *)"backward",    2,  KEY_PrevScrn,    Backward,    FALSE,FALSE,FALSE,TRUE, (char *)"1"}, /* comm1.c */
  78. #endif
  79.  {(char *)"bottom",      3,  (-1),            Bottom,      TRUE, FALSE,FALSE,TRUE, (char *)""},  /* comm1.c */
  80.  {(char *)"cancel",      3,  (-1),            Cancel,      TRUE, FALSE,FALSE,TRUE, (char *)""},  /* comm1.c */
  81.  {(char *)"case",        4,  (-1),            Case,        TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset1.c */
  82.  {(char *)"ccancel",     2,  (-1),            Ccancel,     TRUE, FALSE,FALSE,TRUE, (char *)""},  /* comm1.c */
  83.  {(char *)"change",      1,  (-1),            Change,      TRUE, FALSE,FALSE,TRUE, (char *)""},  /* comm1.c */
  84.  {(char *)"clearscreen", 6,  (-1),            Clearscreen, TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset1.c */
  85.  {(char *)"clock",       5,  (-1),            Clock,       TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset1.c */
  86. #if defined(DOS) || defined(OS2)
  87.  {(char *)"cmatch",      0,  KEY_F7,          Cmatch,      FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm1.c */
  88. #else
  89.  {(char *)"cmatch",      0,  KEY_F(7),        Cmatch,      FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm1.c */
  90. #endif
  91.  {(char *)"cmdarrows",   4,  (-1),            Cmdarrows,   TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset1.c */
  92.  {(char *)"cmdline",     3,  (-1),            Cmdline,     TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset1.c */
  93.  {(char *)"cmsg",        4,  (-1),            Cmsg,        FALSE,FALSE,FALSE,FALSE,(char *)""},  /* comm1.c */
  94.  {(char *)"command",     7,  (-1),            Command,     TRUE, FALSE,FALSE,TRUE, (char *)""},  /* comm1.c */
  95.  {(char *)"colour",      6,  (-1),            Colour,      TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset1.c */
  96.  {(char *)"color",       5,  (-1),            Colour,      TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset1.c */
  97.  {(char *)"copy",        4,  (-1),            Copy,        FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm1.c */
  98. #if defined(DOS) || defined(OS2)
  99.  {(char *)"control_char",0,  KEY_F12,         Control_char,FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm1.c */
  100.  {(char *)"copy",        0,  KEY_A_c,         Copy,        FALSE,FALSE,FALSE,TRUE, (char *)"block reset"},  /* comm1.c */
  101.  {(char *)"copy",        0,  KEY_A_k,         Copy,        FALSE,FALSE,FALSE,TRUE, (char *)"block"},  /* comm1.c */
  102. #else
  103.  {(char *)"control_char",0,  KEY_F(6),        Control_char,FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm1.c */
  104.  {(char *)"copy",        0,  ControlC,        Copy,        FALSE,FALSE,FALSE,TRUE, (char *)"block reset"},  /* comm1.c */
  105.  {(char *)"copy",        0,  ControlK,        Copy,        FALSE,FALSE,FALSE,TRUE, (char *)"block"},  /* comm1.c */
  106. #endif
  107.  {(char *)"curline",     4,  (-1),            Curline,     TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset1.c */
  108.  {(char *)"define",      3,  (-1),            Define,      TRUE, FALSE,FALSE,TRUE, (char *)"1"}, /* comm1.c */
  109.  {(char *)"delete",      3,  (-1),            DeleteLine,  TRUE, FALSE,FALSE,TRUE, (char *)"1"}, /* comm1.c */
  110. #if defined(DOS) || defined(OS2)
  111.  {(char *)"delete",      0,  KEY_A_g,         DeleteLine,  FALSE,FALSE,FALSE,TRUE, (char *)"block"}, /* comm1.c */
  112. #else
  113.  {(char *)"delete",      0,  ControlG,        DeleteLine,  FALSE,FALSE,FALSE,TRUE, (char *)"block"}, /* comm1.c */
  114. #endif
  115.  {(char *)"directory",   3,  (-1),            Directory,   FALSE,FALSE,FALSE,TRUE, (char *)"1"}, /* comm1.c */
  116.  {(char *)"dirinclude",  4,  (-1),            Dirinclude,  TRUE, TRUE, FALSE,TRUE, (char *)"*"}, /* commset1.c */
  117.  {(char *)"ls",          2,  (-1),            Directory,   FALSE,FALSE,FALSE,TRUE, (char *)"1"}, /* comm1.c */
  118.  {(char *)"display",     4,  (-1),            Display,     TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset1.c */
  119.  {(char *)"down",        1,  (-1),            Next,        TRUE, FALSE,FALSE,TRUE, (char *)"1"}, /* comm3.c */
  120.  {(char *)"duplicate",   3,  (-1),            Duplicate,   TRUE, FALSE,FALSE,TRUE, (char *)""},  /* comm2.c */
  121. #if defined(DOS) || defined(OS2)
  122.  {(char *)"down_arrow",  0,  KEY_CURD,        Down_arrow,  FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm1.c */
  123.  {(char *)"duplicate",   0,  KEY_A_d,         Duplicate,   TRUE, FALSE,FALSE,TRUE, (char *)"1 BLOCK"},  /* comm2.c */
  124. #else
  125.  {(char *)"down_arrow",  0,  KEY_DOWN,        Down_arrow,  FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm1.c */
  126.  {(char *)"duplicate",   0,  ControlD,        Duplicate,   TRUE, FALSE,FALSE,TRUE, (char *)"1 BLOCK"},  /* comm2.c */
  127.  {(char *)"enter",       0,  ControlM,        Enter,       FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm2.c */
  128.  {(char *)"enter",       0,  KEY_ENTER,       Enter,       FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm2.c */
  129. #endif
  130.  {(char *)"enter",       0,  KEY_RETURN,      Enter,       FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm2.c */
  131.  {(char *)"emsg",        4,  (-1),            Emsg,        TRUE, FALSE,FALSE,FALSE,(char *)""},  /* comm2.c */
  132.  {(char *)"eolout",      4,  (-1),            Eolout,      TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset1.c */
  133.  {(char *)"etmode",      6,  (-1),            Etmode,      TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset1.c */
  134.  {(char *)"expand",      3,  (-1),            Expand,      TRUE, FALSE,FALSE,TRUE, (char *)""},  /* comm2.c */
  135.  {(char *)"extract",     3,  (-1),            Extract,     TRUE, FALSE,FALSE,TRUE, (char *)""},  /* comm2.c */
  136.  {(char *)"ffile",       2,  (-1),            Ffile,       TRUE, FALSE,FALSE,TRUE, (char *)""},  /* comm2.c */
  137. #if defined(DOS) || defined(OS2)
  138.  {(char *)"file",        4,  KEY_F3,          File,        TRUE, FALSE,FALSE,TRUE, (char *)""},  /* comm2.c */
  139.  {(char *)"fillbox",     4,  KEY_A_f,         Fillbox,     FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm2.c */
  140. #else
  141.  {(char *)"file",        4,  KEY_F(3),        File,        TRUE, FALSE,FALSE,TRUE, (char *)""},  /* comm2.c */
  142.  {(char *)"file",        0,  KEY_PF3,         File,        TRUE, FALSE,FALSE,TRUE, (char *)""},  /* comm2.c */
  143.  {(char *)"fillbox",     4,  ControlF,        Fillbox,     FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm2.c */
  144. #endif
  145. #if defined(DOS) || defined(OS2)
  146.  {(char *)"forward",     2,  KEY_PGDN,        Forward,     FALSE,FALSE,FALSE,TRUE, (char *)"1"}, /* comm2.c */
  147.  {(char *)"forward",     2,  KEY_C_PGDN,      Forward,     FALSE,FALSE,FALSE,TRUE, (char *)"*"}, /* comm2.c */
  148. #else
  149.  {(char *)"forward",     2,  KEY_NPAGE,       Forward,     FALSE,FALSE,FALSE,TRUE, (char *)"1"}, /* comm2.c */
  150.  {(char *)"forward",     2,  KEY_NextScrn,    Forward,     FALSE,FALSE,FALSE,TRUE, (char *)"1"}, /* comm2.c */
  151. #endif
  152.  {(char *)"get",         3,  (-1),            Get,         TRUE, FALSE,FALSE,TRUE, (char *)""},  /* comm2.c */
  153. #if defined(DOS) || defined(OS2)
  154.  {(char *)"help",        4,  KEY_F1,          Help,        FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm2.c */
  155. #else
  156.  {(char *)"help",        4,  KEY_F(1),        Help,        FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm2.c */
  157.  {(char *)"help",        0,  KEY_PF1,         Help,        FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm2.c */
  158. #endif
  159.  {(char *)"hex",         3,  (-1),            Hex,         TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset1.c */
  160.  {(char *)"hexdisplay",  7,  (-1),            Hexdisplay,  TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset1.c */
  161.  {(char *)"impmacro",    5,  (-1),            Impmacro,    TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset1.c */
  162.  {(char *)"impos",       5,  (-1),            Impos,       TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset1.c */
  163.  {(char *)"impcmscp",    3,  (-1),            Impos,       TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset1.c */
  164.  {(char *)"input",       1,  (-1),            Input,       TRUE, FALSE,FALSE,FALSE,(char *)""},  /* comm2.c */
  165. #if defined(DOS) || defined(OS2)
  166.  {(char *)"insertmode",  7,  KEY_INS,         Insertmode,  TRUE, TRUE, FALSE,TRUE, (char *)"toggle"},  /* commset1.c */
  167.  {(char *)"left_arrow",  0,  KEY_CURL,        Left_arrow,  FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm3.c */
  168.  {(char *)"locate",      1,  KEY_S_F1,        Locate,      TRUE, FALSE,FALSE,TRUE, (char *)""},  /* comm3.c */
  169. #else
  170.  {(char *)"insertmode",  7,  KEY_IC,          Insertmode,  TRUE, TRUE, FALSE,TRUE, (char *)"toggle"},  /* commset1.c */
  171.  {(char *)"left_arrow",  0,  KEY_LEFT,        Left_arrow,  FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm3.c */
  172.  {(char *)"locate",      1,  KEY_F(11),       Locate,      TRUE, FALSE,FALSE,TRUE, (char *)""},  /* comm3.c */
  173. #endif
  174.  {(char *)"linend",      5,  (-1),            Linend,      TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset1.c */
  175.  {(char *)"lowercase",   3,  (-1),            Lowercase,   TRUE, FALSE,FALSE,TRUE, (char *)""},  /* comm3.c */
  176.  {(char *)"macro",       5,  (-1),            Macro,       FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm3.c */
  177.  {(char *)"macroext",    6,  (-1),            Macroext,    TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset1.c */
  178.  {(char *)"macropath",   6,  (-1),            Macropath,   TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset1.c */
  179.  {(char *)"margins",     3,  (-1),            Margins,     TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset1.c */
  180.  {(char *)"mark",        4,  (-1),            Mark,        FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm3.c */
  181.  {(char *)"modify",      3,  (-1),            Modify,      FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm3.c */
  182. #if defined(DOS) || defined(OS2)
  183.  {(char *)"mark",        0,  KEY_A_l,         Mark,        FALSE,FALSE,FALSE,TRUE, (char *)"line"},  /* comm3.c */
  184.  {(char *)"mark",        0,  KEY_A_b,         Mark,        FALSE,FALSE,FALSE,TRUE, (char *)"box"},  /* comm3.c */
  185.  {(char *)"move",        4,  KEY_A_m,         Move,        FALSE,FALSE,FALSE,TRUE, (char *)"block"},  /* comm3.c */
  186.  {(char *)"nextwindow",  5,  KEY_F2,          Nextwindow,  FALSE,FALSE,FALSE,TRUE, (char *)""}, /* comm3.c */
  187.  {(char *)"overlaybox",  8,  KEY_A_o,         Overlaybox,  FALSE,FALSE,FALSE,TRUE, (char *)""}, /* comm3.c */
  188. #else
  189.  {(char *)"mark",        0,  ControlL,        Mark,        FALSE,FALSE,FALSE,TRUE, (char *)"line"},  /* comm3.c */
  190.  {(char *)"mark",        0,  ControlB,        Mark,        FALSE,FALSE,FALSE,TRUE, (char *)"box"},  /* comm3.c */
  191.  {(char *)"move",        4,  ControlV,        Move,        FALSE,FALSE,FALSE,TRUE, (char *)"block"},  /* comm3.c */
  192.  {(char *)"nextwindow",  5,  KEY_F(2),        Nextwindow,  FALSE,FALSE,FALSE,TRUE, (char *)""}, /* comm3.c */
  193.  {(char *)"nextwindow",  5,  KEY_PF2,         Nextwindow,  FALSE,FALSE,FALSE,TRUE, (char *)""}, /* comm3.c */
  194.  {(char *)"overlaybox",  8,  ControlO,        Overlaybox,  FALSE,FALSE,FALSE,TRUE, (char *)""}, /* comm3.c */
  195. #endif
  196.  {(char *)"msg",         3,  (-1),            Msg,         TRUE, FALSE,FALSE,FALSE,(char *)""}, /* comm3.c */
  197.  {(char *)"msgmode",     4,  (-1),            Msgmode,     TRUE, TRUE, FALSE,TRUE, (char *)""}, /* commset2.c */
  198.  {(char *)"newlines",    4,  (-1),            Newlines,    TRUE, TRUE, FALSE,TRUE, (char *)""}, /* commset2.c */
  199.  {(char *)"next",        1,  (-1),            Next,        TRUE, FALSE,FALSE,TRUE, (char *)"1"}, /* comm3.c */
  200.  {(char *)"nomsg",       5,  (-1),            Nomsg,       TRUE, FALSE,FALSE,TRUE, (char *)""}, /* comm3.c */
  201.  {(char *)"nondisp",     4,  (-1),            Nondisp,     TRUE, TRUE, FALSE,TRUE, (char *)""}, /* commset1.c */
  202.  {(char *)"nop",         3,  (-1),            Nop,         FALSE,FALSE,FALSE,TRUE, (char *)""}, /* comm3.c */
  203.  {(char *)"number",      3,  (-1),            Number,      TRUE, TRUE, FALSE,TRUE, (char *)""}, /* commset2.c */
  204.  {(char *)"osnowait",    3,  (-1),            Osnowait,    FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm3.c */
  205.  {(char *)"osquiet",     3,  (-1),            Osquiet,     FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm3.c */
  206.  {(char *)"os",          2,  (-1),            Os,          FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm3.c */
  207.  {(char *)"dosnowait",   4,  (-1),            Osnowait,    FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm3.c */
  208.  {(char *)"dosquiet",    4,  (-1),            Osquiet,     FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm3.c */
  209.  {(char *)"dos",         3,  (-1),            Os,          FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm3.c */
  210.  {(char *)"!",           1,  (-1),            Os,          FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm3.c */
  211.  {(char *)"point",       1,  (-1),            Point,       TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset2.c */
  212.  {(char *)"pending",     4,  (-1),            Pending,     TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset2.c */
  213. #if defined(DOS) || defined(OS2)
  214.  {(char *)"point",       0,  KEY_C_F11,       Point,       TRUE, TRUE, FALSE,TRUE, (char *)".a"},  /* commset2.c */
  215.  {(char *)"locate",      0,  KEY_C_F12,       Locate,      TRUE, FALSE,FALSE,TRUE, (char *)".a"},  /* commset2.c */
  216. #else
  217.  {(char *)"point",       0,  KEY_F(31),       Point,       TRUE, TRUE, FALSE,TRUE, (char *)".a"},  /* commset2.c */
  218.  {(char *)"locate",      0,  KEY_F(32),       Locate,      TRUE, FALSE,FALSE,TRUE, (char *)".a"},  /* commset2.c */
  219. #endif
  220.  {(char *)"prefix",      3,  (-1),            Prefix,      TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset2.c */
  221.  {(char *)"printer",     7,  (-1),            Printer,     TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset2.c */
  222.  {(char *)"print",       2,  (-1),            Print,       TRUE, FALSE,FALSE,TRUE, (char *)""},  /* comm4.c */
  223.  {(char *)"put",         3,  (-1),            Put,         TRUE, FALSE,FALSE,TRUE, (char *)""},  /* comm4.c */
  224.  {(char *)"putd",        4,  (-1),            Putd,        TRUE, FALSE,FALSE,TRUE, (char *)""},  /* comm4.c */
  225. #if defined(DOS) || defined(OS2)
  226.  {(char *)"qquit",       2,  KEY_S_F3,        Qquit,       TRUE, FALSE,FALSE,TRUE, (char *)""},  /* comm4.c */
  227. #else
  228.  {(char *)"qquit",       2,  KEY_F(13),       Qquit,       TRUE, FALSE,FALSE,TRUE, (char *)""},  /* comm4.c */
  229. #endif
  230.  {(char *)"quit",        4,  (-1),            Quit,        TRUE, FALSE,FALSE,TRUE, (char *)""},  /* comm4.c */
  231.  {(char *)"query",       1,  (-1),            Query,       FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm4.c */
  232. #if defined(DOS) || defined(OS2)
  233.  {(char *)"right_arrow", 0,  KEY_CURR,        Right_arrow, FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm4.c */
  234.  {(char *)"recover",     3,  KEY_F8,          Recover,     FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm4.c */
  235.  {(char *)"redraw",      6,  KEY_C_r,         Redraw,      FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm4.c */
  236. #else
  237.  {(char *)"right_arrow", 0,  KEY_RIGHT,       Right_arrow, FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm4.c */
  238.  {(char *)"recover",     3,  KEY_F(8),        Recover,     FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm4.c */
  239.  {(char *)"redraw",      6,  ControlR,        Redraw,      FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm4.c */
  240. #endif
  241.  {(char *)"refresh",     7,  (-1),            Refresh,     FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm4.c */
  242.  {(char *)"replace",     1,  (-1),            Replace,     TRUE, FALSE,FALSE,FALSE,(char *)""},  /* comm4.c */
  243.  {(char *)"reprofile",   6,  (-1),            Reprofile,   TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset2.c */
  244.  {(char *)"reserved",    5,  (-1),            Reserved,    TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset2.c */
  245.  {(char *)"reset",       3,  (-1),            Reset,       FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm4.c */
  246. #if defined(DOS) || defined(OS2)
  247.  {(char *)"reset",       0,  KEY_A_u,         Reset,       FALSE,FALSE,FALSE,TRUE, (char *)"block"},  /* comm4.c */
  248. #else
  249.  {(char *)"reset",       0,  ControlU,        Reset,       FALSE,FALSE,FALSE,TRUE, (char *)"block"},  /* comm4.c */
  250. #endif
  251. #if !defined(NOREXX)
  252.  {(char *)"rexxoutput",  7,  (-1),            Rexxoutput,  TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset2.c */
  253. #endif
  254.  {(char *)"=",           1,  (-1),            Reexecute,   TRUE, FALSE,FALSE,TRUE, (char *)""},  /* comm5.c */
  255.  {(char *)"?",           1,  (-1),            Retrieve,    FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm5.c */
  256.  {(char *)"save",        4,  (-1),            Save,        TRUE, FALSE,FALSE,TRUE, (char *)""},  /* comm4.c */
  257.  {(char *)"schange",     3,  (-1),            Schange,     FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm4.c */
  258.  {(char *)"screen",      3,  (-1),            Screen,      FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm4.c */
  259.  {(char *)"scope",       5,  (-1),            Scope,       TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset2.c */
  260.  {(char *)"select",      3,  (-1),            Select,      TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset2.c */
  261.  {(char *)"set",         3,  (-1),            Set,         TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset2.c */
  262.  {(char *)"shift",       2,  (-1),            Shift,       TRUE, FALSE,FALSE,TRUE, (char *)""},  /* comm4.c */
  263.  {(char *)"showkey",     4,  (-1),            ShowKey,     FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm4.c */
  264.  {(char *)"sort",        4,  (-1),            Sort,        TRUE, FALSE,FALSE,TRUE, (char *)""},  /* comm4.c */
  265.  {(char *)"sos",         3,  (-1),            Sos,         FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm4.c */
  266.  {(char *)"execute",     2,  (-1),            Sos_execute, FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  267. #if defined(DOS) || defined(OS2)
  268.  {(char *)"addline",     3,  KEY_F4,          Sos_addline, FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  269.  {(char *)"cursoradj",   7,  KEY_C_a,         Sos_cursoradj,FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  270.  {(char *)"delback",     5,  KEY_BKSP,        Sos_delback, FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  271.  {(char *)"delchar",     4,  KEY_DEL,         Sos_delchar, FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  272.  {(char *)"delend",      4,  KEY_C_END,       Sos_delend,  FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  273.  {(char *)"delline",     4,  KEY_F9,          Sos_delline, FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  274.  {(char *)"delword",     4,  KEY_A_w,         Sos_delword, FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  275.  {(char *)"doprefix",    5,  KEY_NUMENTER,    Sos_doprefix,FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  276.  {(char *)"edit",        4,  KEY_A_x,         Sos_edit,    FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  277.  {(char *)"endchar",     4,  KEY_END,         Sos_endchar, FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  278.  {(char *)"makecurr",    8,  KEY_F5,          Sos_makecurr,FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  279.  {(char *)"tabf",        3,  KEY_TAB,         Sos_tabf,    FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  280.  {(char *)"tabwordb",    8,  KEY_C_CURL,      Sos_tabwordb,FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  281.  {(char *)"tabwordf",    7,  KEY_C_CURR,      Sos_tabwordf,FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  282.  {(char *)"undo",        4,  KEY_ESC,         Sos_undo,    FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  283.  {(char *)"split",       2,  KEY_A_s,         Split,       FALSE,FALSE,FALSE,TRUE, (char *)"aligned"},  /* comm4.c */
  284.  {(char *)"join",        1,  KEY_A_j,         Join,        FALSE,FALSE,FALSE,TRUE, (char *)"aligned"},  /* comm2.c */
  285.  {(char *)"spltjoin",    8,  KEY_F10,         Spltjoin,    FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm4.c */
  286. #else
  287.  {(char *)"addline",     3,  KEY_F(4),        Sos_addline, FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  288.  {(char *)"addline",     3,  KEY_PF4,         Sos_addline, FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  289.  {(char *)"cursoradj",   7,  ControlA,        Sos_cursoradj,FALSE,FALSE,TRUE, TRUE,(char *)""},  /* commsos.c */
  290. #ifdef OLD_DELBACK_DELCHAR
  291.  {(char *)"delback",     4,  127,             Sos_delback, FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  292.  {(char *)"delchar",     4,  8,               Sos_delchar, FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  293.  {(char *)"delchar",     4,  KEY_DC,          Sos_delchar, FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  294. #else
  295.  {(char *)"delback",     4,  BackSpace,       Sos_delback, FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  296.  {(char *)"delback",     4,  ControlH,        Sos_delback, FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  297.  {(char *)"delback",     4,  8,               Sos_delback, FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  298.  {(char *)"delback",     4,  KEY_BACKSPACE,   Sos_delback, FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  299.  {(char *)"delchar",     4,  Del,             Sos_delchar, FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  300.  {(char *)"delchar",     4,  127,             Sos_delchar, FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  301.  {(char *)"delchar",     4,  KEY_DC,          Sos_delchar, FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  302. #endif
  303.  {(char *)"delend",      4,  ControlE,        Sos_delend,  FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  304.  {(char *)"delline",     4,  KEY_F(9),        Sos_delline, FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  305.  {(char *)"delword",     4,  ControlW,        Sos_delword, FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  306.  {(char *)"doprefix",    5,  ControlP,        Sos_doprefix,FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  307.  {(char *)"edit",        4,  ControlX,        Sos_edit,    FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  308.  {(char *)"endchar",     4,  KEY_F(20),       Sos_endchar, FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  309.  {(char *)"makecurr",    8,  KEY_F(5),        Sos_makecurr,FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  310.  {(char *)"tabf",        3,  Tab,             Sos_tabf,    FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  311.  {(char *)"tabwordb",    8,  KEY_F(18),       Sos_tabwordb,FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  312.  {(char *)"tabwordf",    7,  KEY_F(19),       Sos_tabwordf,FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  313.  {(char *)"undo",        4,  ControlQ,        Sos_undo,    FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  314.  {(char *)"split",       2,  ControlS,        Split,       FALSE,FALSE,FALSE,TRUE, (char *)"aligned"},  /* comm4.c */
  315.  {(char *)"join",        1,  ControlJ,        Join,        FALSE,FALSE,FALSE,TRUE, (char *)"aligned"},  /* comm2.c */
  316.  {(char *)"spltjoin",    8,  KEY_F(10),       Spltjoin,    FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm4.c */
  317. #endif
  318.  {(char *)"lineadd",     5,  (-1),            Sos_addline, FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  319.  {(char *)"linedel",     5,  (-1),            Sos_delline, FALSE,FALSE,TRUE, TRUE, (char *)""},  /* commsos.c */
  320.  {(char *)"ssave",       2,  (-1),            Ssave,       TRUE, FALSE,FALSE,TRUE, (char *)""},  /* comm4.c */
  321.  {(char *)"status",      4,  (-1),            Status,      TRUE, FALSE,FALSE,TRUE, (char *)""},  /* comm4.c */
  322.  {(char *)"stay",        4,  (-1),            Stay,        TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset2.c */
  323. #if defined(DOS) || defined(OS2)
  324.  {(char *)"suspend",     4,  KEY_C_z,         Suspend,     FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm4.c */
  325.  {(char *)"tabcmd",      4,  KEY_HOME,        Tabcmd,      FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm5.c */
  326.  {(char *)"tabpre",      4,  KEY_NUMPLUS,     Tabpre,      FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm5.c */
  327. #else
  328.  {(char *)"suspend",     4,  ControlZ,        Suspend,     FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm4.c */
  329.  {(char *)"tabcmd",      4,  KEY_HOME,        Tabcmd,      FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm5.c */
  330.  {(char *)"tabcmd",      4,  KEY_Do,          Tabcmd,      FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm5.c */
  331.  {(char *)"tabpre",      4,  KEY_F(12),       Tabpre,      FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm5.c */
  332. #endif
  333.  {(char *)"tabkey",      4,  (-1),            Tabkey,      TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset2.c */
  334.  {(char *)"tabs",        4,  (-1),            Tabs,        TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset2.c */
  335.  {(char *)"tabsin",      5,  (-1),            Tabsin,      TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset2.c */
  336.  {(char *)"tabsout",     5,  (-1),            Tabsout,     TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset2.c */
  337.  {(char *)"text",        4,  (-1),            Text,        FALSE,FALSE,FALSE,FALSE,(char *)""},  /* comm5.c */
  338. #if defined(DOS) || defined(OS2)
  339.  {(char *)"top",         3,  KEY_C_PGUP,      Top,         TRUE, FALSE,FALSE,TRUE, (char *)""},  /* comm5.c */
  340. #else
  341.  {(char *)"top",         3,  (-1),            Top,         TRUE, FALSE,FALSE,TRUE, (char *)""},  /* comm5.c */
  342. #endif
  343.  {(char *)"up",          1,  (-1),            Up,          TRUE, FALSE,FALSE,TRUE, (char *)"1"}, /* comm5.c */
  344. #if defined(DOS) || defined(OS2)
  345.  {(char *)"up_arrow",    0,  KEY_CURU,        Up_arrow,    FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm5.c */
  346. #else
  347.  {(char *)"up_arrow",    0,  KEY_UP,          Up_arrow,    FALSE,FALSE,FALSE,TRUE, (char *)""},  /* comm5.c */
  348. #endif
  349.  {(char *)"uppercase",   3,  (-1),            Uppercase,   TRUE, FALSE,FALSE,TRUE, (char *)""},  /* comm5.c */
  350.  {(char *)"wordwrap",    5,  (-1),            Wordwrap,    TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset2.c */
  351.  {(char *)"edit",        1,  (-1),            Xedit,       TRUE, FALSE,FALSE,TRUE, (char *)""},  /* comm5.c */
  352.  {(char *)"xedit",       1,  (-1),            Xedit,       TRUE, FALSE,FALSE,TRUE, (char *)""},  /* comm5.c */
  353.  {(char *)"the",         3,  (-1),            Xedit,       TRUE, FALSE,FALSE,TRUE, (char *)""},  /* comm5.c */
  354.  {(char *)"verify",      1,  (-1),            Verify,      TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset2.c */
  355.  {(char *)"zone",        1,  (-1),            Zone,        TRUE, TRUE, FALSE,TRUE, (char *)""},  /* commset2.c */
  356.  {NULL,                           0,  (-1),            NULL,        FALSE,FALSE,FALSE,FALSE,(char *)""}   /* commset2.c */
  357. };
  358.