Diff for /freem/src/xecline.c between versions 1.27 and 1.29

version 1.27, 2025/05/19 21:29:29 version 1.29, 2025/05/20 14:56:56
Line 24 Line 24
  *   along with FreeM.  If not, see <https://www.gnu.org/licenses/>.   *   along with FreeM.  If not, see <https://www.gnu.org/licenses/>.
  *   *
  *   $Log$   *   $Log$
    *   Revision 1.29  2025/05/20 14:56:56  snw
    *   Fix direct-mode interface to online help
    *
    *   Revision 1.28  2025/05/20 14:36:06  snw
    *   Documentation updates; raise ZCMMND instead of NOSTAND for restricted_mode restrictions
    *
  *   Revision 1.27  2025/05/19 21:29:29  snw   *   Revision 1.27  2025/05/19 21:29:29  snw
  *   Add basic tab completion to direct mode   *   Add basic tab completion to direct mode
  *   *
Line 188  short is_standard(void); Line 194  short is_standard(void);
   
 #ifdef HAVE_LIBREADLINE  #ifdef HAVE_LIBREADLINE
 char *m_commands[] = {  char *m_commands[] = {
   "@",      "?",    
   "!",      "@",
   "!!",      "!<",
   "ablock",      "!>",
   "astart",      "!!",
   "astop",      "ablock",
   "aunblock",      "astart",
   "break",      "astop",
   "close",      "aunblock",
   "do",      "break",
   "else",      "close",
   "for",      "do",
   "goto",      "else",
   "halt",      "events",
   "hang",      "for",
   "if",      "goto",
   "job",      "halt",
   "kill",      "hang",
   "ksubscripts",      "history",
   "kvalue",      "if",
   "lock",      "job",
   "merge",      "jobtab",
   "new",      "kill",
   "open",      "ksubscripts",
   "quit",      "kvalue",
   "read",      "lock",
   "set",      "locktab",
   "tcommit",      "merge",
   "then",      "new",
   "trollback",      "open",
   "tstart",      "quit",
   "use",      "rbuf",
   "view",      "rcl",
   "write",      "read",
   "xecute",      "set",
   "zassert",      "shmpages",
   "zbreak",      "shmstat",
   "zconst",      "tcommit",
   "zedit",      "then",
   "zgoto",      "trantab",
   "zhalt",      "trollback",
   "zinsert",      "tstart",
   "zjob",      "use",
   "zload",      "view",
   "zmap",      "wh",
   "znew",      "write",
   "zprint",      "xecute",
   "zquit",      "zassert",
   "zremove",      "zbreak",
   "zsave",      "zconst",
   "zthrow",      "zedit",
   "ztrap",      "zgoto",
   "zunmap",      "zhalt",
   "zwatch",      "zinsert",
   "zwith",      "zjob",
   "zwrite",      "zload",
   "ABLOCK",      "zmap",
   "ASTART",      "znew",
   "ASTOP",      "zprint",
   "AUNBLOCK",      "zquit",
   "BREAK",      "zremove",
   "CLOSE",      "zsave",
   "DO",      "zthrow",
   "ELSE",      "ztrap",
   "FOR",      "zunmap",
   "GOTO",      "zwatch",
   "HALT",      "zwith",
   "HANG",      "zwrite",
   "IF",      "ABLOCK",
   "JOB",      "ASTART",
   "KILL",      "ASTOP",
   "KSUBSCRIPTS",      "AUNBLOCK",
   "KVALUE",      "BREAK",
   "LOCK",      "CLOSE",
   "MERGE",      "DO",
   "NEW",      "ELSE",
   "OPEN",      "FOR",
   "QUIT",      "GOTO",
   "READ",      "HALT",
   "SET",      "HANG",
   "TCOMMIT",      "IF",
   "THEN",      "JOB",
   "TROLLBACK",      "KILL",
   "TSTART",      "KSUBSCRIPTS",
   "USE",      "KVALUE",
   "VIEW",      "LOCK",
   "WRITE",      "MERGE",
   "XECUTE",      "NEW",
   "ZASSERT",      "OPEN",
   "ZBREAK",      "QUIT",
   "ZCONST",      "READ",
   "ZEDIT",      "SET",
   "ZGOTO",      "TCOMMIT",
   "ZHALT",      "THEN",
   "ZINSERT",      "TROLLBACK",
   "ZJOB",      "TSTART",
   "ZLOAD",      "USE",
   "ZMAP",      "VIEW",
   "ZNEW",      "WRITE",
   "ZPRINT",      "XECUTE",
   "ZQUIT",      "ZASSERT",
   "ZREMOVE",      "ZBREAK",
   "ZSAVE",      "ZCONST",
   "ZTHROW",      "ZEDIT",
   "ZTRAP",      "ZGOTO",
   "ZUNMAP",      "ZHALT",
   "ZWATCH",      "ZINSERT",
   "ZWITH",      "ZJOB",
   "ZWRITE",      "ZLOAD",
   NULL      "ZMAP",
       "ZNEW",
       "ZPRINT",
       "ZQUIT",
       "ZREMOVE",
       "ZSAVE",
       "ZTHROW",
       "ZTRAP",
       "ZUNMAP",
       "ZWATCH",
       "ZWITH",
       "ZWRITE",
       NULL
 };  };
   
 char **command_completion(const char *, int, int);  char **command_completion(const char *, int, int);
Line 690  next0: Line 708  next0:
         if (ch == '!') {           /* UNIXCALL */          if (ch == '!') {           /* UNIXCALL */
   
             if (restricted_mode) {              if (restricted_mode) {
                 merr_raise (NOSTAND);                  merr_raise (CMMND);
                 goto err;                  goto err;
             }              }
                           
Line 4693  use_socket: Line 4711  use_socket:
                 if (k > MAXSEQ) goto open_socket;                  if (k > MAXSEQ) goto open_socket;
   
                 if (restricted_mode) {                  if (restricted_mode) {
                     merr_raise (NOSTAND);                      merr_raise (CMMND);
                     goto err;                      goto err;
                 }                  }
   
Line 5838  zgo: Line 5856  zgo:
                     }                      }
                                           
                     if ((*(beg + 1)) == EOL) break;                      if ((*(beg + 1)) == EOL) break;
                       
                     write_m (beg + 1);                      write_m (beg + 1);
                     if (merr () > OK) break;                      if (merr () > OK) break;
                 }                  }
Line 7479  direct_mode: Line 7497  direct_mode:
                     char kb[20];                      char kb[20];
                     char db[STRLEN];                      char db[STRLEN];
                                           
                     snprintf (kb, sizeof (kb) - 1, "%%SYS.HLP\201");                      snprintf (kb, sizeof (kb) - 1, "%%SYSHLP\201");
                     snprintf (db, STRLEN - 1, "\201");                      snprintf (db, STRLEN - 1, "\201");
   
                     symtab (kill_sym, kb, db);                      symtab (kill_sym, kb, db);

Removed from v.1.27  
changed lines
  Added in v.1.29


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>