📄 ckuus5.c
字号:
#include "ckcsym.h"#ifdef NOICPint cmdsrc() { return(0); }#endif /* NOICP */#ifndef NOICP/* C K U U S 5 -- "User Interface" for C-Kermit, part 5 *//* Author: Frank da Cruz <fdc@columbia.edu>, Columbia University Academic Information Systems, New York City. Copyright (C) 1985, 2000, 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.*//* Includes */#include "ckcdeb.h"#include "ckcasc.h"#include "ckcker.h"#include "ckuusr.h"#include "ckcnet.h"#ifndef NOCSETS#include "ckcxla.h"#endif /* NOCSETS */#ifdef MAC#include "ckmasm.h"#endif /* MAC */#ifdef CK_SSL#include "ck_ssl.h"#endif /* CK_SSL */#ifdef OS2#include "ckoetc.h"#ifndef NT#define INCL_NOPM#define INCL_VIO /* Needed for ckocon.h */#include <os2.h>#undef COMMENT#else /* NT */#include <windows.h>#define TAPI_CURRENT_VERSION 0x00010004#include <tapi.h>#include <mcx.h>#include "ckntap.h"#define APIRET ULONGextern int DialerHandle;extern int StartedFromDialer;#endif /* NT */#include "ckocon.h"#include "ckokey.h"#ifdef putchar#undef putchar#endif /* putchar */#define putchar(x) conoc(x)extern int cursor_save ;extern bool cursorena[] ;#endif /* OS2 *//* For formatted screens, "more?" prompting, etc. */#ifdef FT18#define isxdigit(c) isdigit(c)#endif /* FT18 */#ifdef STRATUS /* Stratus Computer, Inc. VOS */#ifdef putchar#undef putchar#endif /* putchar */#define putchar(x) conoc(x)#ifdef getchar#undef getchar#endif /* getchar */#define getchar(x) coninc(0)#endif /* STRATUS *//* External variables */extern int carrier, cdtimo, local, quiet, backgrd, bgset, sosi, suspend, binary, escape, xargs, flow, cmdmsk, duplex, ckxech, seslog, what, inserver, diractive, tlevel, cwdf, nfuncs, msgflg, remappd, hints, mdmtyp, zincnt, cmask, rcflag, success, xitsta, pflag, tnlm, tn_nlm, xitwarn, debses, xaskmore, parity, saveask, wasclosed, whyclosed;#ifdef CK_SPEEDextern int prefixing;#endif /* CK_SPEED */extern int g_matchdot;#ifdef RECURSIVEextern int recursive;#endif /* RECURSIVE */#ifdef IKSDCONFextern char * iksdconf;#endif /* IKSDCONF */extern int ngetpath, exitonclose;extern char * getpath[];extern CHAR * epktmsg;extern char * snd_move;extern char * snd_rename;extern char * rcv_move;extern char * rcv_rename;extern char * g_snd_move;extern char * g_snd_rename;extern char * g_rcv_move;extern char * g_rcv_rename;extern char * nm[];#ifdef CK_UTSNAMEextern char unm_mch[];extern char unm_mod[];extern char unm_nam[];extern char unm_rel[];extern char unm_ver[];#endif /* CK_UTSNAME */#ifndef NOPUSH#ifndef NOFRILLSextern char editor[];extern char editfile[];extern char editopts[];#ifdef BROWSERextern char browser[];extern char browsopts[];extern char browsurl[];#endif /* BROWSER */#endif /* NOFRILLS */#endif /* NOPUSH */#ifndef NOSERVERextern char * x_user, * x_passwd, * x_acct;#endif /* NOSERVER */#ifdef CKLOGDIALextern int dialog;extern char diafil[];#endif /* CKLOGDIAL */#ifndef NOSPLextern int cfilef, xxdot;extern char cmdfil[];struct localvar * localhead[CMDSTKL];struct localvar * localtail = NULL;struct localvar * localnext = NULL;_PROTOTYP( static VOID shoinput, (void) );_PROTOTYP( static char gettok, (void) );_PROTOTYP( static VOID factor, (void) );_PROTOTYP( static VOID term, (void) );_PROTOTYP( static VOID termp, (void) );_PROTOTYP( static VOID exprp, (void) );_PROTOTYP( static VOID expr, (void) );_PROTOTYP( static VOID simple, (void) );_PROTOTYP( static VOID simpler, (void) );_PROTOTYP( static VOID simplest, (void) );_PROTOTYP( static long xparse, (void) );#endif /* NOSPL */#ifdef MACchar * ckprompt = "Mac-Kermit>"; /* Default prompt for Macintosh */char * ikprompt = "IKSD>";#else /* Not MAC */#ifdef NOSPL#ifdef OS2char * ckprompt = "K-95> "; /* Default prompt for Win32 */char * ikprompt = "IKSD> ";#elsechar * ckprompt = "C-Kermit>";char * ikprompt = "IKSD>";#endif /* NT */#else /* NOSPL */#ifdef OS2/* Default prompt for OS/2 and Win32 */char * ckprompt = "[\\freplace(\\v(dir),/,\\\\)] K-95> ";char * ikprompt = "[\\freplace(\\v(dir),/,\\\\)] IKSD> ";#else#ifdef VMSchar * ckprompt = "\\v(dir) C-Kermit>"; /* Default prompt VMS */char * ikprompt = "\\v(dir) IKSD>";#elsechar * ckprompt = "(\\v(dir)) C-Kermit>"; /* Default prompt for others */char * ikprompt = "(\\v(dir)) IKSD>";#endif /* VMS */#endif /* NT */#endif /* NOSPL */#endif /* MAC */#ifndef CCHMAXPATH#define CCHMAXPATH 257#endif /* CCHMAXPATH */char inidir[CCHMAXPATH] = { NUL, NUL }; /* Directory INI file executed from */#ifdef TNCODEextern int tn_b_nlm; /* TELNET BINARY newline mode */#endif /* TNCODE */#ifndef NOKVERBSextern struct keytab kverbs[]; /* Table of \Kverbs */extern int nkverbs; /* Number of \Kverbs */#endif /* NOKVERBS */#ifndef NOPUSHextern int nopush;#endif /* NOPUSH */#ifdef CK_RECALLextern int cm_recall;#endif /* CK_RECALL */extern char *ccntab[];/* Printer stuff */extern char *printername;extern int printpipe;#ifdef BPRINTextern int printbidi, pportparity, pportflow;extern long pportspeed;#endif /* BPRINT */#ifdef OS2_PROTOTYP (int os2getcp, (void) );_PROTOTYP (int os2getcplist, (int *, int) );#ifdef OS2MOUSEextern int tt_mouse;#endif /* OS2MOUSE */extern int tt_update, tt_updmode, tt_font, updmode;extern struct keytab termfont[];extern int ntermfont;extern unsigned char colornormal, colorunderline, colorstatus, colorhelp, colorselect, colorborder, colorgraphic, colordebug, colorreverse, colorcmd;extern int priority;extern struct keytab prtytab[];extern int nprty;char * cmdmac = NULL;#endif /* OS2 */#ifdef VMS_PROTOTYP (int zkermini, (char *, int, char *) );#endif /* VMS */extern long vernum;extern int inecho, insilence, inbufsize, nvars, inintr;extern char *protv, *fnsv, *cmdv, *userv, *ckxv, *ckzv, *ckzsys, *xlav, *cknetv, *clcmds;#ifdef CK_AUTHENTICATIONextern char * ckathv;#endif /* CK_AUTHENTICATION */#ifdef CK_SSLextern char * cksslv;#endif /* CK_SSL */#ifdef CK_ENCRYPTION#ifndef CRYPT_DLLextern char * ckcrpv;#endif /* CRYPT_DLL */#endif /* CK_ENCRYPTION */#ifdef TNCODEextern char *cktelv;#endif /* TNCODE */extern int srvidl;#ifdef OS2extern char *ckonetv;extern int interm;#ifdef CK_NETBIOSextern char *ckonbiv;#endif /* CK_NETBIOS */#ifdef OS2MOUSEextern char *ckomouv;#endif /* OS2MOUSE */#endif /* OS2 */#ifndef NOLOCALextern char *connv;#endif /* NOLOCAL */#ifndef NODIALextern char *dialv;#endif /* NODIAL */#ifndef NOSCRIPTextern char *loginv;extern int secho;#endif /* NOSCRIPT */#ifndef NODIALextern int nmdm, dirline;extern struct keytab mdmtab[];#endif /* NODIAL */extern int network, ttnproto;#ifdef OS2/* SET TERMINAL items... */extern int tt_type, tt_arrow, tt_keypad, tt_wrap, tt_answer, tt_scrsize[];extern int tt_bell, tt_roll[], tt_ctstmo, tt_cursor, tt_pacing, tt_type_mode;extern char answerback[];extern struct tt_info_rec tt_info[]; /* Indexed by terminal type */extern int max_tt;#endif /* OS2 */_PROTOTYP( VOID shotrm, (void) );_PROTOTYP( int shofea, (void) );#ifdef OS2extern int tt_rows[], tt_cols[];#else /* OS2 */extern int tt_rows, tt_cols;#endif /* OS2 */extern int cmd_rows, cmd_cols;#ifdef CK_TMPDIRextern int f_tmpdir; /* Directory changed temporarily */extern char savdir[]; /* Temporary directory */#endif /* CK_TMPDIR */#ifndef NOLOCALextern int tt_crd, tt_escape;#endif /* NOLOCAL */#ifndef NOCSETSextern int language, nfilc, tcsr, tcsl, tcs_transp, fcharset;extern struct keytab fcstab[];extern struct csinfo fcsinfo[];#ifndef MACextern struct keytab ttcstab[];#endif /* MAC */#endif /* NOCSETS */extern long speed;#ifndef NOXMITextern int xmitf, xmitl, xmitp, xmitx, xmits, xmitw, xmitt;extern char xmitbuf[];#endif /* NOXMIT */extern char **xargv, *versio, *ckxsys, *dftty, *lp;#ifdef DCMDBUFextern char *cmdbuf, *atmbuf; /* Command buffers */#ifndef NOSPLextern char *savbuf; /* Command buffers */#endif /* NOSPL */#elseextern char cmdbuf[], atmbuf[]; /* Command buffers */#ifndef NOSPLextern char savbuf[]; /* Command buffers */#endif /* NOSPL */#endif /* DCMDBUF */extern char toktab[], ttname[], psave[];extern CHAR sstate, feol;extern int cmflgs, techo, repars, ncmd;extern struct keytab cmdtab[];#ifndef NOSETKEYKEY *keymap;#ifndef OS2#define mapkey(x) keymap[x]#endif /* OS2 */MACRO *macrotab;_PROTOTYP( VOID shostrdef, (CHAR *) );#endif /* NOSETKEY */extern int cmdlvl;#ifndef NOSPLextern struct mtab *mactab;extern struct keytab mackey[];extern struct keytab vartab[], fnctab[];extern int maclvl, nmac, mecho, fndiags, fnerror, fnsuccess;#endif /* NOSPL */FILE *tfile[MAXTAKE]; /* TAKE file stack */char *tfnam[MAXTAKE];int tfline[MAXTAKE];int topcmd = -1; /* cmdtab index of current command */#ifdef DCMDBUF /* Initialization filespec */char *kermrc = NULL;#elsechar kermrcb[KERMRCL];char *kermrc = kermrcb;#endif /* DCMDBUF */int noherald = 0;int cm_retry = 1; /* Command retry enabled */xx_strp xxstring = zzstring;#ifndef NOXFERextern int displa, bye_active, protocol, pktlog, remfile, rempipe, unkcs, keep, lf_opts, fncnv, pktpaus, autodl, xfrcan, xfrchr, xfrnum, srvtim, srvdis, query, retrans, streamed, reliable, crunched, timeouts, fnrpath, autopath, rpackets, spackets, epktrcvd, srvping;#ifdef CK_AUTODLextern int inautodl, cmdadl;#endif /* CK_AUTODL */#ifndef NOSERVERextern int en_asg, en_cwd, en_cpy, en_del, en_dir, en_fin, en_bye, en_ret, en_get, en_hos, en_que, en_ren, en_sen, en_set, en_spa, en_typ, en_who, en_mai, en_pri, en_mkd, en_rmd, en_xit, en_ena;#endif /* NOSERVER */extern int atcapr, atenci, atenco, atdati, atdato, atleni, atleno, atblki, atblko, attypi, attypo, atsidi, atsido, atsysi, atsyso, atdisi, atdiso;#ifdef STRATUSextern int atfrmi, atfrmo, atcrei, atcreo, atacti, atacto;#endif /* STRATUS */#ifdef CK_PERMSextern int atlpri, atlpro, atgpri, atgpro;#endif /* CK_PERMS */#ifdef CK_LOGINextern char * anonfile; /* Anonymous login init file */extern char * anonroot; /* Anonymous file-system root */extern char * userfile; /* Forbidden user file */extern int isguest; /* Flag for anonymous user */#endif /* CK_LOGIN */#endif /* NOXFER */#ifdef DCMDBUFint *xquiet = NULL;#elseint xquiet[CMDSTKL];#endif /* DCMDBUF */#ifndef NOSPLextern long ck_alarm;extern char alrm_date[], alrm_time[];/* Local declarations */static int nulcmd = 0; /* Flag for next cmd to be ignored *//* Definitions for predefined macros *//* First, the single-line macros, installed with addmac()... *//* IBM-LINEMODE macro */char *m_ibm = "set parity mark, set dupl half, set handsh xon, set flow none";/* FATAL macro */char *m_fat = "if def \\%1 echo \\%1, if not = \\v(local) 0 hangup, stop 1";#ifdef CK_SPEED#ifdef IRIX65char *m_fast = "set win 30, set rec pack 4000, set prefix cautious";#else#ifdef IRIX/* Because of bug in telnet server */char *m_fast = "set window 30, set rec pack 4000, set send pack 4000,\ set pref cautious";#else#ifdef pdp11char *m_fast = "set win 3, set rec pack 1024, set prefix cautious";#else#ifdef BIGBUFOKchar *m_fast = "set win 30, set rec pack 4000, set prefix cautious";#elsechar *m_fast = "set win 4, set rec pack 2200, set prefix cautious";#endif /* BIGBUFOK */#endif /* IRIX */#endif /* IRIX65 */#endif /* pdp11 */#ifdef pdp11
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -