| #ifdef SSHTEST |
| #define SSHBUILTIN |
| #endif /* SSHTEST */ |
| |
| #include "ckcsym.h" |
| char *userv = "User Interface 8.0.278, 12 Mar 2004"; |
| |
| /* C K U U S R -- "User Interface" for C-Kermit (Part 1) */ |
| |
| /* |
| Authors: |
| Frank da Cruz <fdc@columbia.edu>, |
| The Kermit Project, Columbia University, New York City |
| Jeffrey E Altman <jaltman@secure-endpoints.com> |
| Secure Endpoints Inc., New York City |
| |
| Copyright (C) 1985, 2004, |
| Trustees of Columbia University in the City of New York. |
| All rights reserved. See the C-Kermit COPYING.TXT file or the |
| copyright text in the ckcmai.c module for disclaimer and permissions. |
| */ |
| |
| /* |
| Originally the entire user interface was in one module, ckuusr.c. Over |
| the years it has been split into many modules: ckuus2.c, ckuus3.c, ..., |
| ckuus7.c. ckuus2.c contains the HELP command parser and help-text strings; |
| ckuusy.c contains the UNIX-style command-line interface; ckuusx.c contains |
| routines needed by both the command-line interface and the interactive |
| command parser. |
| */ |
| |
| /* |
| The ckuus*.c modules depend on the existence of C library features like |
| fopen, fgets, feof, (f)printf, argv/argc, etc. Other functions that are |
| likely to vary among different platforms -- like setting terminal modes or |
| interrupts -- are invoked via calls to functions that are defined in the |
| system- dependent modules, ck?[ft]io.c. The command line parser processes |
| any arguments found on the command line, as passed to main() via argv/argc. |
| The interactive parser uses the facilities of the cmd package (developed for |
| this program, but usable by any program). Any command parser may be |
| substituted for this one. The only requirements for the Kermit command |
| parser are these: |
| |
| . Set parameters via global variables like duplex, speed, ttname, etc. See |
| ckmain.c for the declarations and descriptions of these variables. |
| |
| . If a command can be executed without the use of Kermit protocol, then |
| execute the command directly and set the variable sstate to 0. Examples |
| include 'set' commands, local directory listings, the 'connect' command. |
| |
| . If a command requires the Kermit protocol, set the following variables: |
| |
| sstate string data |
| 'x' (enter server mode) (none) |
| 'r' (send a 'get' command) cmarg, cmarg2 |
| 'v' (enter receive mode) cmarg2 |
| 'g' (send a generic command) cmarg |
| 's' (send files) nfils, cmarg & cmarg2 OR cmlist |
| 'c' (send a remote host command) cmarg |
| |
| cmlist is an array of pointers to strings. |
| cmarg, cmarg2 are pointers to strings. |
| nfils is an integer. |
| |
| cmarg can be a filename string (possibly wild), or |
| a pointer to a prefabricated generic command string, or |
| a pointer to a host command string. |
| cmarg2 is an "as-name" - the name to send file(s) under, or |
| the name under which to store incoming file(s); must not be wild. |
| A null or empty value means to use the file's own name. |
| cmlist is a list of filenames, such as passed via argv. |
| nfils is an integer, interpreted as follows: |
| -1: filespec (possibly wild) in cmarg, must be expanded internally. |
| 0: send from stdin (standard input). |
| >0: number of files to send, from cmlist. |
| |
| The screen() function is used to update the screen during file transfer. |
| The tlog() function writes to a transaction log. |
| The debug() function writes to a debugging log. |
| The intmsg() and chkint() functions provide the user i/o for interrupting |
| file transfers. |
| */ |
| |
| /* Includes */ |
| |
| #ifdef MULTINET |
| #define MULTINET_OLD_STYLE /* Leave select prototype undefined */ |
| #endif /* MULTINET */ |
| |
| #include "ckcdeb.h" |
| #include "ckcasc.h" |
| #include "ckcker.h" |
| #include "ckcnet.h" /* Network symbols */ |
| #include "ckuusr.h" |
| #include "ckcxla.h" |
| |
| int g_fncact = -1; /* Needed for NOICP builds */ |
| int noinit = 0; /* Flag for skipping init file */ |
| int nscanfile = SCANFILEBUF; |
| |
| int rcdactive = 0; /* RCD active */ |
| int keepallchars = 0; /* See cmfld() */ |
| |
| int locus = 1; /* Current LOCUS is LOCAL */ |
| #ifdef OS2 |
| int autolocus = 2; /* Automatic LOCUS switching: ASK */ |
| #else /* OS2 */ |
| int autolocus = 1; /* Automatic LOCUS switching enabled */ |
| #endif /* OS2 */ |
| |
| #ifndef NOICP |
| #ifdef CKLEARN |
| #ifdef VMS |
| #include <time.h> /* For CKLEARN */ |
| #endif /* VMS */ |
| #endif /* CKLEARN */ |
| #ifdef OS2 |
| #ifndef NT |
| #define INCL_NOPM |
| #define INCL_VIO /* Needed for ckocon.h */ |
| #include <os2.h> |
| #undef COMMENT |
| #else |
| #define APIRET ULONG |
| #include <windows.h> |
| #include <tapi.h> |
| #include "cknwin.h" |
| #include "ckntap.h" /* CK_TAPI definition */ |
| #endif /* NT */ |
| #include "ckowin.h" |
| #include "ckocon.h" |
| extern int tcp_avail; |
| extern bool viewonly; |
| extern int k95stdout; |
| extern int tt_scroll; |
| #ifndef NOTERM |
| extern tt_status[VNUM]; |
| #endif /* NOTERM */ |
| int display_demo = 1; |
| #include "ckossh.h" |
| #ifdef KUI |
| #include "ikui.h" |
| #endif /* KUI */ |
| #endif /* OS2 */ |
| |
| int optlines = 0; |
| int didsetlin = 0; |
| |
| #ifdef NEWFTP |
| extern int ftpget, ftpisopen(), doftpres(); |
| _PROTOTYP(int doftptyp,(int)); |
| #endif /* NEWFTP */ |
| |
| #ifdef VMS |
| extern int batch; |
| #endif /* VMS */ |
| |
| #ifdef datageneral |
| #include <packets:common.h> |
| #define fgets(stringbuf,max,fd) dg_fgets(stringbuf,max,fd) |
| #endif /* datageneral */ |
| |
| extern int xcmdsrc, hints, cmflgs, whyclosed; |
| |
| char * hlptok = NULL; |
| |
| #ifdef CK_TTGWSIZ /* Whether to use more-prompting */ |
| int xaskmore = 1; /* Momentary setting */ |
| int saveask = 1; /* Permanent setting */ |
| #else |
| int xaskmore = 0; |
| int saveask = 0; |
| #endif /* CK_TTGWSIZ */ |
| |
| #ifndef NOCSETS |
| extern int nfilc; |
| extern struct keytab fcstab[]; |
| extern int fcharset; |
| #endif /* NOCSETS */ |
| |
| char * g_pswd = NULL; |
| int g_pcpt = -1; |
| int g_pflg = -1; |
| |
| extern int cmd_rows, cmd_cols; |
| |
| #ifdef CKROOT |
| extern int ckrooterr; |
| #endif /* CKROOT */ |
| |
| extern int inserver, filepeek; |
| |
| #ifdef CKLEARN |
| FILE * learnfp = NULL; |
| char * learnfile = NULL; |
| int learning = 0; |
| #endif /* CKLEARN */ |
| |
| #ifndef NOXFER |
| extern int atcapr, atdiso, nfils, moving, protocol, sendmode, epktflg, size, |
| sndsrc, server, displa, fncnv, fnspath, fnrpath, xfermode, urpsiz, |
| spsizf, spsiz, spsizr, spmax, wslotr, prefixing, fncact, reliable, |
| setreliable; |
| |
| #ifdef IKSDCONF |
| extern int iksdcf; |
| #endif /* IKSDCONF */ |
| |
| #ifdef CK_LOGIN |
| extern int isguest; |
| #endif /* CK_LOGIN */ |
| |
| extern long sendstart; |
| |
| extern char *cmarg, *cmarg2, **cmlist, *dftty; |
| |
| extern struct keytab fntab[]; extern int nfntab; |
| extern struct ck_p ptab[NPROTOS]; |
| |
| int sndcmd = 0; /* Last command was a SEND-class command. */ |
| |
| int g_xfermode = -1; |
| int g_proto = -1; |
| int g_urpsiz = -1; |
| int g_spsizf = -1; |
| int g_spsiz = -1; |
| int g_spsizr = -1; |
| int g_spmax = -1; |
| int g_wslotr = -1; |
| int g_prefixing = -1; |
| int g_fncnv = -1; |
| int g_fnspath = -1; |
| int g_fnrpath = -1; |
| int g_fnact = -1; |
| int g_displa = -1; |
| int g_spath = -1; |
| int g_rpath = -1; |
| char * g_sfilter = NULL; |
| char * g_rfilter = NULL; |
| |
| extern int patterns; |
| #ifdef PATTERNS |
| extern char *txtpatterns[], *binpatterns[]; |
| int g_patterns = -1; |
| #endif /* PATTERNS */ |
| int g_skipbup = -1; |
| |
| #ifdef PIPESEND |
| extern int usepipes, pipesend; |
| extern char * sndfilter; |
| #endif /* PIPESEND */ |
| |
| #ifndef NOSPL |
| extern int sndxlo, sndxhi, sndxin; |
| #endif /* NOSPL */ |
| |
| extern char fspec[]; /* Most recent filespec */ |
| extern int fspeclen; /* Length of fspec[] buffer */ |
| |
| #ifndef NOFRILLS |
| extern int rmailf; /* MAIL command items */ |
| extern char optbuf[]; |
| #endif /* NOFRILLS */ |
| |
| extern int |
| en_cpy, en_cwd, en_del, en_dir, en_fin, en_get, en_bye, en_mai, en_pri, |
| en_hos, en_ren, en_sen, en_spa, en_set, en_typ, en_who, en_ret, en_xit, |
| en_mkd, en_rmd, en_asg; |
| |
| #ifndef NOMSEND /* Multiple SEND */ |
| extern char *msfiles[]; |
| int filesinlist = 0; /* And ADD ... */ |
| extern struct filelist * filehead; |
| extern struct filelist * filetail; |
| extern struct filelist * filenext; |
| extern int addlist; |
| #endif /* NOMSEND */ |
| |
| static struct keytab addtab[] = { |
| #ifdef PATTERNS |
| { "binary-patterns", ADD_BIN, 0 }, |
| #endif /* PATTERNS */ |
| #ifndef NOMSEND |
| { "send-list", ADD_SND, 0 }, |
| #endif /* NOMSEND */ |
| #ifdef PATTERNS |
| { "text-patterns", ADD_TXT, 0 }, |
| #endif /* PATTERNS */ |
| { "", 0, 0 } |
| }; |
| static int naddtab = sizeof(addtab)/sizeof(struct keytab) - 1; |
| |
| #ifndef NOCSETS |
| struct keytab assoctab[] = { |
| { "file-character-set", ASSOC_FC, 0 }, |
| { "transfer-character-set", ASSOC_TC, 0 }, |
| { "xfer-character-set", ASSOC_TC, CM_INV } |
| }; |
| static int nassoc = sizeof(assoctab)/sizeof(struct keytab); |
| extern int afcset[MAXFCSETS+1]; /* Character-set associations */ |
| extern int axcset[MAXTCSETS+1]; |
| #endif /* NOCSETS */ |
| |
| #ifndef ADDCMD |
| #ifndef NOMSEND |
| #define ADDCMD |
| #endif /* NOMSEND */ |
| #ifndef ADDCMD |
| #ifdef PATTERNS |
| #define ADDCMD |
| #endif /* PATTERNS */ |
| #endif /* ADDCMD */ |
| #endif /* ADDCMD */ |
| #endif /* NOXFER */ |
| |
| /* External Kermit Variables, see ckmain.c for description. */ |
| |
| extern xx_strp xxstring; |
| extern long xvernum; |
| |
| extern int local, xitsta, binary, msgflg, escape, duplex, quiet, tlevel, |
| pflag, zincnt, ckxech, carrier, what, nopush, haveline, bye_active; |
| #ifdef TNCODE |
| extern int debses; |
| extern char tn_msg[]; |
| #endif /* TNCODE */ |
| |
| int sleepcan = 1; |
| int g_binary = -1; |
| int g_recursive = -1; |
| int g_matchdot = -1; |
| extern int nolinks; |
| |
| extern long vernum; |
| extern char *versio, *copyright[]; |
| extern char *ckxsys; |
| #ifndef NOHELP |
| extern char *introtxt[]; |
| extern char *newstxt[]; |
| #endif /* NOHELP */ |
| |
| #ifndef OS2 |
| #ifndef UNIX |
| extern char *PWDCMD; |
| #endif /* UNIX */ |
| extern char *WHOCMD; |
| #endif /* OS2 */ |
| |
| extern char ttname[]; |
| |
| extern CHAR sstate; |
| |
| extern int network; /* Have active network connection */ |
| extern int nettype; /* Type of network */ |
| extern int ttnproto; /* NET_TCPB protocol */ |
| |
| #ifndef NODIAL |
| extern int dialsta, dialatmo, dialcon, dialcq; /* DIAL status, etc. */ |
| #endif /* NODIAL */ |
| |
| #ifdef CK_APC |
| extern int apcactive, apcstatus; |
| #endif /* CK_APC */ |
| |
| #ifndef NOPUSH |
| #ifndef NOFRILLS |
| extern char editor[]; |
| extern char editopts[]; |
| extern char editfile[]; |
| #endif /* NOFRILLS */ |
| #endif /* NOPUSH */ |
| |
| #ifdef BROWSER |
| extern char browser[]; /* Web browser application */ |
| extern char browsopts[]; /* Web browser options */ |
| extern char browsurl[]; /* Most recent URL */ |
| #endif /* BROWSER */ |
| #ifndef NOFTP |
| char ftpapp[CKMAXPATH+1] = { NUL, NUL }; /* ftp executable */ |
| char ftpopts[128] = { NUL, NUL }; /* ftp command-line options */ |
| #endif /* NOFTP */ |
| extern struct keytab onoff[]; /* On/Off keyword table */ |
| |
| #ifdef CK_TMPDIR |
| int f_tmpdir = 0; /* Directory changed temporarily */ |
| char savdir[TMPDIRLEN]; /* For saving current directory */ |
| #endif /* CK_TMPDIR */ |
| |
| int activecmd = -1; /* Keyword index of active command */ |
| int doconx = -1; /* CONNECT-class command active */ |
| int ooflag = 0; /* User-settable on/off flag */ |
| |
| int rcflag = 0; /* Pointer to home directory string */ |
| int repars, /* Reparse needed */ |
| techo = 0; /* Take echo */ |
| int secho = 1; /* SCRIPT echo */ |
| |
| int xitwarn = /* Warn about open connection on exit */ |
| #ifdef NOWARN |
| 0 |
| #else |
| 1 |
| #endif /* NOWARN */ |
| ; |
| |
| struct keytab onoffsw[] = { |
| { "/off", 0, 0 }, |
| { "/on", 1, 0 } |
| }; |
| |
| #ifdef CKEXEC |
| struct keytab redirsw[] = { |
| { "/redirect", 1, 0 } |
| }; |
| #endif /* CKEXEC */ |
| |
| #ifndef NOXMIT |
| /* Variables for TRANSMIT command */ |
| |
| int xmitx = 1; /* Whether to echo during TRANSMIT */ |
| int xmitf = 0; /* Character to fill empty lines */ |
| int xmitl = 0; /* 0 = Don't send linefeed too */ |
| int xmitp = LF; /* Host line prompt */ |
| int xmits = 0; /* Use shift-in/shift-out, 0 = no */ |
| int xmitw = 0; /* Milliseconds to pause during TRANSMIT */ |
| int xmitt = 1; /* Seconds to wait for each char to echo */ |
| int xmita = 1; /* Action upon timeout */ |
| |
| #define XMI_BIN 1 |
| #define XMI_TXT 2 |
| #define XMI_CMD 3 |
| #define XMI_TRA 4 |
| #define XMI_VRB 5 |
| #define XMI_QUI 6 |
| #define XMI_NOW 7 |
| #define XMI_NOE 8 |
| |
| static struct keytab xmitsw[] = { /* TRANSMIT command options */ |
| { "/binary", XMI_BIN, 0 }, |
| #ifdef PIPESEND |
| { "/command", XMI_CMD, CM_INV|CM_PSH }, |
| #endif /* PIPESEND */ |
| { "/noecho", XMI_NOE, 0 }, |
| { "/nowait", XMI_NOW, 0 }, |
| #ifdef PIPESEND |
| { "/pipe", XMI_CMD, 0 }, |
| #endif /* PIPESEND */ |
| #ifdef COMMENT |
| { "/quiet", XMI_QUI, 0 }, |
| #endif /* COMMENT */ |
| { "/text", XMI_TXT, 0 }, |
| { "/transparent", XMI_TRA, 0 }, |
| #ifdef COMMENT |
| { "/verbose", XMI_VRB, 0 }, |
| #endif /* COMMENT */ |
| { "", 0, 0 } |
| }; |
| #define NXMITSW sizeof(xmitsw)/sizeof(struct keytab) - 1 |
| static int nxmitsw = NXMITSW; |
| |
| #endif /* NOXMIT */ |
| |
| /* Declarations from ck?fio.c module */ |
| |
| extern char *SPACMD, *SPACM2; /* SPACE commands */ |
| |
| /* Command-oriented items */ |
| |
| #ifdef DCMDBUF |
| extern char *cmdbuf; /* Command buffers */ |
| extern char *atmbuf; |
| extern char *line; /* Character buffer for anything */ |
| extern char *tmpbuf; /* Short temporary string buffer */ |
| extern int *ifcmd; |
| extern int *intime; |
| extern int *inpcas; |
| #else |
| extern char cmdbuf[]; /* Command buffers */ |
| extern char atmbuf[]; |
| extern char line[]; /* Character buffer for anything */ |
| extern char tmpbuf[]; /* Temporary buffer */ |
| extern int ifcmd[]; |
| extern int intime[]; |
| extern int inpcas[]; |
| #endif /* DCMDBUF */ |
| |
| #ifndef NOSPL |
| extern char * prstring[]; |
| #endif /* NOSPL */ |
| |
| char *lp; /* Pointer to line buffer */ |
| |
| #ifndef NOSPL |
| int unkmacro = 0; /* Flag for in ON_UNKNOWN_COMMAND */ |
| int oldeval = 0; |
| char evalbuf[33]; /* EVALUATE result */ |
| extern char * inpbuf; /* Buffer for INPUT and REINPUT */ |
| char *inpbp; /* And pointer to same */ |
| extern char lblbuf[]; /* Buffer for labels */ |
| int m_found; /* MINPUT result */ |
| int i_active = 0; /* INPUT command is active */ |
| char *ms[MINPMAX]; /* Pointers to MINPUT strings */ |
| static int mp[MINPMAX]; /* and flags */ |
| extern int fndiags, fnerror, fnsuccess; /* Function diagnostics */ |
| #ifndef NOSEXP |
| char * lastsexp = NULL; /* S-Expressions */ |
| char * sexpval = NULL; |
| int sexpecho = SET_AUTO; |
| #endif /* NOSEXP */ |
| #endif /* NOSPL */ |
| |
| char psave[PROMPTL] = { NUL }; /* For saving & restoring prompt */ |
| |
| extern int success; /* Command success/failure flag */ |
| extern int cmdlvl; /* Current position in command stack */ |
| |
| #ifndef NOSPL |
| int /* SET INPUT parameters. */ |
| /* Note, INPUT TIMEOUT, intime[], is on the command-level stack. */ |
| inbufsize = 0, /* INPUT buffer size */ |
| indef = 1, /* default timeout, seconds */ |
| inecho = 1, /* 1 = echo on */ |
| inautodl = 0, /* INPUT autodownload */ |
| inintr = 1, /* INPUT interrupion allowed */ |
| innomatch = 0, /* INPUT /NOMATCH */ |
| insilence = 0; /* 0 = no silence constraint */ |
| |
| #ifdef CKFLOAT |
| CKFLOAT inscale = 1.0; /* Timeout scale factor */ |
| #endif /* CKFLOAT */ |
| |
| #ifdef OS2 |
| int interm = 1; /* Terminal emulator displays input */ |
| #endif /* OS2 */ |
| int maclvl = -1; /* Macro nesting level */ |
| int mecho = 0; /* Macro echo, 0 = don't */ |
| char varnam[6]; /* For variable names */ |
| extern int macargc[]; /* ARGC from macro invocation */ |
| |
| extern char *m_arg[MACLEVEL][NARGS]; /* Stack of macro arguments */ |
| extern char *mrval[]; |
| |
| extern char **a_ptr[]; /* Array pointers */ |
| extern int a_dim[]; /* Array dimensions */ |
| extern int a_link[]; |
| |
| #ifdef DCMDBUF |
| extern struct cmdptr *cmdstk; /* The command stack itself */ |
| #else |
| extern struct cmdptr cmdstk[]; /* The command stack itself */ |
| #endif /* DCMDBUF */ |
| |
| long ck_alarm = 0; /* SET ALARM value */ |
| char alrm_date[24] = { ' ',' ',' ',' ',' ',' ',' ',' ',' ' }; |
| char alrm_time[24] = { ' ',' ',' ',' ',' ',' ',' ' }; |
| |
| #define INPSW_NOM 1 |
| struct keytab inputsw[] = { |
| { "/nomatch", INPSW_NOM, 0 } |
| }; |
| static int ninputsw = sizeof(inputsw)/sizeof(struct keytab); |
| |
| #endif /* NOSPL */ |
| |
| static int x, y, z = 0; /* Local workers */ |
| static char *s; |
| |
| #ifdef CK_MINPUT |
| static char c1chars[] = { /* C1 control chars escept NUL */ |
| 001,002,003,004,005,006,007,010,011,012,013,014,015,016,017,020, |
| 021,022,023,024,025,026,027,030,031,032,033,034,035,036,037 |
| }; |
| #endif /* CK_MINPUT */ |
| |
| #define xsystem(s) zsyscmd(s) |
| |
| /* Top-Level Interactive Command Keyword Table */ |
| /* Keywords must be in lowercase and in alphabetical order. */ |
| |
| struct keytab cmdtab[] = { |
| #ifndef NOPUSH |
| { "!", XXSHE, CM_INV|CM_PSH }, /* Shell escape */ |
| #else |
| { "!", XXNOTAV, CM_INV|CM_PSH }, |
| #endif /* NOPUSH */ |
| { "#", XXCOM, CM_INV }, /* Comment */ |
| #ifndef NOSPL |
| { "(", XXSEXP,CM_INV }, /* S-Expression */ |
| { ".", XXDEF, CM_INV }, /* Assignment */ |
| { ":", XXLBL, CM_INV }, /* Label */ |
| #endif /* NOSPL */ |
| #ifdef CK_REDIR |
| #ifndef NOPUSH |
| { "<", XXFUN, CM_INV|CM_PSH }, /* REDIRECT */ |
| #else |
| { "<", XXNOTAV, CM_INV|CM_PSH }, /* REDIRECT */ |
| #endif /* NOPUSH */ |
| #endif /* CK_REDIR */ |
| #ifndef NOPUSH |
| { "@", XXSHE, CM_INV|CM_PSH }, /* DCL escape */ |
| #else |
| { "@", XXNOTAV, CM_INV|CM_PSH }, /* DCL escape */ |
| #endif /* NOPUSH */ |
| |
| #ifdef CK_RECALL |
| { "^", XXREDO,CM_INV|CM_NOR }, /* Synonym for REDO */ |
| #endif /* CK_RECALL */ |
| #ifndef NOSPL |
| { "_asg", XXASX, CM_INV }, /* Used internally by FOR, etc */ |
| { "_assign", XXASX, CM_INV }, /* Used internally by FOR, etc */ |
| { "_decrement", XX_DECR, CM_INV }, |
| { "_define", XXDFX, CM_INV }, /* Used internally by FOR, etc */ |
| { "_evaluate", XX_EVAL, CM_INV }, |
| { "_forward", XXXFWD, CM_INV }, /* Used internally by SWITCH */ |
| { "_getargs", XXGTA, CM_INV }, /* Used internally by FOR, etc */ |
| { "_increment", XX_INCR, CM_INV }, |
| { "_putargs", XXPTA, CM_INV }, /* Used internally by FOR, etc */ |
| { "_undefine", XXUNDFX, CM_INV }, |
| #endif /* NOSPL */ |
| |
| { "about", XXVER, CM_INV }, /* Synonym for VERSION */ |
| #ifndef NOSPL |
| #ifdef NEWFTP |
| { "account", XXACCT, CM_INV }, /* (FTP) Account */ |
| #endif /* NEWFTP */ |
| #ifdef ADDCMD |
| { "add", XXADD, 0 }, /* ADD */ |
| #endif /* ADDCMD */ |
| #ifndef NODIAL |
| { "answer", XXANSW, CM_LOC }, /* ANSWER the phone */ |
| #else |
| { "answer", XXNOTAV, CM_INV|CM_LOC }, /* ANSWER the phone */ |
| #endif /* NODIAL */ |
| { "apc", XXAPC, 0 }, /* Application Program Command */ |
| #ifndef NOSPL |
| { "array", XXARRAY, 0 }, /* Array operations */ |
| #endif /* NOSPL */ |
| { "ascii", XXASC, CM_INV }, /* == SET FILE TYPE TEXT */ |
| { "asg", XXASS, CM_INV }, /* Invisible synonym for ASSIGN */ |
| { "ask", XXASK, 0 }, /* ASK for text, assign to variable */ |
| { "askq", XXASKQ,0 }, /* ASK quietly (no echo) */ |
| #ifndef NOSPL |
| { "ass", XXASS, CM_INV|CM_ABR }, /* ASSIGN */ |
| { "assert", XXASSER, CM_INV }, /* ASSERT */ |
| { "assign", XXASS, 0 }, /* ASSIGN */ |
| #endif /* NOSPL */ |
| #ifndef NOXFER |
| #ifndef NOCSETS |
| { "associate", XXASSOC, 0 }, /* ASSOCIATE */ |
| #else |
| { "associate", XXNOTAV, CM_INV }, /* ASSOCIATE */ |
| #endif /* NOCSETS */ |
| #endif /* NOXFER */ |
| #ifdef CK_KERBEROS |
| #ifdef CK_AUTHENTICATION |
| { "authenticate",XXAUTH, 0 }, /* Authentication */ |
| #else |
| { "authenticate",XXAUTH, CM_INV }, |
| #endif /* CK_AUTHENTICATION */ |
| #endif /* CK_KERBEROS */ |
| #endif /* NOSPL */ |
| #ifndef NOFRILLS |
| { "back", XXBACK, 0 }, /* BACK to previous directory */ |
| #else |
| { "back", XXNOTAV,CM_INV }, |
| #endif /* NOFRILLS */ |
| { "beep", XXBEEP,CM_INV }, /* BEEP */ |
| #ifndef NOXFER |
| { "binary", XXBIN, CM_INV }, /* == SET FILE TYPE BINARY */ |
| #endif /* NOXFER */ |
| #ifndef NOFRILLS |
| { "bug", XXBUG, CM_INV }, /* BUG report instructions */ |
| #else |
| { "bug", XXNOTAV, CM_INV }, |
| #endif /* NOFRILLS */ |
| #ifdef BROWSER |
| { "browse", XXBROWS, CM_PSH|CM_LOC }, /* BROWSE (start browser) */ |
| #else |
| { "browse", XXNOTAV, CM_INV|CM_PSH|CM_LOC }, |
| #endif /* BROWSER */ |
| #ifndef NOXFER |
| { "bye", XXBYE, 0 }, /* BYE to remote server */ |
| #endif /* NOXFER */ |
| #ifndef NOLOCAL |
| { "c", XXCON, CM_INV|CM_ABR|CM_LOC }, /* (CONNECT) */ |
| #endif /* NOLOCAL */ |
| #ifndef NOFRILLS |
| { "cat", XXCAT, CM_INV }, /* Invisible synonym for TYPE */ |
| #endif /* NOFRILLS */ |
| #ifndef NOSPL |
| |
| #ifndef NOXFER |
| { "cautious", XXCAU, CM_INV }, |
| #endif /* NOXFER */ |
| |
| #endif /* NOSPL */ |
| |
| { "cd", XXCWD, 0 }, /* Change Directory */ |
| { "cdup", XXCDUP, CM_INV }, /* Change Directory Up */ |
| |
| #ifndef NOXFER |
| #ifdef PIPESEND |
| { "cget", XXCGET, CM_INV|CM_PSH }, /* CGET */ |
| #else |
| { "cget", XXNOTAV, CM_INV|CM_PSH }, /* CGET */ |
| #endif /* PIPESEND */ |
| #endif /* NOXFER */ |
| { "ch", XXCHK, CM_INV|CM_ABR }, |
| { "check", XXCHK, 0 }, /* CHECK for a feature */ |
| #ifdef CK_PERMS |
| #ifdef UNIX |
| { "chmod", XXCHMOD, 0 }, /* CHMOD */ |
| #else |
| { "chmod", XXNOTAV, CM_INV }, |
| #endif /* UNIX */ |
| #else |
| { "chmod", XXNOTAV, CM_INV }, |
| #endif /* CK_PERMS */ |
| #ifdef CKROOT |
| { "chroot", XXCHRT, CM_INV }, /* CHROOT */ |
| #endif /* CKROOT */ |
| { "ckermit", XXKERMI, CM_INV }, /* CKERMIT (like KERMIT) */ |
| { "cl", XXCLO, CM_ABR|CM_INV }, |
| #ifndef NOFRILLS |
| { "clear", XXCLE, 0 }, /* CLEAR input and/or device buffer */ |
| #else |
| { "clear", XXNOTAV, CM_INV }, |
| #endif /* NOFRILLS */ |
| { "close", XXCLO, 0 }, /* CLOSE a log or other file */ |
| { "cls", XXCLS, CM_INV }, /* Clear Screen (CLS) */ |
| { "comment", XXCOM, CM_INV }, /* Introduce a comment */ |
| #ifndef NOLOCAL |
| { "connect", XXCON, CM_LOC }, /* Begin terminal connection */ |
| #else |
| { "connect", XXNOTAV, CM_LOC }, |
| #endif /* NOLOCAL */ |
| { "continue", XXCONT, CM_INV }, /* CONTINUE */ |
| #ifndef NOFRILLS |
| #ifdef ZCOPY |
| { "co", XXCPY, CM_INV|CM_ABR }, |
| { "cop", XXCPY, CM_INV|CM_ABR }, |
| { "copy", XXCPY, 0 }, /* COPY a file */ |
| #else |
| { "copy", XXNOTAV, CM_INV }, |
| #endif /* ZCOPY */ |
| { "copyright", XXCPR, CM_INV }, /* COPYRIGHT */ |
| #ifdef ZCOPY |
| { "cp", XXCPY, CM_INV }, /* COPY a file */ |
| #endif /* ZCOPY */ |
| #ifndef NOLOCAL |
| #ifndef OS2 |
| { "cq", XXCQ, CM_INV|CM_LOC }, /* CQ (connect quietly) */ |
| #endif /* OS2 */ |
| #endif /* NOLOCAL */ |
| #ifndef NOXFER |
| #ifdef PIPESEND |
| { "creceive", XXCREC,CM_INV|CM_PSH }, /* RECEIVE to a command */ |
| { "csend", XXCSEN,CM_INV|CM_PSH }, /* SEND from command */ |
| #else |
| { "creceive", XXNOTAV,CM_INV|CM_PSH }, |
| { "csend", XXNOTAV,CM_INV|CM_PSH }, |
| #endif /* PIPESEND */ |
| #endif /* NOXFER */ |
| #endif /* NOFRILLS */ |
| |
| { "cwd", XXCWD, CM_INV }, /* Traditional synonym for cd */ |
| |
| #ifndef NOSPL |
| { "date", XXDATE, 0 }, /* DATE */ |
| { "dcl", XXDCL, CM_INV }, /* DECLARE an array (see ARRAY) */ |
| { "debug", XXDEBUG, CM_INV }, |
| { "declare", XXDCL, CM_INV }, /* DECLARE an array (see ARRAY) */ |
| { "decrement", XXDEC, 0 }, /* DECREMENT a numeric variable */ |
| { "define", XXDEF, 0 }, /* DEFINE a macro or variable */ |
| #else |
| { "date", XXNOTAV, CM_INV }, |
| { "dcl", XXNOTAV, CM_INV }, |
| { "declare", XXNOTAV, CM_INV }, |
| { "decrement", XXNOTAV, CM_INV }, |
| { "define", XXNOTAV, CM_INV }, |
| #endif /* NOSPL */ |
| |
| #ifndef NOFRILLS |
| { "delete", XXDEL, 0 }, /* DELETE a file */ |
| #else |
| { "delete", XXNOTAV, CM_INV }, |
| #endif /* NOFRILLS */ |
| |
| #ifndef NODIAL |
| { "dial", XXDIAL, CM_LOC }, /* DIAL a phone number */ |
| #else |
| { "dial", XXNOTAV, CM_INV|CM_LOC }, |
| #endif /* NODIAL */ |
| |
| #ifdef NT |
| { "dialer", XXDIALER, CM_INV }, /* K95 Dialer */ |
| #endif /* NT */ |
| |
| { "directory", XXDIR, 0 }, /* DIRECTORY of files */ |
| |
| #ifndef NOFRILLS |
| #ifndef NOSERVER |
| { "disable", XXDIS, 0 }, /* DISABLE a server function */ |
| #else |
| { "disable", XXNOTAV, CM_INV }, |
| #endif /* NOSERVER */ |
| #endif /* NOFRILLS */ |
| |
| #ifndef NOSPL |
| { "do", XXDO, 0 }, /* DO (execute) a macro */ |
| #else |
| { "do", XXNOTAV, CM_INV }, |
| #endif /* NOSPL */ |
| |
| { "e", XXEXI, CM_INV|CM_ABR }, |
| |
| #ifndef NOFRILLS |
| #ifndef NOXFER |
| { "e-packet", XXERR, CM_INV }, /* Send an Error-Packet */ |
| #endif /* NOXFER */ |
| #endif /* NOFRILLS */ |
| |
| { "echo", XXECH, 0 }, /* ECHO text */ |
| |
| #ifndef NOFRILLS |
| #ifndef NOPUSH |
| { "edit", XXEDIT, CM_PSH }, /* EDIT */ |
| #else |
| { "edit", XXNOTAV, CM_INV|CM_PSH }, /* EDIT */ |
| #endif /* NOPUSH */ |
| #endif /* NOFRILLS */ |
| |
| { "eightbit", XXEIGHT, CM_INV }, /* EIGHTBIT */ |
| |
| #ifndef NOSPL |
| { "else", XXELS, CM_INV }, /* ELSE part of IF statement */ |
| #else |
| { "else", XXNOTAV, CM_INV }, /* ELSE part of IF statement */ |
| #endif /* NOSPL */ |
| |
| #ifndef NOSERVER |
| #ifndef NOFRILLS |
| { "enable", XXENA, 0 }, /* ENABLE a server function */ |
| #else |
| { "enable", XXNOTAV, CM_INV }, |
| #endif /* NOFRILLS */ |
| #endif /* NOSERVER */ |
| |
| #ifndef NOSPL |
| { "end", XXEND, 0 }, /* END command file or macro */ |
| #else |
| { "end", XXNOTAV, CM_INV }, |
| #endif /* NOSPL */ |
| |
| { "erase", XXDEL, CM_INV }, /* Synonym for DELETE */ |
| |
| #ifndef NOSPL |
| { "evaluate", XXEVAL, 0 }, /* EVALUATE */ |
| #else |
| { "evaluate", XXNOTAV, CM_INV }, |
| #endif /* NOSPL */ |
| |
| { "ex", XXEXI, CM_INV|CM_ABR }, /* Let "ex" still be EXIT */ |
| |
| #ifdef CKEXEC |
| { "exec", XXEXEC, CM_INV|CM_LOC }, /* exec() */ |
| #else |
| { "exec", XXNOTAV, CM_INV|CM_LOC }, |
| #endif /* CKEXEC */ |
| |
| { "exit", XXEXI, 0 }, /* EXIT from C-Kermit */ |
| { "extended-options", XXXOPTS,CM_INV|CM_HLP }, /* Extended-Options */ |
| |
| #ifdef OS2 |
| { "extproc", XXCOM, CM_INV }, /* Dummy command for OS/2 */ |
| #endif /* OS2 */ |
| |
| #ifndef NOXFER |
| { "f", XXFIN, CM_INV|CM_ABR }, /* Invisible abbrev for FIN */ |
| #endif /* NOXFER */ |
| |
| #ifndef NOSPL |
| { "fail", XXFAIL, CM_INV }, /* FAIL */ |
| |
| #ifndef NOXFER |
| { "fast", XXFAST, CM_INV }, |
| #endif /* NOXFER */ |
| |
| #ifdef CKCHANNELIO |
| { "fclose", XXF_CL, CM_INV }, /* FCLOSE */ |
| { "fcount", XXF_CO, CM_INV }, /* FCOUNT */ |
| { "fflush", XXF_FL, CM_INV }, /* FFLUSH */ |
| #endif /* CKCHANNELIO */ |
| |
| #ifndef NOXFER |
| { "fi", XXFIN, CM_INV|CM_ABR }, /* FINISH */ |
| #endif /* NOXFER */ |
| |
| #ifdef CKCHANNELIO |
| { "file", XXFILE, 0 }, /* FILE */ |
| #endif /* CKCHANNELIO */ |
| #endif /* NOSPL */ |
| |
| #ifndef NOXFER |
| { "fin", XXFIN, CM_INV|CM_ABR }, /* FINISH */ |
| #endif /* NOXFER */ |
| |
| #ifndef UNIXOROSK |
| { "find", XXGREP, 0 }, /* FIND (grep) */ |
| #else |
| { "find", XXGREP,CM_INV }, |
| #endif /* UNIXOROSK */ |
| |
| #ifndef NOXFER |
| { "finish", XXFIN, 0 }, /* FINISH */ |
| #endif /* NOXFER */ |
| |
| #ifdef TCPSOCKET |
| { "firewall", XXFIREW, CM_INV|CM_HLP }, |
| #endif /* TCPSOCKET */ |
| |
| #ifdef CKCHANNELIO |
| { "flist", XXF_LI, CM_INV }, /* FLIST */ |
| { "fopen", XXF_OP, CM_INV }, /* FOPEN */ |
| #endif /* CKCHANNELIO */ |
| |
| #ifndef NOSPL |
| { "fo", XXFOR, CM_INV|CM_ABR }, /* Invisible abbrev for... */ |
| { "for", XXFOR, 0 }, /* FOR loop */ |
| { "forward", XXFWD, CM_INV }, /* FORWARD */ |
| #endif /* NOSPL */ |
| #ifndef NOFRILLS |
| { "fot", XXDIR, CM_INV }, /* "fot" = "dir" (for Chris) */ |
| #endif /* NOFRILLS */ |
| |
| #ifdef CKCHANNELIO |
| { "fread", XXF_RE, CM_INV }, /* FREAD */ |
| { "frewind", XXF_RW, CM_INV }, /* FREWIND */ |
| { "fseek", XXF_SE, CM_INV }, /* FSEEK */ |
| { "fstatus", XXF_ST, CM_INV }, /* FSTATUS */ |
| #endif /* CKCHANNELIO */ |
| |
| #ifdef TCPSOCKET |
| #ifndef NOFTP |
| #ifdef SYSFTP |
| #ifndef NOPUSH |
| { "ftp", XXFTP, CM_INV|CM_PSH|CM_LOC }, /* System FTP */ |
| #else |
| { "ftp", XXNOTAV, CM_INV|CM_PSH|CM_LOC }, |
| #endif /* NOPUSH */ |
| #else /* SYSFTP */ |
| { "ftp", XXFTP, 0 }, /* Built-in FTP */ |
| #endif /* SYSFTP */ |
| #else /* NOFTP */ |
| { "ftp", XXNOTAV, CM_INV }, /* No FTP */ |
| #endif /* NOFTP */ |
| #endif /* TCPSOCKET */ |
| |
| #ifndef NOSPL |
| { "function", XXFUNC, CM_INV|CM_HLP }, /* (for HELP FUNCTION) */ |
| #endif /* NOSPL */ |
| |
| #ifdef CKCHANNELIO |
| { "fwrite", XXF_WR, CM_INV }, /* FWRITE */ |
| #endif /* CKCHANNELIO */ |
| |
| #ifndef NOXFER |
| { "g", XXGET, CM_INV|CM_ABR }, /* Invisible abbrev for GET */ |
| #ifndef NOSPL |
| { "ge", XXGET, CM_INV|CM_ABR }, /* Ditto */ |
| #endif /* NOSPL */ |
| { "get", XXGET, 0 }, /* GET */ |
| #endif /* NOXFER */ |
| #ifndef NOSPL |
| { "getc", XXGETC, 0 }, /* GETC */ |
| #ifdef OS2 |
| { "getkeycode", XXGETK, 0 }, /* GETKEYCODE */ |
| #endif /* OS2 */ |
| #ifndef NOFRILLS |
| { "getok", XXGOK, 0 }, /* GETOK (ask for Yes/No/OK) */ |
| #endif /* NOFRILLS */ |
| #endif /* NOSPL */ |
| #ifndef NOSPL |
| { "goto", XXGOTO,0 }, /* GOTO label in take file or macro */ |
| #endif /* NOSPL */ |
| #ifdef UNIXOROSK |
| { "grep", XXGREP,0 }, /* GREP (find) */ |
| #else |
| { "grep", XXGREP,CM_INV }, /* GREP (find) */ |
| #endif /* UNIXOROSK */ |
| { "h", XXHLP, CM_INV|CM_ABR }, /* Invisible synonym for HELP */ |
| { "he", XXHLP, CM_INV|CM_ABR }, /* Invisible synonym for HELP */ |
| #ifndef NOFRILLS |
| { "head", XXHEAD, 0 }, |
| #endif /* NOFRILLS */ |
| #ifndef NOLOCAL |
| { "hangup", XXHAN, CM_LOC }, /* HANGUP the connection */ |
| #endif /* NOLOCAL */ |
| { "HELP", XXHLP, 0 }, /* Display HELP text */ |
| #ifndef NOHTTP |
| #ifdef TCPSOCKET |
| { "http", XXHTTP, 0 }, /* HTTP operations */ |
| #endif /* TCPSOCKET */ |
| #endif /* NOHTTP */ |
| #ifndef NOSPL |
| { "i", XXINP, CM_INV|CM_ABR }, /* Invisible synonym for INPUT */ |
| { "if", XXIF, 0 }, /* IF ( condition ) command */ |
| #ifdef TCPSOCKET |
| { "iksd", XXIKSD, CM_INV }, /* Make connection to IKSD */ |
| #else |
| { "iksd", XXNOTAV, CM_INV }, |
| #endif /* TCPSOCKET */ |
| { "in", XXINP, CM_INV|CM_ABR }, /* Invisible synonym for INPUT */ |
| { "increment", XXINC, 0 }, /* Increment a numeric variable */ |
| { "input", XXINP, 0 }, /* INPUT text from comm device */ |
| #endif /* NOSPL */ |
| |
| #ifndef NOHELP |
| { "int", XXINT, CM_INV|CM_ABR }, |
| { "intr", XXINT, CM_INV|CM_ABR }, |
| { "INTRO", XXINT, 0 }, |
| { "introduction",XXINT, CM_INV }, /* Print introductory text */ |
| #else |
| { "intro", XXNOTAV, CM_INV }, |
| { "introduction",XXNOTAV, CM_INV }, |
| #endif /* NOHELP */ |
| |
| #ifdef OS2 |
| { "k95", XXKERMI, CM_INV }, /* Hmmm what's this... */ |
| #endif /* OS2 */ |
| |
| #ifndef NOSPL |
| { "kcd", XXKCD, 0 }, |
| #endif /* NOSPL */ |
| |
| { "kermit", XXKERMI, CM_INV }, |
| |
| #ifdef OS2 |
| #ifndef NOKVERBS |
| { "kverb", XXKVRB, CM_INV|CM_HLP }, /* Keyboard verb */ |
| #endif /* NOKVERBS */ |
| #endif /* OS2 */ |
| |
| #ifndef NOFRILLS |
| { "l", XXLOG, CM_INV|CM_ABR }, /* Invisible synonym for log */ |
| #endif /* NOFRILLS */ |
| |
| { "lcd", XXLCWD, CM_INV }, |
| { "lcdup", XXLCDU, CM_INV }, |
| { "lcwd", XXLCWD, CM_INV }, |
| { "ldelete", XXLDEL, CM_INV }, |
| { "ldirectory", XXLDIR, CM_INV }, |
| |
| #ifdef CKLEARN |
| { "learn", XXLEARN, 0 }, /* LEARN - automatic script writing */ |
| #else |
| { "learn", XXNOTAV, CM_INV }, |
| #endif /* CKLEARN */ |
| |
| { "li", XXLNOUT, CM_INV|CM_ABR }, |
| { "LICENSE", XXCPR, 0 }, /* LICENSE */ |
| |
| #ifndef NOSPL |
| { "lineout", XXLNOUT, 0 }, /* LINEOUT = OUTPUT + eol */ |
| #endif /* NOSPL */ |
| |
| #ifdef NT |
| { "link", XXLINK, 0 }, /* LINK source destination */ |
| #endif /* NT */ |
| |
| { "lmkdir", XXLMKD, CM_INV }, |
| |
| #ifndef NOFRILLS |
| { "lo", XXLOG, CM_INV|CM_ABR }, /* Invisible synonym for log */ |
| #endif /* NOFRILLS */ |
| |
| #ifndef NOSPL |
| { "local", XXLOCAL, CM_INV }, /* LOCAL variable declaration */ |
| #else |
| { "local", XXNOTAV, CM_INV }, |
| #endif /* NOSPL */ |
| |
| { "log", XXLOG, 0 }, /* Open a log file */ |
| |
| { "login", XXLOGIN, 0 }, /* (REMOTE) LOGIN to server or IKSD */ |
| { "logout", XXLOGOUT, 0 }, /* LOGOUT from server or IKSD */ |
| |
| #ifndef NOFRILLS |
| #ifndef NODIAL |
| { "lookup", XXLOOK, 0 }, /* LOOKUP */ |
| #else |
| { "lookup", XXNOTAV, CM_INV }, |
| #endif /* NODIAL */ |
| |
| { "lpwd", XXLPWD, CM_INV }, |
| { "lrename", XXLREN, CM_INV }, |
| { "lrmdir", XXLRMD, CM_INV }, |
| |
| #ifdef UNIXOROSK |
| { "ls", XXLS, CM_INV|CM_PSH }, /* UNIX ls command */ |
| #else |
| { "ls", XXDIR, CM_INV }, /* Invisible synonym for DIR */ |
| #endif /* UNIXOROSK */ |
| #ifndef NOXFER |
| { "mail", XXMAI, 0 }, /* Send a file as e-mail */ |
| #endif /* NOXFER */ |
| #ifndef NOHELP |
| { "manual", XXMAN, CM_PSH }, /* MAN(UAL) */ |
| #else |
| { "manual", XXNOTAV, CM_INV|CM_PSH }, |
| #endif /* NOHELP */ |
| #endif /* NOFRILLS */ |
| #ifdef CK_MKDIR |
| { "md", XXMKDIR, CM_INV }, /* Synonym for MKDIR */ |
| #endif /* CK_MKDIR */ |
| #ifdef CK_MINPUT |
| { "minput", XXMINP, 0 }, /* MINPUT */ |
| #else |
| { "minput", XXNOTAV, CM_INV }, |
| #endif /* CK_MINPUT */ |
| #ifndef NOMSEND |
| { "mget", XXMGET, 0 }, /* MGET */ |
| #else |
| { "mget", XXNOTAV, CM_INV }, |
| #endif /* NOMSEND */ |
| #ifdef CK_MKDIR |
| { "mkdir", XXMKDIR, 0 }, /* MKDIR */ |
| #else |
| { "mkdir", XXNOTAV, CM_INV }, |
| #endif /* CK_MKDIR */ |
| |
| #ifndef NOXFER |
| #ifndef NOMSEND |
| { "mmove", XXMMOVE, 0 }, /* MMOVE */ |
| #else |
| { "mmove", XXNOTAV, CM_INV }, |
| #endif /* NOMSEND */ |
| #endif /* NOXFER */ |
| |
| #ifndef NOFRILLS |
| { "more", XXMORE, CM_INV }, /* MORE */ |
| #endif /* NOFRILLS */ |
| |
| #ifndef NOXFER |
| { "move", XXMOVE, 0 }, /* MOVE */ |
| #endif /* NOXFER */ |
| |
| #ifndef NOSPL |
| { "mpause", XXMSL, CM_INV }, /* Millisecond sleep */ |
| #else |
| { "mpause", XXNOTAV, CM_INV }, |
| #endif /* NOSPL */ |
| |
| #ifndef NOXFER |
| #ifndef NOMSEND |
| { "mput", XXMSE, CM_INV }, /* MPUT = MSEND */ |
| { "ms", XXMSE, CM_INV|CM_ABR }, |
| { "msend", XXMSE, 0 }, /* Multiple SEND */ |
| #else |
| { "mput", XXNOTAV, CM_INV }, |
| { "msend", XXNOTAV, CM_INV }, |
| #endif /* NOMSEND */ |
| #endif /* NOXFER */ |
| #ifndef NOSPL |
| { "msleep", XXMSL, 0 }, /* Millisecond sleep */ |
| #else |
| { "msleep", XXNOTAV, CM_INV }, |
| #endif /* NOSPL */ |
| #ifndef NOFRILLS |
| { "mv", XXREN, CM_INV }, /* Synonym for rename */ |
| #endif /* NOFRILLS */ |
| #ifndef NOHELP |
| { "news", XXNEW, CM_INV }, /* Display NEWS of new features */ |
| #else |
| { "news", XXNOTAV, CM_INV }, |
| #endif /* NOHELP */ |
| { "nolocal", XXNLCL, CM_INV }, /* Disable SET LINE / SET HOST */ |
| { "nopush", XXNPSH, CM_INV }, /* Disable PUSH command/features */ |
| #ifdef OS2 |
| { "noscroll", XXNSCR, CM_INV }, /* Disable scroll operations */ |
| #endif /* OS2 */ |
| #ifndef NOSPL |
| { "o", XXOUT, CM_INV|CM_ABR }, /* Invisible synonym for OUTPUT */ |
| { "open", XXOPE, 0 }, /* OPEN file for reading or writing */ |
| #else |
| { "open", XXOPE, CM_INV }, /* OPEN */ |
| #endif /* NOSPL */ |
| #ifndef NOHELP |
| { "options", XXOPTS,CM_INV|CM_HLP }, /* Options */ |
| #endif /* NOHELP */ |
| { "orientation", XXORIE, 0 }, |
| #ifndef NOSPL |
| { "output", XXOUT, 0 }, /* OUTPUT text to comm device */ |
| #else |
| { "output", XXNOTAV, CM_INV }, |
| #endif /* NOSPL */ |
| #ifdef ANYX25 |
| #ifndef IBMX25 |
| { "pad", XXPAD, CM_LOC }, /* X.3 PAD commands */ |
| #endif /* IBMX25 */ |
| #endif /* ANYX25 */ |
| |
| #ifdef NEWFTP |
| { "passive", XXPASV, CM_INV }, /* (FTP) PASSIVE */ |
| #endif /* NEWFTP */ |
| |
| #ifndef NOHELP |
| { "patterns", XXPAT,CM_INV|CM_HLP }, /* Pattern syntax */ |
| #endif /* NOHELP */ |
| |
| #ifndef NOSPL |
| { "pause", XXPAU, 0 }, /* Sleep for specified interval */ |
| #else |
| { "pause", XXNOTAV, CM_INV }, |
| #endif /* NOSPL */ |
| #ifndef NODIAL |
| { "pdial", XXPDIA, CM_LOC }, /* PDIAL (partial dial) */ |
| #else |
| { "pdial", XXNOTAV, CM_INV|CM_LOC }, |
| #endif /* NODIAL */ |
| #ifdef TCPSOCKET |
| #ifndef NOPUSH |
| { "ping", XXPNG, CM_INV|CM_PSH|CM_LOC }, /* PING */ |
| #else |
| { "ping", XXNOTAV, CM_INV|CM_PSH|CM_LOC }, |
| #endif /* NOPUSH */ |
| #endif /* TCPSOCKET */ |
| #ifdef NETCMD |
| #ifndef NOPUSH |
| { "pipe", XXPIPE, CM_PSH }, /* PIPE */ |
| #else |
| { "pipe", XXNOTAV, CM_INV|CM_PSH }, /* PIPE */ |
| #endif /* NOPUSH */ |
| #endif /* NETCMD */ |
| |
| #ifndef NOSPL |
| { "pop", XXEND, CM_INV }, /* Invisible synonym for END */ |
| #endif /* NOSPL */ |
| #ifndef NOFRILLS |
| { "print", XXPRI, 0 }, /* PRINT a file locally */ |
| #endif /* NOFRILLS */ |
| |
| { "prompt", XXPROMP, CM_INV }, /* Go interactive (from script) */ |
| |
| #ifndef NOXFER |
| #ifdef CK_RESEND |
| { "psend", XXPSEN, CM_INV }, /* PSEND */ |
| #else |
| { "psend", XXNOTAV, CM_INV }, |
| #endif /* CK_RESEND */ |
| #endif /* NOXFER */ |
| |
| #ifdef NETPTY |
| { "pty", XXPTY, CM_PSH }, /* PTY */ |
| #else |
| { "pty", XXNOTAV, CM_INV|CM_PSH }, |
| #endif /* NETPTY */ |
| |
| #ifndef NOPUSH |
| { "pu", XXSHE, CM_INV|CM_ABR|CM_PSH }, /* PU = PUSH */ |
| #endif /* NOPUSH */ |
| |
| #ifdef CKPURGE |
| { "purge", XXPURGE, 0 }, /* PURGE (real) */ |
| #else |
| #ifdef VMS |
| { "purge", XXPURGE, 0 }, /* PURGE (fake) */ |
| #else |
| { "purge", XXNOTAV, CM_INV }, |
| #endif /* VMS */ |
| #endif /* CKPURGE */ |
| |
| #ifndef NOPUSH |
| { "push", XXSHE, CM_PSH }, /* PUSH command (like RUN, !) */ |
| #else |
| { "push", XXNOTAV, CM_INV|CM_PSH }, |
| #endif /* NOPUSH */ |
| |
| #ifndef NOXFER |
| { "put", XXSEN, CM_INV }, /* PUT = SEND */ |
| #endif /* NOXFER */ |
| |
| { "pwd", XXPWD, 0 }, /* Print Working Directory */ |
| { "q", XXQUI, CM_INV|CM_ABR }, /* Invisible synonym for QUIT */ |
| |
| #ifndef NOXFER |
| { "query", XXRQUE,CM_INV }, /* (= REMOTE QUERY) */ |
| #endif /* NOXFER */ |
| |
| { "quit", XXQUI, 0 }, /* QUIT from program = EXIT */ |
| |
| #ifndef NOXFER |
| { "r", XXREC, CM_INV|CM_ABR }, /* Inv synonym for RECEIVE */ |
| #endif /* NOXFER */ |
| |
| #ifndef NOXFER |
| { "rasg", XXRASG, CM_INV }, /* REMOTE ASSIGN */ |
| { "rassign", XXRASG, CM_INV }, /* ditto */ |
| { "rcd", XXRCWD, CM_INV }, /* REMOTE CD */ |
| { "rcdup", XXRCDUP,CM_INV }, /* REMOTE CD */ |
| { "rcopy", XXRCPY, CM_INV }, /* REMOTE COPY */ |
| { "rcwd", XXRCWD, CM_INV }, /* REMOTE CWD */ |
| { "rdelete", XXRDEL, CM_INV }, /* REMOTE DELETE */ |
| { "rdirectory", XXRDIR, CM_INV }, /* REMODE DIRECTORY */ |
| #endif /* NOXFER */ |
| |
| #ifndef NOSPL |
| { "read", XXREA, 0 }, /* READ a line from a file */ |
| #else |
| { "read", XXNOTAV, CM_INV }, |
| #endif /* NOSPL */ |
| |
| #ifndef NOXFER |
| { "receive", XXREC, 0 }, /* RECEIVE files */ |
| #endif /* NOXFER */ |
| |
| #ifndef NODIAL |
| { "red", XXRED, CM_INV|CM_ABR|CM_LOC }, /* Inv syn for REDIAL */ |
| { "redi", XXRED, CM_INV|CM_ABR|CM_LOC }, /* ditto */ |
| { "redial", XXRED, CM_LOC }, /* REDIAL last DIAL number */ |
| #else |
| { "red", XXNOTAV, CM_INV|CM_LOC }, |
| { "redi", XXNOTAV, CM_INV|CM_LOC }, |
| { "redial", XXNOTAV, CM_INV|CM_LOC }, |
| #endif /* NODIAL */ |
| |
| #ifdef CK_REDIR |
| #ifdef OS2 |
| #ifndef NOPUSH |
| { "redirect", XXFUN, CM_INV|CM_PSH }, /* REDIRECT */ |
| #else |
| { "redirect", XXNOTAV, CM_INV|CM_PSH }, |
| #endif /* NOPUSH */ |
| #else /* OS2 */ |
| #ifndef NOPUSH |
| { "redirect", XXFUN, CM_PSH }, /* REDIRECT */ |
| #else |
| { "redirect", XXNOTAV, CM_INV|CM_PSH }, |
| #endif /* NOPUSH */ |
| #endif /* OS2 */ |
| #endif /* CK_REDIR */ |
| |
| #ifdef CK_RECALL |
| { "redo", XXREDO, CM_NOR }, /* REDO */ |
| #else |
| { "redo", XXNOTAV, CM_INV }, |
| #endif /* CK_RECALL */ |
| |
| #ifndef NOXFER |
| #ifdef CK_RESEND |
| { "reget", XXREGET, 0 }, /* REGET */ |
| #else |
| { "reget", XXNOTAV, CM_INV }, |
| #endif /* CK_RESEND */ |
| #endif /* NOXFER */ |
| |
| #ifndef NOSPL |
| { "reinput", XXREI, CM_INV }, /* REINPUT (from INPUT buffer) */ |
| #else |
| { "reinput", XXNOTAV, CM_INV }, |
| #endif /* NOSPL */ |
| |
| #ifndef NOXFER |
| #ifdef ADDCMD |
| { "rem", XXREM, CM_INV|CM_ABR }, |
| { "remo", XXREM, CM_INV|CM_ABR }, |
| #endif /* ADDCMD */ |
| { "remote", XXREM, 0 }, /* Send REMOTE command to server */ |
| #endif /* NOXFER */ |
| |
| #ifdef ADDCMD |
| { "remove", XXREMV,0 }, /* REMOVE (something from a list) */ |
| #else |
| { "remove", XXNOTAV, CM_INV }, |
| #endif /* ADDCMD */ |
| |
| #ifndef NOFRILLS |
| #ifndef NORENAME |
| { "rename", XXREN, 0 }, /* RENAME a local file */ |
| #else |
| { "rename", XXNOTAV, CM_INV }, |
| #endif /* NORENAME */ |
| { "replay", XXTYP, CM_INV }, /* REPLAY (for now, just type) */ |
| #endif /* NOFRILLS */ |
| |
| #ifndef NOXFER |
| #ifdef CK_RESEND |
| { "res", XXRSEN, CM_INV|CM_ABR }, /* RESEND */ |
| { "rese", XXRSEN, CM_INV|CM_ABR }, /* RESEND */ |
| { "resend", XXRSEN, 0 }, /* RESEND */ |
| #else |
| { "res", XXNOTAV, CM_INV }, |
| { "rese", XXNOTAV, CM_INV }, |
| { "resend", XXNOTAV, CM_INV }, |
| #endif /* CK_RESEND */ |
| #endif /* NOXFER */ |
| |
| { "reset", XXRESET, CM_INV }, /* RESET */ |
| |
| #ifdef CK_RESEND |
| #ifndef NOSPL |
| { "ret", XXRET, CM_INV|CM_ABR }, |
| #endif /* NOSPL */ |
| #endif /* CK_RESEND */ |
| |
| #ifndef NOXFER |
| { "retrieve", XXRETR, CM_INV }, /* RETRIEVE */ |
| #endif /* NOXFER */ |
| |
| #ifndef NOSPL |
| { "return", XXRET, 0 }, /* RETURN from a function */ |
| #else |
| { "return", XXNOTAV, CM_INV }, |
| #endif /* NOSPL */ |
| |
| #ifndef NOXFER |
| { "rexit", XXRXIT, CM_INV }, /* REMOTE EXIT */ |
| #endif /* NOXFER */ |
| |
| #ifdef CK_REXX |
| #ifndef NOPUSH |
| { "rexx", XXREXX, CM_PSH }, /* Execute a Rexx command */ |
| #else |
| { "rexx", XXNOTAV, CM_INV|CM_PSH }, |
| #endif /* NOPUSH */ |
| #endif /* CK_REXX */ |
| |
| #ifndef NOXFER |
| { "rhelp", XXRHLP, CM_INV }, /* REMOTE HELP */ |
| { "rhost", XXRHOS, CM_INV }, /* REMOTE HOST */ |
| { "rkermit", XXRKER, CM_INV }, /* REMOTE KERMIT */ |
| #endif /* NOXFER */ |
| |
| #ifdef TCPSOCKET |
| { "rlogin", XXRLOG, CM_LOC }, /* Make an Rlogin connection */ |
| #else |
| { "rlogin", XXNOTAV, CM_INV|CM_LOC }, |
| #endif /* TCPSOCKET */ |
| |
| #ifndef NOFRILLS |
| { "rm", XXDEL, CM_INV }, /* Invisible synonym for delete */ |
| #endif /* NOFRILLS */ |
| |
| #ifdef CK_MKDIR |
| { "rmdir", XXRMDIR, 0 }, /* RMDIR */ |
| #else |
| { "rmdir", XXNOTAV, CM_INV }, |
| #endif /* CK_MKDIR */ |
| |
| #ifndef NOXFER |
| { "rmkdir", XXRMKD, CM_INV }, /* REMOTE MKDIR */ |
| #ifndef NOSPL |
| { "robust", XXROB, CM_INV }, |
| #else |
| { "robust", XXNOTAV, CM_INV }, |
| #endif /* NOSPL */ |
| { "rprint", XXRPRI, CM_INV }, /* REMOTE PRINT */ |
| { "rpwd", XXRPWD, CM_INV }, /* REMOTE PWD */ |
| { "rquery", XXRQUE, CM_INV }, /* REMOTE QUERY */ |
| #endif /* NOXFER */ |
| |
| #ifdef CK_RECALL |
| { "rr", XXREDO, CM_INV|CM_NOR }, |
| #endif /* CK_RECALL */ |
| |
| #ifndef NOXFER |
| { "rrename", XXRREN, CM_INV }, /* REMOTE RENAME */ |
| { "rrmdir", XXRRMD, CM_INV }, /* REMOTE REMDIR */ |
| { "rset", XXRSET, CM_INV }, /* REMOTE SET */ |
| { "rspace", XXRSPA, CM_INV }, /* REMOTE SPACE */ |
| { "rtype", XXRTYP, CM_INV }, /* REMOTE TYPE */ |
| #endif /* NOXFER */ |
| |
| #ifndef NOPUSH |
| { "run", XXSHE, CM_PSH }, /* RUN a program or command */ |
| #else |
| { "run", XXNOTAV, CM_INV|CM_PSH }, |
| #endif /* NOPUSH */ |
| |
| #ifndef NOXFER |
| { "rwho", XXRWHO, CM_INV }, /* REMOTE WHO */ |
| { "s", XXSEN, CM_INV|CM_ABR }, /* Invisible synonym for send */ |
| #endif /* NOXFER */ |
| |
| #ifndef NOSETKEY |
| #ifdef OS2 |
| { "save", XXSAVE, 0 }, /* SAVE something */ |
| #else |
| { "save", XXSAVE, CM_INV }, |
| #endif /* OS2 */ |
| #else |
| { "save", XXNOTAV, CM_INV }, |
| #endif /* NOSETKEY */ |
| |
| #ifndef NOSCRIPT |
| { "sc", XXLOGI, CM_INV|CM_ABR|CM_LOC }, |
| { "scr", XXLOGI, CM_INV|CM_ABR|CM_LOC }, |
| #endif /* NOSCRIPT */ |
| { "screen", XXSCRN, 0 }, /* SCREEN actions */ |
| #ifndef NOSCRIPT |
| { "script", XXLOGI, CM_LOC }, /* Expect-Send-style script line */ |
| #else |
| { "script", XXNOTAV, CM_INV|CM_LOC }, |
| #endif /* NOSCRIPT */ |
| |
| { "search", XXGREP,CM_INV }, /* Synonym for GREP and FIND */ |
| |
| #ifndef NOXFER |
| { "send", XXSEN, 0 }, /* Send (a) file(s) */ |
| #ifndef NOSERVER |
| { "server", XXSER, 0 }, /* Be a SERVER */ |
| #else |
| { "server", XXNOTAV, CM_INV }, |
| #endif /* NOSERVER */ |
| #endif /* NOXFER */ |
| |
| { "set", XXSET, 0 }, /* SET parameters */ |
| |
| #ifndef NOSPL |
| #ifndef NOSEXP |
| { "sexpression", XXSEXP, CM_INV|CM_HLP }, /* SEXPR */ |
| #endif /* NOSEXP */ |
| |
| #ifdef SFTP_BUILTIN |
| { "sftp", XXSFTP, 0 }, /* SFTP */ |
| #endif /* SFTP_BUILTIN */ |
| |
| #ifndef NOSHOW |
| { "sh", XXSHO, CM_INV|CM_ABR }, /* SHOW parameters */ |
| #endif /* NOSHOW */ |
| { "shift", XXSHIFT, 0 }, /* SHIFT args */ |
| #else |
| { "shift", XXNOTAV, CM_INV }, |
| #endif /* NOSPL */ |
| |
| #ifndef NOSHOW |
| { "show", XXSHO, 0 }, /* SHOW parameters */ |
| #else |
| { "show", XXNOTAV, CM_INV }, |
| #endif /* NOSHOW */ |
| |
| #ifdef NEWFTP |
| { "site", XXSITE, CM_INV }, /* (FTP) SITE */ |
| #endif /* NEWFTP */ |
| |
| #ifdef SSHBUILTIN |
| { "skermit", XXSKRM, 0 }, /* SKERMIT */ |
| #endif /* SSHBUILTIN */ |
| |
| #ifndef NOSPL |
| #ifndef NOFRILLS |
| { "sleep", XXPAU, CM_INV }, /* SLEEP for specified interval */ |
| #endif /* NOFRILLS */ |
| #endif /* NOSPL */ |
| |
| #ifndef NOSPL |
| { "sort", XXSORT, CM_INV }, /* (see ARRAY) */ |
| #else |
| { "sort", XXNOTAV, CM_INV }, |
| #endif /* NOSPL */ |
| |
| #ifndef MAC |
| #ifndef NOFRILLS |
| { "sp", XXSPA, CM_INV|CM_ABR }, |
| { "spa", XXSPA, CM_INV|CM_ABR }, |
| #endif /* NOFRILLS */ |
| { "space", XXSPA, 0 }, /* Show available disk SPACE */ |
| #endif /* MAC */ |
| |
| #ifndef NOFRILLS |
| #ifndef NOPUSH |
| { "spawn", XXSHE, CM_INV|CM_PSH }, /* Synonym for PUSH, RUN */ |
| #else |
| { "spawn", XXNOTAV, CM_INV|CM_PSH }, /* Synonym for PUSH, RUN */ |
| #endif /* NOPUSH */ |
| #endif /* NOFRILLS */ |
| |
| #ifdef ANYSSH |
| { "ssh", XXSSH, 0 }, |
| #endif /* ANYSSH */ |
| |
| #ifndef NOXFER |
| { "sta", XXSTA, CM_INV|CM_ABR }, |
| { "stat", XXSTA, CM_INV|CM_ABR }, |
| { "statistics", XXSTA, 0 }, /* Display file transfer stats */ |
| #endif /* NOXFER */ |
| |
| { "status", XXSTATUS,0 }, /* Show status of previous command */ |
| |
| #ifndef NOSPL |
| { "stop", XXSTO, 0 }, /* STOP all take files and macros */ |
| { "succeed", XXSUCC, CM_INV }, /* SUCCEED */ |
| #else |
| { "stop", XXNOTAV, CM_INV }, |
| { "succeed", XXNOTAV, CM_INV }, |
| #endif /* NOSPL */ |
| |
| #ifndef NOFRILLS |
| { "SUPPORT", XXBUG, 0 }, /* Tech support instructions */ |
| #else |
| { "support", XXNOTAV, CM_INV }, |
| #endif /* NOFRILLS */ |
| |
| #ifndef NOJC |
| { "suspend", XXSUS, CM_PSH }, /* SUSPEND C-Kermit (UNIX only) */ |
| #else |
| { "suspend", XXNOTAV, CM_INV|CM_PSH }, |
| #endif /* NOJC */ |
| |
| #ifndef NOSPL |
| { "switch", XXSWIT, 0 }, /* SWITCH */ |
| #else |
| { "switch", XXNOTAV, CM_INV }, |
| #endif /* NOSPL */ |
| |
| #ifdef CK_TAPI |
| { "ta", XXTAK, CM_INV|CM_ABR }, /* (because of TAPI) */ |
| #endif /* CK_TAPI */ |
| |
| #ifndef NOFRILLS |
| { "tail", XXTAIL, 0 }, /* Display end of a local file */ |
| #endif /* NOFRILLS */ |
| |
| { "take", XXTAK, 0 }, /* TAKE commands from a file */ |
| |
| #ifdef CK_TAPI |
| { "tapi", XXTAPI, CM_LOC }, /* Microsoft TAPI commands */ |
| #else |
| { "tapi", XXNOTAV, CM_INV|CM_LOC }, |
| #endif /* CK_TAPI */ |
| |
| #ifndef NOFRILLS |
| #ifdef TCPSOCKET |
| { "tel", XXTEL, CM_INV|CM_ABR|CM_LOC }, |
| { "telnet", XXTEL, CM_LOC }, /* TELNET (TCP/IP only) */ |
| { "telopt", XXTELOP, CM_INV }, /* TELOPT (ditto) */ |
| #else |
| { "tel", XXNOTAV, CM_INV|CM_LOC }, |
| { "telnet", XXNOTAV, CM_INV|CM_LOC }, |
| { "telopt", XXNOTAV, CM_INV }, |
| #endif /* TCPSOCKET */ |
| #ifdef OS2 |
| { "terminal", XXTERM, CM_INV|CM_LOC }, /* == SET TERMINAL TYPE */ |
| #else |
| { "terminal", XXTERM, CM_INV }, |
| #endif /* OS2 */ |
| #endif /* NOFRILLS */ |
| #ifndef NOXFER |
| { "text", XXASC, CM_INV }, /* == SET FILE TYPE TEXT */ |
| #endif /* NOXFER */ |
| |
| #ifndef NOSPL |
| { "trace", XXTRACE, 0 }, /* TRACE */ |
| #else |
| { "trace", XXNOTAV, CM_INV }, |
| #endif /* NOSPL */ |
| |
| #ifndef NOCSETS |
| { "translate", XXXLA, 0 }, /* TRANSLATE local file char sets */ |
| #else |
| { "translate", XXNOTAV, CM_INV }, |
| #endif /* NOCSETS */ |
| |
| #ifndef NOXMIT |
| { "transmit", XXTRA, 0 }, /* Send (upload) a file, no protocol */ |
| #else |
| { "transmit", XXNOTAV, CM_INV }, |
| #endif /* NOXMIT */ |
| |
| #ifndef NOFRILLS |
| { "type", XXTYP, 0 }, /* Display a local file */ |
| #endif /* NOFRILLS */ |
| |
| #ifndef NOSPL |
| { "undcl", XXUNDCL, CM_INV }, |
| { "undeclare", XXUNDCL, 0 }, /* UNDECLARE an array */ |
| { "undefine", XXUNDEF, 0 }, /* UNDEFINE a variable or macro */ |
| #else |
| { "undcl", XXNOTAV, CM_INV }, |
| { "undeclare", XXNOTAV, CM_INV }, |
| { "undefine", XXNOTAV, CM_INV }, |
| #endif /* NOSPL */ |
| |
| #ifdef NEWFTP |
| { "user", XXUSER, CM_INV }, /* (FTP) USER */ |
| #endif /* NEWFTP */ |
| |
| { "version", XXVER, 0 }, /* VERSION-number display */ |
| |
| #ifdef OS2 |
| { "viewonly", XXVIEW, CM_LOC }, /* VIEWONLY Terminal Mode */ |
| #endif /* OS2 */ |
| |
| { "void", XXVOID, 0 }, /* VOID */ |
| |
| #ifndef NOSPL |
| { "wait", XXWAI, 0 }, /* WAIT */ |
| #else |
| { "wait", XXNOTAV, CM_INV }, |
| #endif /* NOSPL */ |
| |
| { "wermit", XXKERMI, CM_INV }, |
| |
| #ifndef NOXFER |
| { "where", XXWHERE, 0 }, /* WHERE (did my file go?) */ |
| #endif /* NOXFER */ |
| |
| #ifndef NOSPL |
| { "while", XXWHI, 0 }, /* WHILE loop */ |
| #else |
| { "while", XXNOTAV, CM_INV }, |
| #endif /* NOSPL */ |
| |
| #ifndef OS2 |
| #ifndef MAC |
| #ifndef NOFRILLS |
| { "who", XXWHO, CM_PSH }, /* WHO's logged in? */ |
| #endif /* NOFRILLS */ |
| #endif /* MAC */ |
| #endif /* OS2 */ |
| |
| #ifndef NOHELP |
| { "wildcards", XXWILD,CM_INV|CM_HLP }, /* Wildcard syntax */ |
| #endif /* NOHELP */ |
| |
| #ifndef NOSPL |
| { "wr", XXWRI, CM_INV|CM_ABR }, |
| { "wri", XXWRI, CM_INV|CM_ABR }, |
| { "writ", XXWRI, CM_INV|CM_ABR }, |
| { "write", XXWRI, 0 }, /* WRITE characters to a file */ |
| { "write-line", XXWRL, CM_INV }, /* WRITE a line to a file */ |
| { "writeln", XXWRL, CM_INV }, /* Pascalisch synonym for write-line */ |
| #else |
| { "wr", XXNOTAV, CM_INV }, |
| { "wri", XXNOTAV, CM_INV }, |
| { "writ", XXNOTAV, CM_INV }, |
| { "write", XXNOTAV, CM_INV }, |
| { "write-line", XXNOTAV, CM_INV }, |
| { "writeln", XXNOTAV, CM_INV }, |
| #endif /* NOSPL */ |
| |
| #ifndef NOFRILLS |
| { "xecho", XXXECH,0 }, /* XECHO */ |
| #endif /* NOFRILLS */ |
| |
| #ifndef NOSPL |
| { "xif", XXIFX, CM_INV }, /* Extended IF command (obsolete) */ |
| #else |
| { "xif", XXNOTAV, CM_INV }, |
| #endif /* NOSPL */ |
| |
| #ifndef NOCSETS |
| { "xlate", XXXLA, CM_INV }, /* Synonym for TRANSLATE */ |
| #else |
| { "xlate", XXNOTAV, CM_INV }, |
| #endif /* NOCSETS */ |
| |
| #ifndef NOXMIT |
| { "xmit", XXTRA, CM_INV }, /* Synonym for TRANSMIT */ |
| #else |
| { "xmit", XXNOTAV, CM_INV }, |
| #endif /* NOXMIT */ |
| |
| #ifndef OS2 |
| #ifndef NOJC |
| { "z", XXSUS, CM_INV|CM_PSH }, /* Synonym for SUSPEND */ |
| #else |
| { "z", XXNOTAV, CM_INV|CM_PSH }, |
| #endif /* NOJC */ |
| #endif /* OS2 */ |
| |
| #ifndef NOSPL |
| { "{", XXMACRO, CM_INV }, /* Immediate macro */ |
| #endif /* NOSPL */ |
| { "", 0, 0 } |
| }; |
| int ncmd = (sizeof(cmdtab) / sizeof(struct keytab)) - 1; |
| |
| /* NOTE: Tokens must also be entered above into cmdtab[]. */ |
| |
| char toktab[] = { |
| #ifndef NOPUSH |
| '!', /* Shell escape */ |
| #endif /* NOPUSH */ |
| '#', /* Comment */ |
| #ifndef NOSPL |
| '(', /* S-Expression */ |
| '.', /* Assignment */ |
| #endif /* NOSPL */ |
| ';', /* Comment */ |
| #ifndef NOSPL |
| ':', /* Label */ |
| #endif /* NOSPL */ |
| #ifndef NOPUSH |
| #ifdef CK_REDIR |
| '<', /* REDIRECT */ |
| #endif /* CK_REDIR */ |
| '@', /* DCL escape */ |
| #endif /* NOPUSH */ |
| #ifdef CK_RECALL |
| '^', /* Command recall */ |
| #endif /* CK_RECALL */ |
| #ifndef NOSPL |
| '{', /* Immediate macro */ |
| #endif /* NOSPL */ |
| '\0' /* End of this string */ |
| }; |
| int xxdot = 0; /* Used with "." token */ |
| |
| struct keytab yesno[] = { /* Yes/No keyword table */ |
| { "no", 0, 0 }, |
| { "ok", 1, 0 }, |
| { "yes", 1, 0 } |
| }; |
| int nyesno = (sizeof(yesno) / sizeof(struct keytab)); |
| |
| /* Save keyword table */ |
| |
| struct keytab savtab[] = { |
| #ifdef OS2 |
| { "command", XSCMD, 0 }, |
| #else |
| #ifdef CK_RECALL |
| { "command", XSCMD, 0 }, |
| #endif /* CK_RECALL */ |
| #endif /* OS2 */ |
| #ifndef NOSETKEY |
| { "keymap", XSKEY, 0 }, |
| #endif /* NOSETKEY */ |
| #ifdef OS2 |
| { "terminal", XSTERM, 0 }, |
| #endif /* OS2 */ |
| { "", 0, 0 } |
| }; |
| int nsav = (sizeof(savtab) / sizeof(struct keytab)) - 1; |
| |
| /* Parameter keyword table */ |
| |
| struct keytab prmtab[] = { |
| { "alarm", XYALRM, 0 }, |
| #ifdef COMMENT /* SET ANSWER not implemented yet */ |
| #ifndef NODIAL |
| { "answer", XYANSWER,0 }, |
| #endif /* NODIAL */ |
| #endif /* COMMENT */ |
| { "ask-timer", XYTIMER, 0 }, |
| #ifndef NOXFER |
| { "attributes", XYATTR, 0 }, |
| #endif /* NOXFER */ |
| #ifdef CK_AUTHENTICATION |
| { "authentication", XYAUTH, 0 }, |
| #else /* CK_AUTHENTICATION */ |
| #ifdef CK_SSL |
| { "authentication", XYAUTH, 0 }, |
| #endif /* CK_SSL */ |
| #endif /* CK_AUTHENTICATION */ |
| { "b", XYBACK, CM_INV|CM_ABR|CM_PSH }, |
| { "ba", XYBACK, CM_INV|CM_ABR|CM_PSH }, |
| #ifdef VMS |
| { "background", XYBACK, CM_INV|CM_PSH }, |
| { "batch", XYBACK, CM_PSH }, |
| #else |
| { "background", XYBACK, CM_PSH }, |
| { "batch", XYBACK, CM_INV|CM_PSH }, |
| #endif /* VMS */ |
| #ifndef NOLOCAL |
| { "baud", XYSPEE, CM_INV|CM_LOC }, |
| #endif /* NOLOCAL */ |
| { "bell", XYBELL, 0 }, |
| #ifndef NOXFER |
| { "block-check", XYCHKT, 0 }, |
| #endif /* NOXFER */ |
| #ifdef OS2 |
| #ifdef BPRINT |
| { "bprinter", XYBDCP, CM_INV }, |
| #endif /* BPRINT */ |
| #endif /* OS2 */ |
| #ifdef BROWSER |
| { "browser", XYBROWSE,CM_PSH|CM_LOC }, |
| #endif /* BROWSER */ |
| #ifndef NOXFER |
| #ifdef DYNAMIC |
| { "buffers", XYBUF, 0 }, |
| #endif /* DYNAMIC */ |
| #endif /* NOXFER */ |
| #ifndef NOLOCAL |
| #ifndef MAC |
| { "carrier-watch", XYCARR, CM_LOC }, |
| #endif /* MAC */ |
| #endif /* NOLOCAL */ |
| #ifndef NOSPL |
| { "case", XYCASE, 0 }, |
| #endif /* NOSPL */ |
| { "cd", XYCD, 0 }, |
| #ifndef NOXFER |
| { "cl", XYCLEAR, CM_INV|CM_ABR }, |
| { "cle", XYCLEAR, CM_INV|CM_ABR }, |
| { "clea", XYCLEAR, CM_INV|CM_ABR }, |
| { "clear", XYCLEAR, CM_INV|CM_ABR }, |
| { "clear-channel", XYCLEAR, 0 }, |
| { "clearchannel", XYCLEAR, CM_INV }, |
| #endif /* NOXFER */ |
| #ifndef NOLOCAL |
| { "close-on-disconnect", XYDISC, CM_INV|CM_LOC }, |
| #endif /* NOLOCAL */ |
| { "cmd", XYCMD, CM_INV }, |
| { "command", XYCMD, 0 }, |
| #ifdef CK_SPEED |
| { "con", XYQCTL, CM_INV|CM_ABR }, |
| #endif /* CK_SPEED */ |
| { "console", XYCMD, CM_INV }, |
| #ifdef CK_SPEED |
| { "control-character",XYQCTL, 0 }, |
| #endif /* CK_SPEED */ |
| #ifndef NOSPL |
| { "count", XYCOUN, 0 }, |
| #endif /* NOSPL */ |
| #ifndef NOXFER |
| { "d", XYDELA, CM_INV|CM_ABR }, |
| { "de", XYDELA, CM_INV|CM_ABR }, |
| #endif /* NOXFER */ |
| { "debug", XYDEBU, 0 }, |
| #ifdef VMS |
| { "default", XYDFLT, 0 }, |
| #else |
| #ifndef MAC |
| { "default", XYDFLT, CM_INV }, |
| #endif /* MAC */ |
| #endif /* VMS */ |
| #ifndef NOXFER |
| { "delay", XYDELA, 0 }, |
| { "destination", XYDEST, 0 }, |
| #endif /* NOXFER */ |
| #ifndef NODIAL |
| { "di", XYDIAL, CM_INV|CM_ABR|CM_LOC }, |
| { "dia", XYDIAL, CM_INV|CM_ABR|CM_LOC }, |
| { "dial", XYDIAL, CM_LOC }, |
| #endif /* NODIAL */ |
| #ifdef OS2 |
| { "dialer", XYDLR, CM_INV }, |
| #endif /* OS2 */ |
| #ifndef NOLOCAL |
| { "disconnect", XYDISC, CM_LOC }, |
| { "duplex", XYDUPL, CM_LOC }, |
| #endif /* NOLOCAL */ |
| #ifndef NOPUSH |
| #ifndef NOFRILLS |
| { "editor", XYEDIT, CM_PSH }, |
| #endif /* NOFRILLS */ |
| #endif /* NOPUSH */ |
| #ifdef CK_CTRLZ |
| { "eof", XYEOF, CM_INV }, |
| #endif /* CK_CTRLZ */ |
| #ifndef NOLOCAL |
| { "escape-character", XYESC, CM_LOC }, |
| #endif /* NOLOCAL */ |
| #ifndef NOSPL |
| { "evaluate", XYEVAL, CM_INV }, |
| #endif /* NOSPL */ |
| { "exit", XYEXIT, 0 }, |
| #ifndef NOXFER |
| { "f-ack-bug", XYFACKB, CM_INV }, |
| { "f-ack-path", XYFACKP, CM_INV }, |
| #endif /* NOXFER */ |
| { "file", XYFILE, 0 }, |
| { "fl", XYFLOW, CM_INV|CM_ABR }, |
| #ifndef NOSPL |
| { "flag", XYFLAG, 0 }, |
| #endif /* NOSPL */ |
| #ifdef TCPSOCKET |
| #ifndef SYSFTP |
| #ifndef NOFTP |
| { "ft", XYFTPX, CM_INV|CM_ABR }, |
| { "ftp", XYFTPX, 0 }, |
| #endif /* NOFTP */ |
| #endif /* SYSFTP */ |
| #endif /* TCPSOCKET */ |
| #ifdef BROWSER |
| { "ftp-client", XYFTP, CM_PSH }, |
| #endif /* BROWSER */ |
| { "flow-control", XYFLOW, 0 }, |
| #ifndef NOSPL |
| { "function", XYFUNC, 0 }, |
| #endif /* NOSPL */ |
| #ifdef NEWFTP |
| { "get-put-remote", XYGPR, 0 }, |
| #endif /* NEWFTP */ |
| #ifdef KUI |
| { "gui", XYGUI, 0 }, |
| #endif /* KUI */ |
| { "handshake", XYHAND, 0 }, |
| { "hints", XYHINTS, 0 }, |
| #ifdef NETCONN |
| { "host", XYHOST, CM_LOC }, |
| #endif /* NETCONN */ |
| #ifndef NOSPL |
| { "i", XYINPU, CM_INV|CM_ABR }, |
| #endif /* NOSPL */ |
| #ifdef IKSD |
| { "iks", XYIKS, 0 }, |
| #else |
| { "iks", XYIKS, CM_INV }, |
| #endif /* IKSD */ |
| #ifndef NOSPL |
| { "in", XYINPU, CM_INV|CM_ABR }, |
| #endif /* NOSPL */ |
| #ifndef NOXFER |
| { "incomplete", XYIFD, CM_INV }, |
| #endif /* NOXFER */ |
| #ifndef NOSPL |
| { "input", XYINPU, 0 }, |
| #endif /* NOSPL */ |
| #ifndef NOSETKEY |
| { "key", XYKEY, 0 }, |
| #endif /* NOSETKEY */ |
| { "l", XYLINE, CM_INV|CM_ABR }, |
| #ifndef NOCSETS |
| { "language", XYLANG, 0 }, |
| #endif /* NOCSETS */ |
| #ifndef NOLOCAL |
| { "line", XYLINE, CM_LOC }, |
| { "local-echo", XYLCLE, CM_INV|CM_LOC }, |
| #endif /* NOLOCAL */ |
| #ifdef LOCUS |
| { "locus", XYLOCUS, 0 }, |
| #endif /* LOCUS */ |
| #ifndef NOSPL |
| { "login", XYLOGIN, CM_LOC }, |
| #endif /* NOSPL */ |
| #ifndef NOSPL |
| { "macro", XYMACR, 0 }, |
| #endif /* NOSPL */ |
| { "match", XYMATCH, 0 }, |
| #ifdef COMMENT |
| #ifdef VMS |
| { "messages", XYMSGS, 0 }, |
| #endif /* VMS */ |
| #endif /* COMMENT */ |
| #ifndef NODIAL |
| { "modem", XYMODM, CM_LOC }, |
| #endif /* NODIAL */ |
| #ifndef NOLOCAL |
| #ifdef OS2MOUSE |
| { "mouse", XYMOUSE, 0 }, |
| #endif /* OS2MOUSE */ |
| #endif /* NOLOCAL */ |
| #ifdef OS2 |
| { "mskermit", XYMSK, 0 }, |
| #endif /* OS2 */ |
| #ifdef NETCONN |
| { "network", XYNET, CM_LOC }, |
| #endif /* NETCONN */ |
| #ifndef NOSPL |
| { "output", XYOUTP, 0 }, |
| #endif /* NOSPL */ |
| { "options", XYOPTS, 0 }, |
| { "pause", XYSLEEP, CM_INV }, |
| #ifdef ANYX25 |
| #ifndef IBMX25 |
| { "pad", XYPAD, CM_LOC }, |
| #endif /* IBMX25 */ |
| #endif /* ANYX25 */ |
| { "parity", XYPARI, 0 }, |
| #ifndef NOLOCAL |
| #ifdef OS2 |
| { "port", XYLINE, CM_LOC }, |
| #else |
| { "port", XYLINE, CM_INV|CM_LOC }, |
| #endif /* OS2 */ |
| #endif /* NOLOCAL */ |
| #ifndef NOFRILLS |
| { "pr", XYPROM, CM_INV|CM_ABR }, |
| { "printer", XYPRTR, 0 }, |
| #endif /* NOFRILLS */ |
| #ifdef OS2 |
| { "priority", XYPRTY, 0 }, |
| #endif /* OS2 */ |
| #ifdef CK_SPEED |
| { "prefixing", XYPREFIX, 0 }, |
| #endif /* CK_SPEED */ |
| #ifndef NOFRILLS |
| { "prompt", XYPROM, 0 }, |
| #endif /* NOFRILLS */ |
| #ifndef NOXFER |
| { "protocol", XYPROTO, 0 }, |
| #endif /* NOXFER */ |
| { "q", XYQUIE, CM_INV|CM_ABR }, |
| #ifndef NOXFER |
| { "q8flag", XYQ8FLG, CM_INV }, |
| #endif /* NOXFER */ |
| #ifdef QNX |
| { "qnx-port-lock", XYQNXPL, 0 }, |
| #else |
| { "qnx-port-lock", XYQNXPL, CM_INV }, |
| #endif /* QNX */ |
| { "quiet", XYQUIE, 0 }, |
| #ifndef NOXFER |
| { "rec", XYRECV, CM_INV|CM_ABR }, |
| { "receive", XYRECV, 0 }, |
| { "recv", XYRECV, CM_INV }, |
| #endif /* NOXFER */ |
| { "reliable", XYRELY, 0 }, |
| #ifndef NOXFER |
| { "repeat", XYREPT, 0 }, |
| { "retry-limit", XYRETR, 0 }, |
| #endif /* NOXFER */ |
| #ifdef CKROOT |
| { "root", XYROOT, 0 }, |
| #endif /* CKROOT */ |
| #ifndef NOSCRIPT |
| { "script", XYSCRI, CM_LOC }, |
| #endif /* NOSCRIPT */ |
| #ifndef NOXFER |
| { "send", XYSEND, 0 }, |
| #ifndef NOLOCAL |
| #ifndef NOSERVER |
| { "ser", XYSERV, CM_INV|CM_ABR }, |
| #endif /* NOSERVER */ |
| #endif /* NOXFER */ |
| { "serial", XYSERIAL,CM_LOC }, |
| #endif /* NOLOCAL */ |
| #ifndef NOSERVER |
| { "server", XYSERV, 0 }, |
| #endif /* NOSERVER */ |
| #ifdef SESLIMIT |
| #ifndef NOLOCAL |
| { "session-l", XYSESS, CM_INV|CM_ABR }, |
| #endif /* NOLOCAL */ |
| { "session-limit", XYLIMIT, CM_INV|CM_LOC }, /* Session Limit */ |
| #endif /* SESLIMIT */ |
| |
| #ifndef NOLOCAL |
| { "session-log", XYSESS, CM_LOC }, |
| #endif /* NOLOCAL */ |
| |
| #ifndef NOSPL |
| #ifndef NOSEXP |
| { "sexpression", XYSEXP, CM_INV }, |
| #endif /* NOSEXP */ |
| #endif /* NOSPL */ |
| |
| { "sleep", XYSLEEP, 0 }, |
| |
| #ifndef NOLOCAL |
| { "speed", XYSPEE, CM_LOC }, |
| #endif /* NOLOCAL */ |
| |
| #ifdef ANYSSH |
| { "ssh", XYSSH, 0 }, |
| #endif /* ANYSSH */ |
| |
| #ifndef NOSPL |
| { "startup-file", XYSTARTUP, CM_INV }, |
| #endif /* NOSPL */ |
| |
| #ifndef NOLOCAL |
| #ifdef HWPARITY |
| { "stop-bits", XYSTOP, CM_LOC }, |
| #else |
| #ifdef TN_COMPORT |
| { "stop-bits", XYSTOP, CM_LOC }, |
| #endif /* TN_COMPORT */ |
| #endif /* HWPARITY */ |
| #endif /* NOLOCAL */ |
| |
| #ifndef NOXFER |
| #ifdef STREAMING |
| { "streaming", XYSTREAM, 0 }, |
| #endif /* STREAMING */ |
| #endif /* NOXFER */ |
| |
| #ifndef NOJC |
| { "suspend", XYSUSP, CM_PSH }, |
| #endif /* NOJC */ |
| #ifdef CKSYSLOG |
| { "syslog", XYSYSL, CM_INV }, |
| #endif /* CKSYSLOG */ |
| { "take", XYTAKE, 0 }, |
| |
| #ifdef CK_TAPI |
| { "tapi", XYTAPI, CM_LOC }, |
| #endif /* CK_TAPI */ |
| |
| #ifndef NOTCPOPTS |
| #ifdef TCPSOCKET |
| { "tcp", XYTCP, CM_LOC }, |
| #endif /* TCPSOCKET */ |
| #endif /* NOTCPOPTS */ |
| |
| #ifdef TNCODE |
| { "tel", XYTEL, CM_INV|CM_ABR }, |
| { "telnet", XYTEL, 0 }, |
| { "telopt", XYTELOP, 0 }, |
| #endif /* TNCODE */ |
| |
| #ifndef NOSPL |
| { "temp-directory", XYTMPDIR,0 }, |
| #endif /* NOSPL */ |
| |
| #ifndef NOLOCAL |
| { "terminal", XYTERM, CM_LOC }, |
| #endif /* NOLOCAL */ |
| |
| #ifdef OS2 |
| { "title", XYTITLE, CM_LOC }, |
| #endif /* OS2 */ |
| #ifdef TLOG |
| { "transaction-log", XYTLOG, 0 }, |
| #endif /* TLOG */ |
| #ifndef NOXFER |
| { "transfer", XYXFER, 0 }, |
| #endif /* NOXFER */ |
| #ifndef NOXMIT |
| { "transmit", XYXMIT, 0 }, |
| #endif /* NOXMIT */ |
| #ifndef NOXFER |
| #ifndef NOCSETS |
| { "unknown-char-set", XYUNCS, 0 }, |
| #endif /* NOCSETS */ |
| #endif /* NOXFER */ |
| { "wait", XYSLEEP, CM_INV }, |
| #ifndef NOPUSH |
| #ifdef UNIX |
| { "wildcard-expansion", XYWILD, 0 }, |
| #endif /* UNIX */ |
| #endif /* NOPUSH */ |
| #ifdef NT |
| { "w", XYWIND, CM_INV|CM_ABR }, |
| { "wi", XYWIND, CM_INV|CM_ABR }, |
| { "win", XYWIND, CM_INV|CM_ABR }, |
| #endif /* NT */ |
| { "window-size", XYWIND, 0 }, |
| #ifdef NT |
| { "win95", XYWIN95, 0 }, |
| #endif /* NT */ |
| #ifdef ANYX25 |
| { "x.25", XYX25, CM_LOC }, |
| { "x25", XYX25, CM_INV|CM_LOC }, |
| #endif /* ANYX25 */ |
| { "xfer", XYXFER, CM_INV }, |
| #ifndef NOXMIT |
| { "xmit", XYXMIT, CM_INV }, |
| #endif /* NOXMIT */ |
| { "", 0, 0 } |
| }; |
| int nprm = (sizeof(prmtab) / sizeof(struct keytab)) - 1; /* How many */ |
| |
| struct keytab scntab[] = { /* Screen commands */ |
| { "clear", SCN_CLR, 0 }, |
| { "cleol", SCN_CLE, 0 }, |
| { "move-to", SCN_MOV, 0 } |
| }; |
| int nscntab = (sizeof(scntab) / sizeof(struct keytab)); /* How many */ |
| |
| #ifdef ANYSSH /* SSH command table */ |
| #ifdef SSHBUILTIN |
| int ssh_pf_lcl_n = 0, |
| ssh_pf_rmt_n = 0; |
| struct ssh_pf ssh_pf_lcl[32] = { 0, NULL, 0 }; /* SSH Port Forwarding */ |
| struct ssh_pf ssh_pf_rmt[32] = { 0, NULL, 0 }; /* structs... */ |
| extern char * ssh_hst, * ssh_cmd, * ssh_prt; |
| extern int ssh_ver, ssh_xfw; |
| char * ssh_tmpuid = NULL, *ssh_tmpcmd = NULL, *ssh_tmpport = NULL, |
| * ssh_tmpstr = NULL; |
| |
| int |
| sshk_type = SSHKT_2D, /* SSH KEY CREATE /TYPE:x */ |
| sshk_bits = 1024, /* SSH KEY CREATE /BITS:n */ |
| sshk_din = SKDF_OSSH, /* SSH KEY DISPLAY /IN-FORMAT: */ |
| sshk_dout = SKDF_OSSH; /* SSH KEY DISPLAY /OUT-FORMAT: */ |
| |
| char |
| * sshk1_comment = NULL, /* SSH V1 COMMENT */ |
| * sshkp_old = NULL, /* Old key passphrase */ |
| * sshkp_new = NULL, /* New key passphrase */ |
| * sshkc_pass = NULL, /* KEY CREATE /PASS:xxx */ |
| * sshkc_comm = NULL, /* KEY CREATE /V1-RSA-COMMENT:xxx */ |
| * sshd_file = NULL, /* DISPLAY file */ |
| * sshk_file = NULL; /* SSH CREATE KEY file */ |
| |
| static struct keytab sshclr[] = { |
| { "local-port-forward", SSHC_LPF, 0 }, |
| { "remote-port-forward", SSHC_RPF, 0 }, |
| { "", 0, 0 } |
| }; |
| static int nsshclr = (sizeof(sshclr) / sizeof(struct keytab)) - 1; |
| |
| struct keytab sshopnsw[] = { |
| { "/command", SSHSW_CMD, CM_ARG }, |
| { "/password", SSHSW_PWD, CM_ARG }, |
| { "/subsystem", SSHSW_SUB, CM_ARG }, |
| { "/user", SSHSW_USR, CM_ARG }, |
| { "/version", SSHSW_VER, CM_ARG }, |
| { "/x11-forwarding", SSHSW_X11, CM_ARG }, |
| { "", 0, 0 } |
| }; |
| int nsshopnsw = (sizeof(sshopnsw) / sizeof(struct keytab)) - 1; |
| |
| static struct keytab sshkwtab[] = { |
| { "add", XSSH_ADD, 0 }, |
| { "agent", XSSH_AGT, 0 }, |
| { "clear", XSSH_CLR, 0 }, |
| { "forward-local-port", XSSH_FLP, CM_INV }, |
| { "forward-remote-port", XSSH_FRP, CM_INV }, |
| { "key", XSSH_KEY, 0 }, |
| { "open", XSSH_OPN, 0 }, |
| { "v2", XSSH_V2, 0 }, |
| { "", 0, 0 } |
| }; |
| static int nsshcmd = (sizeof(sshkwtab) / sizeof(struct keytab)) - 1; |
| |
| static struct keytab ssh2tab[] = { |
| { "rekey", XSSH2_RKE, 0 }, |
| { "", 0, 0 } |
| }; |
| static int nssh2tab = (sizeof(ssh2tab) / sizeof(struct keytab)); |
| |
| static struct keytab addfwd[] = { /* SET SSH ADD command table */ |
| { "local-port-forward", SSHF_LCL, 0 }, |
| { "remote-port-forward", SSHF_RMT, 0 }, |
| { "", 0, 0 } |
| }; |
| static int naddfwd = (sizeof(addfwd) / sizeof(struct keytab)) - 1; |
| |
| static struct keytab sshagent[] = { /* SET SSH AGENT command table */ |
| { "add", SSHA_ADD, 0 }, |
| { "delete", SSHA_DEL, 0 }, |
| { "list", SSHA_LST, 0 }, |
| { "", 0, 0 } |
| }; |
| static int nsshagent = (sizeof(sshagent) / sizeof(struct keytab)) - 1; |
| |
| static struct keytab sshagtsw[] = { /* SET SSH AGENT LIST switch table */ |
| { "/fingerprint", SSHASW_FP, 0 }, |
| { "", 0, 0 } |
| }; |
| static int nsshagtsw = (sizeof(sshagtsw) / sizeof(struct keytab)) - 1; |
| |
| static struct keytab sshkey[] = { /* SET SSH KEY command table */ |
| { "change-passphrase", SSHK_PASS, 0 }, |
| { "create", SSHK_CREA, 0 }, |
| { "display", SSHK_DISP, 0 }, |
| { "v1", SSHK_V1, 0 }, |
| { "", 0, 0 } |
| }; |
| static int nsshkey = (sizeof(sshkey) / sizeof(struct keytab)) - 1; |
| |
| static struct keytab sshkv1[] = { /* SET SSH KEY V1 command table */ |
| { "set-comment", 1, 0 } |
| }; |
| |
| static struct keytab sshkpsw[] = { /* SET SSH KEY PASSPHRASE table */ |
| { "/new-passphrase", 2, CM_ARG }, |
| { "/old-passphrase", 1, CM_ARG } |
| }; |
| |
| static struct keytab sshkcrea[] = { /* SSH KEY CREATE table */ |
| { "/bits", SSHKC_BI, CM_ARG }, |
| { "/passphrase", SSHKC_PP, CM_ARG }, |
| { "/type", SSHKC_TY, CM_ARG }, |
| { "/v1-rsa-comment", SSHKC_1R, CM_ARG } |
| }; |
| static int nsshkcrea = (sizeof(sshkcrea) / sizeof(struct keytab)); |
| |
| static struct keytab sshkcty[] = { /* SSH KEY CREATE /TYPE:xxx */ |
| { "srp", SSHKT_SRP, 0 }, |
| { "v1-rsa", SSHKT_1R, 0 }, |
| { "v2-dsa", SSHKT_2D, 0 }, |
| { "v2-rsa", SSHKT_2R, 0 } |
| }; |
| static int nsshkcty = (sizeof(sshkcty) / sizeof(struct keytab)); |
| |
| static struct keytab sshdswi[] = { /* SET SSH KEY DISPLAY /switches */ |
| { "/format", SSHKD_OUT, CM_ARG } |
| }; |
| static int nsshdswi = (sizeof(sshdswi) / sizeof(struct keytab)); |
| |
| #ifdef COMMENT |
| static struct keytab sshdifmt[] = { /* SSH KEY DISPLAY /IN-FORMAT: */ |
| { "openssh", SKDF_OSSH, 0 }, |
| { "ssh.com", SKDF_SSHC, 0 } |
| }; |
| static int nsshdifmt = (sizeof(sshdifmt) / sizeof(struct keytab)); |
| #endif /* COMMENT */ |
| |
| static struct keytab sshdofmt[] = { /* SSH KEY DISPLAY /IN-FORMAT: */ |
| { "fingerprint", SKDF_FING, 0 }, |
| { "ietf", SKDF_IETF, 0 }, |
| { "openssh", SKDF_OSSH, 0 }, |
| { "ssh.com", SKDF_SSHC, 0 } |
| }; |
| static int nsshdofmt = (sizeof(sshdofmt) / sizeof(struct keytab)); |
| |
| static struct keytab sshkermit[] = { /* SKERMIT */ |
| { "open", SKRM_OPN, 0 } |
| }; |
| static int nsshkermit = (sizeof(sshkermit) / sizeof(struct keytab)); |
| |
| struct keytab sshkrmopnsw[] = { |
| { "/password", SSHSW_PWD, CM_ARG }, |
| { "/user", SSHSW_USR, CM_ARG }, |
| { "/version", SSHSW_VER, CM_ARG }, |
| { "", 0, 0 } |
| }; |
| int nsshkrmopnsw = (sizeof(sshkrmopnsw) / sizeof(struct keytab)) - 1; |
| #endif /* SSHBUILTIN */ |
| |
| #ifdef SFTP_BUILTIN |
| static struct keytab sftpkwtab[] = { /* SFTP */ |
| { "cd", SFTP_CD, 0 }, |
| { "chgrp", SFTP_CHGRP, 0 }, |
| { "chmod", SFTP_CHMOD, 0 }, |
| { "chown", SFTP_CHOWN, 0 }, |
| { "delete", SFTP_RM, 0 }, |
| { "dir", SFTP_DIR, 0 }, |
| { "get", SFTP_GET, 0 }, |
| { "mkdir", SFTP_MKDIR, 0 }, |
| { "open", SFTP_OPN, 0 }, |
| { "put", SFTP_PUT, 0 }, |
| { "pwd", SFTP_PWD, 0 }, |
| { "rename", SFTP_REN, 0 }, |
| { "rm", SFTP_RM, CM_INV }, |
| { "rmdir", SFTP_RMDIR, 0 }, |
| { "symlink", SFTP_LINK, 0 }, |
| { "version", SFTP_VER, 0 } |
| }; |
| static int nsftpkwtab = (sizeof(sftpkwtab) / sizeof(struct keytab)); |
| #endif /* SFTP_BUILTIN */ |
| #endif /* ANYSSH */ |
| |
| #ifdef NETCONN |
| struct keytab netkey[] = { /* SET NETWORK table */ |
| { "directory", XYNET_D, 0 }, |
| { "type", XYNET_T, 0 } |
| }; |
| int nnetkey = (sizeof(netkey) / sizeof(struct keytab)); |
| |
| struct keytab netcmd[] = { |
| /* |
| These are the network types. |
| */ |
| #ifdef NETCMD |
| { "command", NET_CMD, CM_INV }, /* Command */ |
| #endif /* NETCMD */ |
| |
| #ifdef DECNET /* DECnet / PATHWORKS */ |
| { "decnet", NET_DEC, 0 }, |
| #endif /* DECNET */ |
| |
| #ifdef NETDLL |
| { "dll", NET_DLL, CM_INV }, /* DLL to be loaded */ |
| #endif /* NETDLL */ |
| |
| #ifdef NETFILE |
| { "file", NET_FILE, CM_INV }, /* FILE (real crude) */ |
| #endif /* NETFILE */ |
| |
| #ifdef NPIPE /* Named Pipes */ |
| { "named-pipe", NET_PIPE, 0 }, |
| #endif /* NPIPE */ |
| |
| #ifdef CK_NETBIOS |
| { "netbios", NET_BIOS, 0 }, /* NETBIOS */ |
| #endif /* CK_NETBIOS */ |
| |
| #ifdef DECNET /* DECnet / PATHWORKS (alias) */ |
| { "pathworks", NET_DEC, CM_INV }, |
| #endif /* DECNET */ |
| |
| #ifdef NETCMD |
| { "pipe", NET_CMD, 0 }, /* Pipe */ |
| #endif /* NETCMD */ |
| |
| #ifdef NETPTY |
| { "pseudoterminal",NET_PTY, 0 }, /* Pseudoterminal */ |
| #endif /* NETPTY */ |
| |
| #ifdef NETPTY |
| { "pty", NET_PTY, CM_INV }, /* Inv syn for pseudoterm */ |
| #endif /* NETPTY */ |
| |
| #ifdef SSHBUILTIN |
| { "ssh", NET_SSH, 0 }, |
| #endif /* SSHBUILTIN */ |
| |
| #ifdef SUPERLAT |
| { "superlat", NET_SLAT, 0 }, /* Meridian Technologies' SuperLAT */ |
| #endif /* SUPERLAT */ |
| |
| #ifdef TCPSOCKET /* TCP/IP sockets library */ |
| { "tcp/ip", NET_TCPB, 0 }, |
| #endif /* TCPSOCKET */ |
| #ifdef SUPERLAT |
| { "tes32", NET_SLAT, 0 }, /* Emulux TES32 */ |
| #endif /* SUPERLAT */ |
| #ifdef ANYX25 /* X.25 */ |
| #ifdef SUNX25 |
| { "x", NET_SX25, CM_INV|CM_ABR }, |
| { "x.25", NET_SX25, 0 }, |
| { "x25", NET_SX25, CM_INV }, |
| #else |
| #ifdef STRATUSX25 |
| { "x", NET_VX25, CM_INV|CM_ABR }, |
| { "x.25", NET_VX25, 0 }, |
| { "x25", NET_VX25, CM_INV }, |
| #endif /* STRATUSX25 */ |
| #endif /* SUNX25 */ |
| #ifdef IBMX25 |
| { "x", NET_IX25, CM_INV|CM_ABR }, |
| { "x.25", NET_IX25, CM_INV }, |
| { "x25", NET_IX25, CM_INV }, |
| #endif /* IBMX25 */ |
| #ifdef HPX25 |
| { "x", NET_IX25, CM_INV|CM_ABR }, |
| { "x.25", NET_IX25, 0 }, |
| { "x25", NET_IX25, CM_INV }, |
| #endif /* HPX25 */ |
| #endif /* ANYX25 */ |
| { "", 0, 0 } |
| }; |
| int nnets = (sizeof(netcmd) / sizeof(struct keytab)); |
| |
| #ifndef NOTCPOPTS |
| #ifdef TCPSOCKET |
| |
| /* TCP options */ |
| |
| struct keytab tcpopt[] = { |
| { "address", XYTCP_ADDRESS, 0 }, |
| #ifdef CK_DNS_SRV |
| { "dns-service-records", XYTCP_DNS_SRV, 0 }, |
| #endif /* CK_DNS_SRV */ |
| #ifdef SO_DONTROUTE |
| { "dontroute", XYTCP_DONTROUTE, 0 }, |
| #endif /* SO_DONTROUTE */ |
| #ifndef NOHTTP |
| { "http-proxy", XYTCP_HTTP_PROXY, 0 }, |
| #endif /* NOHTTP */ |
| #ifdef SO_KEEPALIVE |
| { "keepalive", XYTCP_KEEPALIVE, 0 }, |
| #endif /* SO_KEEPALIVE */ |
| #ifdef SO_LINGER |
| { "linger", XYTCP_LINGER, 0 }, |
| #endif /* SO_LINGER */ |
| #ifdef TCP_NODELAY |
| { "nagle", XYTCP_NAGLE, CM_INV }, |
| { "nodelay", XYTCP_NODELAY, 0 }, |
| #endif /* TCP_NODELAY */ |
| { "reverse-dns-lookup", XYTCP_RDNS, 0 }, |
| #ifdef SO_RCVBUF |
| { "recvbuf", XYTCP_RECVBUF, 0 }, |
| #endif /* SO_RCVBUF */ |
| #ifdef SO_SNDBUF |
| { "sendbuf", XYTCP_SENDBUF, 0 }, |
| #endif /* SO_SNDBUF */ |
| #ifdef NT |
| #ifdef CK_SOCKS |
| { "socks-server", XYTCP_SOCKS_SVR, 0 }, |
| #endif /* CK_SOCKS */ |
| #endif /* NT */ |
| #ifdef VMS |
| #ifdef DEC_TCPIP |
| { "ucx-port-bug", XYTCP_UCX, 0 }, |
| #endif /* DEC_TCPIP */ |
| #endif /* VMS */ |
| { "",0,0 } |
| }; |
| int ntcpopt = (sizeof(tcpopt) / sizeof(struct keytab)); |
| #endif /* TCPSOCKET */ |
| #endif /* NOTCPOPTS */ |
| #endif /* NETCONN */ |
| |
| #ifdef OS2 |
| /* K95 Manual Chapter Table -- Keep these two tables in sync! */ |
| |
| static char * linktbl[] = { /* Internal links in k95.htm */ |
| "#top", /* 00 */ |
| "#what", /* 01 */ |
| "#install", /* 02 */ |
| "#start", /* 03 */ |
| "#dialer", /* 04 */ |
| "#entries", /* 05 */ |
| "#command", /* 06 */ |
| "#terminal", /* 07 */ |
| "#transfer", /* 08 */ |
| "#hostmode" /* 09 */ |
| }; |
| |
| static struct keytab chaptbl[] = { |
| { "Command-Screen", 6, 0 }, |
| { "Contents", 0, 0 }, |
| { "Dialer-Entries", 5, 0 }, |
| { "File-Transfer", 8, 0 }, |
| { "Getting-Started", 3, 0 }, |
| { "Host-Mode", 9, 0 }, |
| { "Installation", 2, 0 }, |
| { "Terminal-Emulation", 7, 0 }, |
| { "Using-The-Dialer", 4, 0 }, |
| { "What-Is-K95", 1, 0 }, |
| { "", 0, 0 } |
| }; |
| static int nchaptbl = (sizeof(chaptbl) / sizeof(struct keytab) - 1); |
| #endif /* OS2 */ |
| |
| #ifndef NOXFER |
| /* Remote Command Table */ |
| |
| struct keytab remcmd[] = { |
| #ifndef NOSPL |
| { "as", XZASG, CM_INV|CM_ABR }, |
| { "asg", XZASG, CM_INV }, |
| { "assign", XZASG, 0 }, |
| #endif /* NOSPL */ |
| { "cd", XZCWD, 0 }, |
| { "cdup", XZCDU, CM_INV }, |
| { "copy", XZCPY, 0 }, |
| { "cwd", XZCWD, CM_INV }, |
| { "delete", XZDEL, 0 }, |
| { "directory", XZDIR, 0 }, |
| { "e", XZXIT, CM_ABR|CM_INV }, |
| { "erase", XZDEL, CM_INV }, |
| { "exit", XZXIT, 0 }, |
| { "help", XZHLP, 0 }, |
| #ifndef NOPUSH |
| { "host", XZHOS, 0 }, |
| #endif /* NOPUSH */ |
| #ifndef NOFRILLS |
| { "kermit", XZKER, 0 }, |
| { "l", XZLGI, CM_ABR|CM_INV }, |
| { "lo", XZLGI, CM_ABR|CM_INV }, |
| { "log", XZLGI, CM_ABR|CM_INV }, |
| { "login", XZLGI, 0 }, |
| { "logout", XZLGO, 0 }, |
| { "mkdir", XZMKD, 0 }, |
| { "print", XZPRI, 0 }, |
| #endif /* NOFRILLS */ |
| { "pwd", XZPWD, 0 }, |
| #ifndef NOSPL |
| { "query", XZQUE, 0 }, |
| #endif /* NOSPL */ |
| { "rename", XZREN, 0 }, |
| { "rmdir", XZRMD, 0 }, |
| { "set", XZSET, 0 }, |
| { "space", XZSPA, 0 }, |
| #ifndef NOFRILLS |
| { "type", XZTYP, 0 }, |
| { "who", XZWHO, 0 }, |
| #endif /* NOFRILLS */ |
| { "", 0, 0} |
| }; |
| int nrmt = (sizeof(remcmd) / sizeof(struct keytab)) - 1; |
| #endif /* NOXFER */ |
| |
| struct keytab logtab[] = { |
| #ifdef CKLOGDIAL |
| { "connections", LOGM, CM_INV }, |
| { "cx", LOGM, 0 }, |
| #endif /* CKLOGDIAL */ |
| #ifdef DEBUG |
| { "debugging", LOGD, 0 }, |
| #endif /* DEBUG */ |
| { "packets", LOGP, 0 }, |
| #ifndef NOLOCAL |
| { "session", LOGS, 0 }, |
| #endif /* NOLOCAL */ |
| #ifdef TLOG |
| { "transactions", LOGT, 0 }, |
| #endif /* TLOG */ |
| { "", 0, 0 } |
| }; |
| int nlog = (sizeof(logtab) / sizeof(struct keytab)) - 1; |
| |
| struct keytab writab[] = { |
| #ifndef NOSPL |
| { "append-file", LOGW, CM_INV }, |
| #endif /* NOSPL */ |
| { "debug-log", LOGD, 0 }, |
| { "error", LOGE, 0 }, |
| #ifndef NOSPL |
| { "file", LOGW, 0 }, |
| #endif /* NOSPL */ |
| { "packet-log", LOGP, 0 }, |
| { "screen", LOGX, 0 }, |
| #ifndef NOLOCAL |
| { "session-log", LOGS, 0 }, |
| #endif /* NOLOCAL */ |
| { "sys$output", LOGX, CM_INV }, |
| { "t", LOGT, CM_ABR|CM_INV }, /* Because of a typo in */ |
| { "tr", LOGT, CM_ABR|CM_INV }, /* the book... */ |
| { "tra", LOGT, CM_ABR|CM_INV }, |
| { "tran", LOGT, CM_ABR|CM_INV }, |
| { "trans", LOGT, CM_ABR|CM_INV }, |
| { "transa", LOGT, CM_ABR|CM_INV }, |
| { "transac", LOGT, CM_ABR|CM_INV }, |
| { "transact", LOGT, CM_ABR|CM_INV }, |
| { "transacti", LOGT, CM_ABR|CM_INV }, |
| { "transactio", LOGT, CM_ABR|CM_INV }, |
| { "transaction", LOGT, CM_ABR|CM_INV }, |
| { "transaction-log", LOGT, 0 }, |
| { "transactions", LOGT, CM_INV } |
| }; |
| int nwri = (sizeof(writab) / sizeof(struct keytab)); |
| |
| #ifdef COMMENT /* INPUT switches not used yet... */ |
| static struct keytab inswtab[] = { |
| #ifdef COMMENT |
| { "/assign", IN_ASG, CM_ARG }, |
| #endif /* COMMENT */ |
| { "/autodownload", IN_ADL, CM_ARG }, |
| { "/case", IN_CAS, CM_ARG }, |
| { "/echo", IN_ECH, CM_ARG }, |
| { "/interrupts", IN_NOI, CM_ARG }, |
| { "/silence", IN_SIL, CM_ARG }, |
| #ifdef COMMENT |
| { "/pattern", IN_PAT, CM_ARG }, |
| #endif /* COMMENT */ |
| { "", 0, 0 } |
| }; |
| static int ninswtab = (sizeof(inswtab) / sizeof(struct keytab)) - 1; |
| #endif /* COMMENT */ |
| |
| static struct keytab clrtab[] = { /* Keywords for CLEAR command */ |
| #ifndef NOSPL |
| { "alarm", CLR_ALR, 0 }, |
| #ifdef CK_APC |
| { "apc", CLR_APC, 0 }, |
| #endif /* CK_APC */ |
| #ifdef PATTERNS |
| { "binary-patterns", CLR_BIN, 0 }, |
| #endif /* PATTERNS */ |
| { "both", CLR_DEV|CLR_INP, CM_INV }, |
| #endif /* NOSPL */ |
| #ifdef OS2 |
| { "command-screen", CLR_CMD, 0 }, |
| #endif /* OS2 */ |
| #ifndef NOSPL |
| { "device", CLR_DEV, CM_INV|CM_ABR }, |
| { "device-and-input", CLR_DEV|CLR_INP, 0 }, |
| #endif /* NOSPL */ |
| { "device-buffer", CLR_DEV, 0 }, |
| #ifndef NODIAL |
| { "dial-status", CLR_DIA, 0 }, |
| #endif /* NODIAL */ |
| #ifndef NOSPL |
| { "input-buffer", CLR_INP, 0 }, |
| #endif /* NOSPL */ |
| { "keyboard-buffer", CLR_KBD, 0 }, |
| { "send-list", CLR_SFL, 0 }, |
| #ifdef OS2 |
| { "scr", CLR_SCL, CM_INV|CM_ABR }, |
| #endif /* OS2 */ |
| { "screen", CLR_SCR, 0 }, |
| #ifdef OS2 |
| { "scrollback", CLR_SCL, CM_INV }, |
| { "terminal-screen", CLR_TRM, 0 }, |
| #endif /* OS2 */ |
| #ifdef PATTERNS |
| { "text-patterns", CLR_TXT, 0 }, |
| #endif /* PATTERNS */ |
| { "", 0, 0 } |
| }; |
| int nclear = (sizeof(clrtab) / sizeof(struct keytab)) - 1; |
| |
| struct keytab clstab[] = { /* Keywords for CLOSE command */ |
| #ifndef NOSPL |
| { "!read", LOGR, CM_INV }, |
| { "!write", LOGW, CM_INV }, |
| #ifndef NOPUSH |
| #endif /* NOPUSH */ |
| #endif /* NOSPL */ |
| #ifndef NOSPL |
| { "append-file", LOGW, CM_INV }, |
| #endif /* NOSPL */ |
| #ifndef NOLOCAL |
| { "connection", 9999, 0 }, |
| #endif /* NOLOCAL */ |
| #ifdef CKLOGDIAL |
| { "cx-log", LOGM, 0 }, |
| #endif /* CKLOGDIAL */ |
| #ifdef DEBUG |
| { "debug-log", LOGD, 0 }, |
| #endif /* DEBUG */ |
| { "host", 9999, CM_INV }, /* Synonym for CLOSE CONNECTION */ |
| { "line", 9999, CM_INV }, /* Synonym for CLOSE CONNECTION */ |
| { "p", LOGP, CM_INV|CM_ABR }, |
| { "packet-log", LOGP, 0 }, |
| { "port", 9999, CM_INV }, /* Synonym for CLOSE CONNECTION */ |
| #ifndef NOSPL |
| { "read-file", LOGR, 0 }, |
| #endif /* NOSPL */ |
| #ifndef NOLOCAL |
| { "session-log", LOGS, 0 }, |
| #endif /* NOLOCAL */ |
| #ifdef TLOG |
| { "t", LOGT, CM_ABR|CM_INV }, /* Because of a typo in */ |
| { "tr", LOGT, CM_ABR|CM_INV }, /* the book... */ |
| { "tra", LOGT, CM_ABR|CM_INV }, |
| { "tran", LOGT, CM_ABR|CM_INV }, |
| { "trans", LOGT, CM_ABR|CM_INV }, |
| { "transa", LOGT, CM_ABR|CM_INV }, |
| { "transac", LOGT, CM_ABR|CM_INV }, |
| { "transact", LOGT, CM_ABR|CM_INV }, |
| { "transacti", LOGT, CM_ABR|CM_INV }, |
| { "transactio", LOGT, CM_ABR|CM_INV }, |
| { "transaction", LOGT, CM_ABR|CM_INV }, |
| { "transaction-log", LOGT, 0 }, |
| { "transactions", LOGT, CM_INV }, |
| #endif /* TLOG */ |
| #ifndef NOSPL |
| { "write-file", LOGW, 0 }, |
| #endif /* NOSPL */ |
| { "", 0, 0 } |
| }; |
| int ncls = (sizeof(clstab) / sizeof(struct keytab)) - 1; |
| |
| /* SHOW command arguments */ |
| |
| #ifndef NOSHOW |
| struct keytab shotab[] = { |
| #ifndef NOSPL |
| { "alarm", SHALRM, 0 }, |
| { "arg", SHARG, CM_INV|CM_ABR }, |
| { "arguments", SHARG, 0 }, |
| { "args", SHARG, CM_INV }, |
| { "arrays", SHARR, 0 }, |
| #endif /* NOSPL */ |
| |
| #ifndef NOCSETS |
| { "associations", SHASSOC, 0 }, |
| #endif /* NOCSETS */ |
| |
| #ifndef NOXFER |
| { "attributes", SHATT, 0 }, |
| #endif /* NOXFER */ |
| |
| #ifdef CK_AUTHENTICATION |
| { "authentication", SHOAUTH, CM_INV }, |
| #endif /* CK_AUTHENTICATION */ |
| |
| #ifndef NOPUSH |
| #ifdef BROWSER |
| { "browser", SHBROWSE, CM_PSH|CM_LOC }, |
| #endif /* BROWSER */ |
| #endif /* NOPUSH */ |
| { "cd", SHCD, 0 }, |
| { "character-sets", SHCSE, 0 }, |
| { "cmd", SHCMD, CM_INV }, |
| #ifndef NOLOCAL |
| { "com", SHCOM, CM_INV|CM_ABR }, |
| { "comm", SHCOM, CM_INV|CM_ABR }, |
| { "communications", SHCOM, 0 }, |
| #endif /* NOLOCAL */ |
| { "command", SHCMD, 0 }, |
| { "connection", SHCONNX, 0 }, |
| #ifdef CK_SPEED |
| { "control-prefixing", SHCTL, 0 }, |
| #endif /* CK_SPEED */ |
| #ifdef CKLOGDIAL |
| { "cx", SHCONNX, CM_INV }, |
| #endif /* CKLOGDIAL */ |
| #ifndef NOSPL |
| { "count", SHCOU, 0 }, |
| #endif /* NOSPL */ |
| { "d", SHDIA, CM_INV|CM_ABR }, |
| #ifdef VMS |
| { "default", SHDFLT, 0 }, |
| #else |
| { "default", SHDFLT, CM_INV }, |
| #endif /* VMS */ |
| #ifndef NODIAL |
| { "dial", SHDIA, CM_LOC }, |
| #endif /* NODIAL */ |
| { "double/ignore",SHDBL, 0 }, |
| #ifndef NOPUSH |
| #ifndef NOFRILLS |
| { "editor", SHEDIT, CM_PSH }, |
| #endif /* NOFRILLS */ |
| #endif /* NOPUSH */ |
| #ifndef NOLOCAL |
| { "escape", SHESC, CM_LOC }, |
| #endif /* NOLOCAL */ |
| { "exit", SHEXI, 0 }, |
| { "extended-options", SHXOPT, CM_INV }, |
| { "features", SHFEA, 0 }, |
| { "file", SHFIL, 0 }, |
| #ifndef NOLOCAL |
| { "flow-control", SHOFLO, 0 }, |
| #endif /* NOLOCAL */ |
| #ifdef BROWSER |
| { "ftp", SHOFTP, CM_PSH|CM_LOC }, |
| #else |
| #ifndef NOFTP |
| #ifndef SYSFTP |
| #ifdef TCPSOCKET |
| { "ftp", SHOFTP, 0 }, /* (built-in ftp) */ |
| #endif /* TCPSOCKET */ |
| #endif /* SYSFTP */ |
| #endif /* NOFTP */ |
| #endif /* BROWSER */ |
| #ifndef NOSPL |
| { "functions", SHFUN, 0 }, |
| { "globals", SHVAR, 0 }, |
| #endif /* NOSPL */ |
| #ifdef KUI |
| { "gui", SHOGUI, 0 }, |
| #endif /* KUI */ |
| #ifdef CK_RECALL |
| { "history", SHHISTORY, 0 }, |
| #endif /* CK_RECALL */ |
| { "ignore/double",SHDBL, CM_INV }, |
| { "iksd", SHOIKS, CM_INV }, |
| #ifndef NOSPL |
| { "input", SHINP, 0 }, |
| #endif /* NOSPL */ |
| #ifndef NOSETKEY |
| { "k", SHKEY, CM_INV|CM_ABR }, |
| { "key", SHKEY, 0 }, |
| #ifndef NOKVERBS |
| { "kverbs",
|