📄 ckuus4.c
字号:
#include "ckcsym.h"/* C K U U S 4 -- "User Interface" for C-Kermit, part 4 *//* 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.*//* File ckuus4.c -- Functions moved from other ckuus*.c modules to even out their sizes.*/#include "ckcdeb.h"#include "ckcasc.h"#include "ckcker.h"#include "ckcnet.h" /* Network symbols */#include "ckuusr.h"#include "ckuver.h"#include "ckcxla.h" /* Character sets */#ifdef CK_AUTHENTICATION#include "ckuath.h"#endif /* CK_AUTHENTICATION */#ifdef CK_SSL#include "ck_ssl.h"#endif /* CK_SSL */#ifdef VMS#include <errno.h> /* For \v(errno) */extern char * ckvmserrstr(unsigned long);#ifndef OLD_VMS#include <lib$routines.h> /* Not for VAX C 2.4 */#else#include <libdef.h>#endif /* OLD_VMS */_PROTOTYP(int vmsttyfd, (void) );#endif /* VMS */#ifdef OS2#ifndef NT#define INCL_NOPM#define INCL_VIO /* Needed for ckocon.h */#include <os2.h>#undef COMMENT#else#include <windows.h>#include <tapi.h>#include "ckntap.h"#define APIRET ULONG#endif /* NT */#include "ckocon.h"#include "ckoetc.h"int StartedFromDialer = 0;HWND hwndDialer = 0;LONG KermitDialerID = 0;#ifdef putchar#undef putchar#endif /* putchar */#define putchar(x) conoc(x)#ifdef CK_PID#include <process.h>#endif /* CK_PID */#endif /* OS2 */#ifdef KUIextern struct keytab * term_font;extern int ntermfont, tt_font, tt_font_size;#endif /* KUI */extern xx_strp xxstring;#ifdef DEC_TCPIP#include <descrip>#include <dvidef>#include <dcdef>#endif /* DEC_TCPIP */#ifdef FNFLOAT#include <math.h> /* Floating-point functions */#endif /* FNFLOAT */extern int quiet, network, xitsta, escape, nopush, xferstat, exitonclose, tn_exit, ttnproto, autodl, flow, byteorder, what, lastxfer;extern int filepeek, nscanfile, makestrlen;extern char * k_info_dir;#ifndef MAC#ifndef AMIGAextern int ttyfd;#endif /* MAC */#endif /* AMIGA */#ifdef TNCODEextern int tn_nlm, tn_b_nlm, tn_b_xfer, tn_sb_bug;extern int tn_rem_echo;extern int tn_b_meu, tn_b_ume, tn_auth_krb5_des_bug;#endif /* TNCODE */char * xferfile = NULL;int xferlog = 0;extern int local, xargc, stayflg, rcflag, bgset, backgrd, cfilef, inserver, srvcdmsg, success;#ifdef VMSextern int batch;#endif /* VMS */extern char cmdfil[], *versio, *ckxsys, **xargv;#ifdef DEBUGextern char debfil[]; /* Debug log file name */extern int debtim;#endif /* DEBUG */extern int noinit;static char ndatbuf[10];char *months[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};char *zzndate() { /* Returns today's date as yyyymmdd */ char * p = NULL; int x;/* WARNING - This will fail if asctime() returns non-English month names */ ztime(&p); /* Get "asctime" string */ if (p == NULL || *p == NUL) return(""); for (x = 20; x < 24; x++) /* yyyy */ ndatbuf[x - 20] = p[x]; ndatbuf[6] = (char) ((p[8] == ' ') ? '0' : p[8]); ndatbuf[7] = p[9]; /* dd */ for (x = 0; x < 12; x++) /* mm */ if (!strncmp(p+4,months[x],3)) break; if (x == 12) { ndatbuf[4] = ndatbuf[5] = '?'; } else { x++; ndatbuf[4] = (char) ((x < 10) ? '0' : '1'); ndatbuf[5] = (char) ((x % 10) + 48); } ndatbuf[8] = NUL; debug(F110,"zzndate return",ndatbuf,0); return((char *)ndatbuf);}#ifdef DCMDBUFextern struct cmdptr *cmdstk;extern char *line, *tmpbuf;#elseextern struct cmdptr cmdstk[];extern char line[], tmpbuf[];#endif /* DCMDBUF */#ifdef OS2extern char exedir[];#elseextern char * exedir;#endif /* OS2 */extern int nettype;#ifndef NOICP /* Most of this file... */#ifdef CKLOGDIALextern char diafil[];#endif /* CKLOGDIAL */#ifndef AMIGA#ifndef MAC#include <signal.h>#endif /* MAC */#endif /* AMIGA */#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 */#ifdef ANYX25extern int revcall, closgr, cudata;int x25ver;extern char udata[];#ifndef IBMX25extern int npadx3;extern CHAR padparms[];extern struct keytab padx3tab[];#endif /* !IBMX25 */#ifdef IBMX25/* global variables only available for IBM X.25 - possibly interesting for * other implementations */extern x25addr_t local_nua;extern x25addr_t remote_nua;#endif /* IBMX25 */#endif /* ANYX25 */#ifdef NETCONN#ifndef NODIALextern int nnetdir;extern char *netdir[];#endif /* NODIAL */extern char ipaddr[];#ifdef CK_NETBIOSextern unsigned short netbiosAvail;extern unsigned long NetbeuiAPI;extern unsigned char NetBiosName[];extern unsigned char NetBiosAdapter;extern unsigned char NetBiosLSN;#endif /* CK_NETBIOS */#ifdef TCPSOCKETextern char myipaddr[];extern int tcp_rdns;#ifdef CK_DNS_SRVextern int tcp_dns_srv;#endif /* CK_DNS_SRV */extern char * tcp_address;#ifndef NOHTTPextern char * tcp_http_proxy;#endif /* NOHTTP */#ifdef NT#ifdef CK_SOCKSextern char * tcp_socks_svr;#ifdef CK_SOCKS_NSextern char * tcp_socks_ns;#endif /* CK_SOCKS_NS */#endif /* CK_SOCKS */#endif /* NT */#ifndef NOTCPOPTS#ifdef SOL_SOCKET#ifdef SO_LINGERextern int tcp_linger;extern int tcp_linger_tmo;#endif /* SO_LINGER */#ifdef SO_DONTROUTEextern int tcp_dontroute;#endif /* SO_DONTROUTE */#ifdef TCP_NODELAYextern int tcp_nodelay;#endif /* TCP_NODELAY */#ifdef SO_SNDBUFextern int tcp_sendbuf;#endif /* SO_SNDBUF */#ifdef SO_RCVBUFextern int tcp_recvbuf;#endif /* SO_RCVBUF */#ifdef SO_KEEPALIVEextern int tcp_keepalive;#endif /* SO_KEEPALIVE */#endif /* SOL_SOCKET */#endif /* NOTCPOPTS */#endif /* TCPSOCKET */#endif /* NETCONN */extern char * floname[];#ifndef NOSPLextern int fndiags; /* Function diagnostics on/off */extern int divbyzero;int ispattern = 0;int isjoin = 0;#ifdef CK_APCextern int apcactive; /* Nonzero = APC command was rec'd */extern int apcstatus; /* Are APC commands being processed? */#ifdef DCMDBUFextern char *apcbuf; /* APC command buffer */#elseextern char apcbuf[];#endif /* DCMDBUF */#endif /* CK_APC */extern char evalbuf[]; /* EVALUATE result */extern char uidbuf[], pwbuf[], prmbuf[];_PROTOTYP( static char * fneval, (char *, char * [], int, char * ) );_PROTOTYP( static VOID myflsh, (void) );_PROTOTYP( static char * getip, (char *) );_PROTOTYP( int delta2sec, (char *, long *) );#ifdef NEWFTP_PROTOTYP( char * ftp_cpl_mode, (void) );_PROTOTYP( char * ftp_dpl_mode, (void) );_PROTOTYP( char * ftp_authtype, (void) );#endif /* NEWFTP */#ifndef NOHTTP_PROTOTYP( char * http_host, (void) );_PROTOTYP( int http_isconnected, (void) );_PROTOTYP( char * http_security, (void) );#endif /* NOHTTP */#ifndef NOSEXP_PROTOTYP( char * dosexp, (char *) );int fsexpflag = 0;#endif /* NOSEXP */static char hexdigits[16] = { '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};extern char * tempdir;#ifdef CK_REXXextern char rexxbuf[];#endif /* CK_REXX */extern int tfline[];/* These need to be internationalized... */staticchar *wkdays[] = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};#endif /* NOSPL */#ifdef OS2extern char startupdir[], inidir[];#else#ifdef VMSORUNIXextern char startupdir[];#endif /* VMSORUNIX */#endif /* OS2 */#ifdef OS2_PROTOTYP (int os2getcp, (void) );#ifdef TCPSOCKETextern char tcpname[];#endif /* TCPSOCKET */extern int tcp_avail;#ifdef DECNETextern int dnet_avail;#endif /* DECNET */#ifdef SUPERLATextern int slat_avail;#endif /* SUPERLAT */#ifndef NOTERMextern int tt_type, max_tt;extern struct tt_info_rec tt_info[];#endif /* NOTERM */extern int tt_rows[], tt_cols[];#else /* OS2 */extern int tt_rows, tt_cols;#endif /* OS2 */#ifdef CK_TAPIextern int tttapi;extern int tapipass;extern struct keytab * tapilinetab;extern struct keytab * _tapilinetab;extern int ntapiline;#endif /* CK_TAPI */extern struct keytab colxtab[];extern int ncolx;extern char ttname[], *zinptr, *kermrc;extern char inidir[];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -