📄 ckuus6.c
字号:
#define XXIFEX 2 /* IF EXIST */#define XXIFFA 3 /* IF FAILURE */#define XXIFSU 4 /* IF SUCCESS */#define XXIFNO 5 /* IF NOT */#define XXIFDE 6 /* IF DEFINED */#define XXIFEQ 7 /* IF EQUAL (strings) */#define XXIFAE 8 /* IF = (numbers) */#define XXIFLT 9 /* IF < (numbers) */#define XXIFGT 10 /* IF > (numbers) */#define XXIFLL 11 /* IF Lexically Less Than (strings) */#define XXIFLG 12 /* IF Lexically Greater Than (strings) */#define XXIFEO 13 /* IF EOF (READ file) */#define XXIFBG 14 /* IF BACKGROUND */#define XXIFNU 15 /* IF NUMERIC */#define XXIFFG 16 /* IF FOREGROUND */#define XXIFDI 17 /* IF DIRECTORY */#define XXIFNE 18 /* IF NEWER */#define XXIFRO 19 /* IF REMOTE-ONLY */#define XXIFAL 20 /* IF ALARM */#define XXIFSD 21 /* IF STARTED-FROM-DIALER */#define XXIFTR 22 /* IF TRUE */#define XXIFNT 23 /* IF FALSE */#define XXIFTM 24 /* IF TERMINAL-MACRO */#define XXIFEM 25 /* IF EMULATION */#define XXIFOP 26 /* IF OPEN */#define XXIFLE 27 /* IF <= */#define XXIFGE 28 /* IF >= */#define XXIFIP 29 /* IF INPATH */#define XXIFTA 30 /* IF TAPI */#define XXIFMA 31 /* IF MATCH */#define XXIFFL 32 /* IF FLAG */#define XXIFAB 33 /* IF ABSOLUTE */#define XXIFAV 34 /* IF AVAILABLE */#define XXIFAT 35 /* IF ASKTIMEOUT */#define XXIFRD 36 /* IF READABLE */#define XXIFWR 37 /* IF WRITEABLE */#define XXIFAN 38 /* IF ... AND ... */#define XXIFOR 39 /* IF ... OR ... */#define XXIFLP 40 /* IF left parenthesis */#define XXIFRP 41 /* IF right parenthesis */#define XXIFNQ 42 /* IF != (== "NOT =") */#define XXIFQU 43 /* IF QUIET */#define XXIFCK 44 /* IF C-KERMIT */#define XXIFK9 45 /* IF K-95 */#define XXIFMS 46 /* IF MS-KERMIT */#define XXIFWI 47 /* IF WILD */#define XXIFLO 48 /* IF LOCAL */#define XXIFCM 49 /* IF COMMAND */#define XXIFFP 50 /* IF FLOAT */#define XXIFIK 51 /* IF IKS */#define XXIFKB 52 /* IF KBHIT */#define XXIFKG 53 /* IF KERBANG */#define XXIFVE 54 /* IF VERSION */#define XXIFDC 55 /* IF DECLARED */#define XXIFGU 56 /* IF GUI */struct keytab iftab[] = { /* IF commands */ { "!", XXIFNO, 0 }, { "!=", XXIFNQ, 0 }, { "&&", XXIFAN, 0 }, { "(", XXIFLP, 0 }, { ")", XXIFRP, 0 }, { "<", XXIFLT, 0 }, { "<=", XXIFLE, 0 }, { "=", XXIFAE, 0 }, { "==", XXIFAE, CM_INV }, { ">", XXIFGT, 0 }, { ">=", XXIFGE, 0 }, { "absolute", XXIFAB, 0 }, { "alarm", XXIFAL, 0 }, { "and", XXIFAN, 0 }, { "asktimeout", XXIFAT, 0 }, { "available", XXIFAV, 0 }, { "background", XXIFBG, 0 }, { "c-kermit", XXIFCK, 0 }, { "command", XXIFCM, 0 }, { "count", XXIFCO, 0 }, { "dcl", XXIFDC, CM_INV }, { "declared", XXIFDC, 0 }, { "defined", XXIFDE, 0 },#ifdef CK_TMPDIR { "directory", XXIFDI, 0 },#endif /* CK_TMPDIR */ { "emulation", XXIFEM, 0 },#ifdef COMMENT { "eof", XXIFEO, 0 },#endif /* COMMENT */ { "equal", XXIFEQ, 0 }, { "error", XXIFFA, CM_INV }, { "exist", XXIFEX, 0 }, { "failure", XXIFFA, 0 }, { "false", XXIFNT, 0 }, { "flag", XXIFFL, 0 },#ifdef CKFLOAT { "float", XXIFFP, 0 },#endif /* CKFLOAT */ { "foreground", XXIFFG, 0 },#ifdef OS2 { "gui", XXIFGU, 0 },#else { "gui", XXIFGU, CM_INV },#endif /* OS2 */#ifdef IKSD { "iksd", XXIFIK, 0 },#else { "iksd", XXIFIK, CM_INV },#endif /* IKSD */ { "integer", XXIFNU, CM_INV }, { "k-95", XXIFK9, 0 }, { "kbhit", XXIFKB, 0 },#ifdef UNIX { "kerbang", XXIFKG, 0 },#else { "kerbang", XXIFKG, CM_INV },#endif /* UNIX */ { "lgt", XXIFLG, 0 }, { "llt", XXIFLL, 0 }, { "local", XXIFLO, 0 }, { "match", XXIFMA, 0 }, { "ms-kermit", XXIFMS, CM_INV },#ifdef ZFCDAT { "newer", XXIFNE, 0 },#endif /* ZFCDAT */ { "not", XXIFNO, 0 }, { "numeric", XXIFNU, 0 }, { "ok", XXIFSU, CM_INV }, { "open", XXIFOP, 0 }, { "or", XXIFOR, 0 }, { "quiet", XXIFQU, 0 }, { "readable", XXIFRD, 0 }, { "remote-only",XXIFRO, 0 }, { "started-from-dialer",XXIFSD, CM_INV }, { "success", XXIFSU, 0 }, { "tapi", XXIFTA, 0 },#ifdef OS2 { "terminal-macro", XXIFTM, 0 },#else { "terminal-macro", XXIFTM, CM_INV },#endif /* OS2 */ { "true", XXIFTR, 0 }, { "version", XXIFVE, 0 }, { "wild", XXIFWI, 0 }, { "writeable", XXIFWR, 0 }, { "||", XXIFOR, 0 }, { "", 0, 0 }};int nif = (sizeof(iftab) / sizeof(struct keytab)) - 1;struct keytab iotab[] = { /* Keywords for IF OPEN */ { "!read-file", ZRFILE, CM_INV }, { "!write-file", ZWFILE, CM_INV }, { "append-file", ZWFILE, CM_INV }, { "connection", 8888, 0 },#ifdef CKLOGDIAL { "cx-log", 7777, 0 },#endif /* CKLOGDIAL */ { "debug-log", ZDFILE, 0 }, { "error", 9999, 0 }, { "packet-log", ZPFILE, 0 }, { "read-file", ZRFILE, 0 }, { "screen", ZSTDIO, 0 }, { "session-log", ZSFILE, 0 }, { "transaction-log", ZTFILE, 0 }, { "write-file", ZWFILE, 0 }};int niot = (sizeof(iotab) / sizeof(struct keytab));#endif /* NOSPL *//* Variables and prototypes */#ifdef NETCONNextern int nnetdir; /* How many network directories */#endif /* NETCONN */#ifdef CK_SECURITY_PROTOTYP(int ck_krb4_is_installed,(void));_PROTOTYP(int ck_krb5_is_installed,(void));_PROTOTYP(int ck_ntlm_is_installed,(void));_PROTOTYP(int ck_srp_is_installed,(void));_PROTOTYP(int ck_ssleay_is_installed,(void));_PROTOTYP(int ck_ssh_is_installed,(void));_PROTOTYP(int ck_crypt_is_installed,(void));#else#define ck_krb4_is_installed() (0)#define ck_krb5_is_installed() (0)#define ck_ntlm_is_installed() (0)#define ck_srp_is_installed() (0)#define ck_ssleay_is_installed() (0)#define ck_ssh_is_installed() (0)#define ck_crypt_is_installed() (0)#endif /* CK_SECURITY */#define AV_KRB4 1#define AV_KRB5 2#define AV_NTLM 3#define AV_SRP 4#define AV_SSL 5#define AV_CRYPTO 6#define AV_SSH 7struct keytab availtab[] = { /* Available authentication types */ { "crypto", AV_CRYPTO, CM_INV }, /* and encryption */ { "encryption", AV_CRYPTO, 0 }, { "k4", AV_KRB4, CM_INV }, { "k5", AV_KRB5, CM_INV }, { "kerberos4", AV_KRB4, 0 }, { "kerberos5", AV_KRB5, 0 }, { "krb4", AV_KRB4, CM_INV }, { "krb5", AV_KRB5, CM_INV }, { "ntlm", AV_NTLM, 0 }, { "srp", AV_SRP, 0 }, { "ssh", AV_SSH, 0 }, { "ssl", AV_SSL, 0 }, { "tls", AV_SSL, 0 }, { "", 0, 0 }};int availtabn = sizeof(availtab)/sizeof(struct keytab)-1;#ifndef NODIAL_PROTOTYP(static int ddcvt, (char *, FILE *, int) );_PROTOTYP(static int dncvt, (int, int, int, int) );_PROTOTYP(char * getdname, (void) );static int partial = 0; /* For partial dial */static char *dscopy = NULL;int dialtype = -1;char *dialnum = (char *)0; /* Remember DIAL number for REDIAL */int dirline = 0; /* Dial directory line number */extern char * dialdir[]; /* Dial directory file names */extern int dialdpy; /* DIAL DISPLAY on/off */extern int ndialdir; /* How many dial directories */extern int ntollfree; /* Toll-free call info */extern int ndialpxx; /* List of PBX exchanges */extern char *dialtfc[];char * matchpxx = NULL; /* PBX exchange that matched */extern int nlocalac; /* Local area-code list */extern char * diallcac[];extern int tttapi;#ifdef CK_TAPIextern int tapiconv; /* TAPI Conversions */extern int tapipass; /* TAPI Passthrough */#endif /* CK_TAPI */extern int dialatmo;extern char * dialnpr, * dialsfx;extern char * dialixp, * dialixs, * dialmac;extern char * dialldp, * diallds, * dialtfp;extern char * dialpxi, * dialpxo, * diallac;extern char * diallcp, * diallcs, * diallcc;extern char * dialpxx[];extern int dialcnf; /* DIAL CONFIRMATION */int dialfld = 0; /* DIAL FORCE-LONG-DISTANCE */int dialsrt = 1; /* DIAL SORT ON */int dialrstr = 6; /* DIAL RESTRICTION */int dialtest = 0; /* DIAL TEST */int dialcount = 0; /* \v(dialcount) */extern int dialsta; /* Dial status */int dialrtr = -1, /* Dial retries */ dialint = 10; /* Dial retry interval */extern long dialcapas; /* Modem capabilities */extern int dialcvt; /* DIAL CONVERT-DIRECTORY */#endif /* NODIAL */#ifndef NOSPL#define IFCONDLEN 256int ifc, /* IF case */ not = 0, /* Flag for IF NOT */ ifargs = 0; /* Count of IF condition words */char ifcond[IFCONDLEN]; /* IF condition text */char *ifcp; /* Pointer to IF condition text */#ifdef DCMDBUFextern int *ifcmd, *count, *iftest, *intime, *inpcas, *takerr, *merror, *xquiet;#elseextern int ifcmd[]; /* Last command was IF */extern int iftest[]; /* Last IF was true */extern int count[]; /* For IF COUNT, one for each cmdlvl */extern int intime[]; /* Ditto for other stackables... */extern int inpcas[];extern int takerr[];extern int merror[];extern int xquiet[];#endif /* DCMDBUF */#elseextern int takerr[];#endif /* NOSPL */#ifdef DCMDBUFextern char *line; /* Character buffer for anything */extern char *tmpbuf;#elseextern char line[], tmpbuf[];#endif /* DCMDBUF */extern char *lp; /* Pointer to line buffer */int cwdf = 0; /* CWD has been done *//* Flags for ENABLE/DISABLE */extern int en_cwd, en_cpy, en_del, en_dir, en_fin, en_get, en_hos, en_ren, en_sen, en_set, en_spa, en_typ, en_who, en_bye, en_asg, en_que, en_ret, en_mai, en_pri, en_mkd, en_rmd, en_xit, en_ena;extern FILE *tfile[]; /* File pointers for TAKE command */extern char *tfnam[]; /* Names of TAKE files */extern int tfline[]; /* TAKE-file line number */extern int success; /* Command success/failure flag */extern int cmdlvl; /* Current position in command stack */#ifndef NOSPLextern int maclvl; /* Macro to execute */extern char *macx[]; /* Index of current macro */extern char *mrval[]; /* Macro return value */extern char *macp[]; /* Pointer to macro */extern int macargc[]; /* ARGC from macro invocation */#ifdef COMMENTextern char *m_line[];#endif /* COMMENT */extern char *m_arg[MACLEVEL][NARGS]; /* Stack of macro arguments */extern char *g_var[]; /* Global variables %a, %b, etc */#ifdef DCMDBUFextern struct cmdptr *cmdstk; /* The command stack itself */#elseextern struct cmdptr cmdstk[]; /* The command stack itself */#endif /* DCMDBUF */#endif /* NOSPL */#define xsystem(s) zsyscmd(s)static int x, y, z = 0;static char *s, *p;#ifdef OS2_PROTOTYP( int os2settitle, (char *, int) );#endif /* OS2 */extern struct keytab yesno[], onoff[], fntab[];extern int nyesno, nfntab;#ifndef NOSPL/* Do the ASK, ASKQ, GETOK, and READ commands */int asktimedout = 0;#define ASK_PUP 1#define ASK_TMO 2#define ASK_GUI 3#define ASK_QUI 4#define ASK_DEF 5static struct keytab asktab[] = { { "/default", ASK_DEF, CM_ARG }, { "/gui", ASK_GUI, #ifdef KUI 0#else /* KUI */ CM_INV#endif /* KUI */ }, { "/popup", ASK_PUP, #ifdef OS2 0#else /* OS2 */ CM_INV#endif /* OS2 */ }, { "/quiet", ASK_QUI, 0 }, { "/timeout", ASK_TMO, CM_ARG }, { "", 0, 0 }};static int nasktab = sizeof(asktab)/sizeof(struct keytab)-1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -