📄 ckuus7.c
字号:
tcharset = TC_1LATIN;#ifndef NOLATIN2 else if (fcharset == FC_HUASCII || fcharset == FC_2LATIN || fcharset == FC_CP852 ) tcharset = TC_2LATIN;#endif /* NOLATIN2 */#ifndef NOCYRIL else if (fcharset == FC_CYRILL || fcharset == FC_CP866 || fcharset == FC_KOI7 || fcharset == FC_KOI8 ) tcharset = TC_CYRILL;#endif /* NOCYRIL */#ifndef NOKANJI else if (fcharset == FC_JIS7 || fcharset == FC_SHJIS || fcharset == FC_JEUC || fcharset == FC_JDEC ) tcharset = TC_JEUC;#endif /* NOKANJI */#ifndef NOHEBREW else if (fcharset == FC_HE7 || fcharset == FC_HEBREW || fcharset == FC_CP862 ) tcharset = TC_HEBREW;#endif /* NOKANJI */ }#endif /* MAC */ return(success = 1);#endif /* NOCSETS */ case XYFILD: /* Display */ return(doxdis()); case XYFILA: /* End-of-line */#ifdef NLCHAR s = ""; if (NLCHAR == 015) s = "cr"; else if (NLCHAR == 012) s = "lf"; if ((x = cmkey(eoftab, neoftab, "local text-file line terminator",s,xxstring)) < 0) return(x);#else if ((x = cmkey(eoftab, neoftab, "local text-file line terminator","crlf",xxstring)) < 0) return(x);#endif /* NLCHAR */ if ((z = cmcfm()) < 0) return(z); feol = (CHAR) x; return(success = 1); case XYFILN: /* Names */ if ((x = cmkey(fntab,nfntab,"how to handle filenames","converted", xxstring)) < 0) return(x); if ((z = cmcfm()) < 0) return(z); if (rmsflg) { sprintf(tmpbuf,"%d",1 - x); sstate = setgen('S', "301", tmpbuf, ""); return((int) sstate); } else { ptab[protocol].fncn = x; /* Set structure */ fncnv = x; /* Set variable */ f_save = x; /* Set and set "permanent" variable */ return(success = 1); } case XYFILR: /* Record length */ sprintf(tmpbuf,"%d",DLRECL); if ((y = cmnum("file record length",tmpbuf,10,&z,xxstring)) < 0) return(y); if ((x = cmcfm()) < 0) return(x); if (rmsflg) { sprintf(tmpbuf,"%d",z); sstate = setgen('S', "312", tmpbuf, ""); return((int) sstate); } else { frecl = z; return(success = 1); }#ifdef COMMENT case XYFILO: /* Organization */ if ((x = cmkey(forgtab,nforg,"file organization","sequential", xxstring)) < 0) return(x); if ((y = cmcfm()) < 0) return(y); if (rmsflg) { sprintf(tmpbuf,"%d",x); sstate = setgen('S', "314", tmpbuf, ""); return((int) sstate); } else { forg = x; return(success = 1); } #endif /* COMMENT */#ifdef COMMENT /* Not needed */ case XYFILF: /* Format */ if ((x = cmkey(frectab,nfrec,"file record format","stream", xxstring)) < 0) return(x); if ((y = cmcfm()) < 0) return(y); if (rmsflg) { sprintf(tmpbuf,"%d",x); sstate = setgen('S', "313", tmpbuf, ""); return((int) sstate); } else { frecfm = x; return(success = 1); }#endif /* COMMENT */#ifdef COMMENT case XYFILP: /* Printer carriage control */ if ((x = cmkey(fcctab,nfcc,"file carriage control","newline", xxstring)) < 0) return(x); if ((y = cmcfm()) < 0) return(y); if (rmsflg) { sprintf(tmpbuf,"%d",x); sstate = setgen('S', "315", tmpbuf, ""); return((int) sstate); } else { fcctrl = x; return(success = 1); } #endif /* COMMENT */ case XYFILT: /* Type */ if ((x = cmkey(rmsflg ? rfttab : fttab, rmsflg ? nrfttyp : nfttyp, "type of file transfer","text",xxstring)) < 0) return(x);#ifdef VMS /* Allow VMS users to choose record format for binary files */ if ((x == XYFT_B) && (rmsflg == 0)) { if ((x = cmkey(fbtab,nfbtyp,"VMS record format","fixed", xxstring)) < 0) return(x); }#endif /* VMS */ if ((y = cmcfm()) < 0) return(y); binary = x; b_save = x;#ifdef MAC (void) mac_setfildflg(binary);#endif /* MAC */ if (rmsflg) { char buf[4]; /* Allow for LABELED in VMS & OS/2 */ sprintf(buf,"%d",x); sstate = setgen('S', "300", buf, ""); return((int) sstate); } else { return(success = 1); } case XYFILX: /* Collision Action */ if ((x = cmkey(colxtab,ncolx,"Filename collision action","backup", xxstring)) < 0) return(x); if ((y = cmcfm()) < 0) return(y); fncact = x; ptab[protocol].fnca = x; if (rmsflg) { sprintf(tmpbuf,"%d",fncact); sstate = setgen('S', "302", tmpbuf, ""); return((int) sstate); } else { if (fncact == XYFX_R) warn = 1; /* SET FILE WARNING implications */ if (fncact == XYFX_X) warn = 0; /* ... */ return(success = 1); } case XYFILW: /* Warning/Write-Protect */ if ((x = seton(&warn)) < 0) return(x); if (warn) fncact = XYFX_R; else fncact = XYFX_X; return(success = 1);#ifdef CK_LABELED case XYFILL: /* LABELED FILE parameters */ if ((x = cmkey(lbltab,nlblp,"Labeled file feature","", xxstring)) < 0) return(x); if ((success = seton(&y)) < 0) return(success); if (y) /* Set or reset the selected bit */ lf_opts |= x; /* in the options bitmask. */ else lf_opts &= ~x; return(success);#endif /* CK_LABELED */ case XYFILI: /* INCOMPLETE */ return(doprm(XYIFD,rmsflg));#ifdef CK_TMPDIR case XYFILG: { /* Download directory */ int x; char *s;#ifdef ZFNQFP struct zfnfp * fnp;#endif /* ZFNQFP */#ifdef MAC char temp[34];#endif /* MAC */#ifdef GEMDOS if ((x = cmdir("Name of local directory, or carriage return", "",&s, NULL)) < 0 ) { if (x != -3) return(x); }#else#ifdef OS2 if ((x = cmdir("Name of PC disk and/or directory,\n\ or press the Enter key to use current directory", "",&s,xxstring)) < 0 ) { if (x != -3) return(x); }#else#ifdef MAC strncpy(temp,homdir,32); x = strlen(temp); if (x > 0) if (temp[x-1] != ':') { temp[x] = ':'; temp[x+1] = NUL; } if ((x = cmtxt("Name of Macintosh volume and/or folder,\n\ or press the Return key for the desktop on the boot disk", temp,&s, xxstring)) < 0 ) return(x);#else if ((x = cmdir("Name of local directory, or carriage return", "", &s, xxstring)) < 0 ) { if (x != -3) return(x); }#endif /* MAC */#endif /* OS2 */#endif /* GEMDOS */ debug(F110,"download dir",s,0);#ifndef MAC if (x == 2) { printf("?Wildcards not allowed in directory name\n"); return(-9); }#endif /* MAC */#ifdef ZFNQFP if (fnp = zfnqfp(s,TMPBUFSIZ - 1,tmpbuf)) { if (fnp->fpath) if ((int) strlen(fnp->fpath) > 0) s = fnp->fpath; } debug(F110,"download zfnqfp",s,0);#endif /* ZFNQFP */ strcpy(line,s); /* Make a safe copy */ s = line;#ifndef MAC if ((x = cmcfm()) < 0) /* Get confirmation */ return(x);#endif /* MAC */ x = strlen(line);#ifdef datageneral if (line[x-1] == ':') /* homdir ends in colon, */ line[x-1] = NUL; /* and "dir" doesn't like that... */#endif /* datageneral */ if (dldir) free(dldir); dldir = NULL; if (x && (dldir = malloc(x + 1))) strcpy(dldir, line); return(success = 1); }#endif /* CK_TMPDIR */ case XYFILY: return(setdest()); default: printf("?unexpected file parameter\n"); return(-2); }}#ifdef OS2/* MS-DOS KERMIT compatibility modes */intsetmsk() { if ((y = cmkey(msktab,nmsk,"MS-DOS Kermit compatibility mode", "keycodes",xxstring)) < 0) return(y); switch ( y ) {#ifdef COMMENT case MSK_COLOR: return(seton(&mskcolors));#endif /* COMMENT */ case MSK_KEYS: return(seton(&mskkeys)); default: /* Shouldn't get here. */ return(-2); }}#endif#ifndef NOLOCALintsettrm() { int i = 0;#ifdef OS2 extern int colorreset, erasemode;#endif /* OS2 */ if ((y = cmkey(trmtab,ntrm,"", "",xxstring)) < 0) return(y);#ifdef MAC printf("\n?Sorry, not implemented yet. Please use the Settings menu.\n"); return(-9);#else switch (y) { case XYTBYT: /* SET TERMINAL BYTESIZE */ if ((y = cmnum("bytesize for terminal connection","8",10,&x, xxstring)) < 0) return(y); if (x != 7 && x != 8) { printf("\n?The choices are 7 and 8\n"); return(success = 0); } if ((y = cmcfm()) < 0) return(y); if (x == 7) cmask = 0177; else if (x == 8) { cmask = 0377; parity = 0; } return(success = 1); case XYTSO: /* SET TERMINAL LOCKING-SHIFT */ return(seton(&sosi)); case XYTNL: /* SET TERMINAL NEWLINE-MODE */ return(seton(&tnlm)); #ifdef OS2 case XYTCOL: if ((x = cmkey(ttycoltab,ncolors,"","terminal",xxstring)) < 0) return(x); else if (x == TTCOLRES) { if ((y = cmkey(ttcolmodetab,ncolmode, "","default-color",xxstring)) < 0) return(y); if ((z = cmcfm()) < 0) return(z); colorreset = y; return(success = 1); } else if (x == TTCOLERA) { if ((y = cmkey(ttcolmodetab,ncolmode,"", "current-color",xxstring)) < 0) return(y); if ((z = cmcfm()) < 0) return(z); erasemode = y; return(success=1); } else { /* No parse error */ int fg = 0, bg = 0; fg = cmkey(ttyclrtab, nclrs, (x == TTCOLBOR ? "color for screen border" : "foreground color and then background color"), "lgray", xxstring); if (fg < 0) return(fg); if (x != TTCOLBOR) { if ((bg = cmkey(ttyclrtab,nclrs, "background color","blue",xxstring)) < 0) return(bg); } if ((y = cmcfm()) < 0) return(y); switch (x) { case TTCOLNOR: colornormal = fg | bg << 4; fgi = fg & 0x08; bgi = bg & 0x08; break; case TTCOLREV: colorreverse = fg | bg << 4; break; case TTCOLUND: colorunderline = fg | bg << 4; break; case TTCOLGRP: colorgraphic = fg | bg << 4; break; case TTCOLDEB: colordebug = fg | bg << 4; break; case TTCOLSTA: colorstatus = fg | bg << 4; break; case TTCOLHLP: colorhelp = fg | bg << 4; break; case TTCOLBOR: colorborder = fg; break; case TTCOLSEL: colorselect = fg | bg << 4; break; default: printf("%s - invalid\n",cmdbuf); return(-9); break; } scrninitialized[VTERM] = 0; VscrnInit(VTERM); } return(success = 1); case XYTCUR: /* SET TERMINAL CURSOR */ if ((x = cmkey(ttycurtab,ncursors,"","underline",xxstring)) < 0) return(x); if ((y = cmcfm()) < 0) return(y); tt_cursor = tt_cursor_usr = x; return(success = 1);#endif /* OS2 */ case XYTTYP: /* SET TERMINAL TYPE */#ifdef OS2 if ((x = cmkey(ttyptab,nttyp,"","vt320",xxstring)) < 0) return(x); if ((y = cmcfm()) < 0) return(y); settermtype(x,1); return(success=1);#else /* Not OS2 */ printf("\n Sorry, this version of C-Kermit does not support the SET TERMINAL TYPE\n"); printf(" command. Type \"help set terminal\" for further information.\n");#endif /* OS2 */ return(success = 0);#ifdef OS2 case XYTARR: /* SET TERMINAL ARROW-KEYS */ if ((x = cmkey(akmtab,2,"","",xxstring)) < 0) return(x); if ((y = cmcfm()) < 0) return(y); tt_arrow = x; /* TTK_NORM / TTK_APPL; see ckuusr.h */ return(success = 1); case XYTKPD: /* SET TERMINAL KEYPAD-MODE */ if ((x = cmkey(kpmtab,2,"","",xxstring)) < 0) return(x); if ((y = cmcfm()) < 0) return(y); tt_keypad = x; /* TTK_NORM / TTK_APPL; see ckuusr.h */ return(success = 1); case XYTWRP: /* SET TERMINAL WRAP */ return(seton(&tt_wrap)); case XYSCRS: if ((y = cmnum("CONNECT scrollback buffer size, lines","2000",10,&x, xxstring)) < 0) return(y); /* The max number of lines is the RAM */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -