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); |