📄 ckuus7.c
字号:
/* we can actually dedicate to a */ /* scrollback buffer given the maximum */ /* process memory space of 512MB */ if (x < 256 || x > 2000000L) { printf("\n?The size must be between 256 and 2,000,000.\n"); return(success = 0); } if ((y = cmcfm()) < 0) return(y);#ifndef VSCRNINIT if ( (ULONG) x < VscrnGetBufferSize(VTERM) ) { printf("\nWarning: the scrollback buffer will be emptied on the"); printf(" next CONNECT,\n"); printf("unless the buffer is restored to %d lines.\n", VscrnGetBufferSize(VTERM)); }#endif /* VSCRNINIT */ tt_scrsize[VTERM] = x;#ifdef VSCRNINIT VscrnInit(VTERM);#endif /* VSCRNINIT */ return(success = 1);#endif /* OS2 */#ifndef NOCSETS#ifndef KUI case XYTCS: /* SET TERMINAL CHARACTER-SET */ /* set terminal character-set <remote> <local> */ if ((x = cmkey(#ifdef CKOUNI txrtab,ntxrtab,#else /* CKOUNI */ ttcstab,ntermc,#endif /* CKOUNI */ "remote terminal character-set","",xxstring)) < 0) return(x); if (x == FC_TRANSP) { /* TRANSPARENT? */ if ((x = cmcfm()) < 0) return(x); /* Confirm the command */#ifdef CKOUNI tcsr = tcsl = TX_ASCII; /* Make them both the same */#else /* CKOUNI */ tcsr = tcsl = FC_USASCII;#endif /* CKOUNI */#ifdef OS2 y = os2getcp(); /* Default is current code page */ switch (y) {#ifdef CKOUNI case 437: tcsr = tcsl = TX_CP437; break; case 850: tcsr = tcsl = TX_CP850; break; case 852: tcsr = tcsl = TX_CP852; break; case 857: tcsr = tcsl = TX_CP857; break; case 862: tcsr = tcsl = TX_CP862; break; case 866: tcsr = tcsl = TX_CP866; break; case 869: tcsr = tcsl = TX_CP869; break;#else /* CKOUNI */ case 437: tcsr = tcsl = FC_CP437; break; case 850: tcsr = tcsl = FC_CP850; break; case 852: tcsr = tcsl = FC_CP852; break; case 862: tcsr = tcsl = FC_CP862; break; case 866: tcsr = tcsl = FC_CP866; break;#endif /* CKOUNI */ } for (i = 0; i < 4; i++) {#ifdef CKOUNI G[i].def_designation = G[i].designation = TX_TRANSP;#else /* CKOUNI */ G[i].def_designation = G[i].designation = FC_TRANSP;#endif /* CKOUNI */ G[i].init = FALSE; G[i].size = G[i].def_size = cs96; G[i].c1 = G[i].def_c1 = FALSE; G[i].national = FALSE; G[i].rtoi = NULL; G[i].itol = NULL; G[i].ltoi = NULL; G[i].itor = NULL; }#endif /* OS2 */ return(success = 1); }/* Not transparent, so get local set to translate it into */ s = "";#ifdef OS2 y = os2getcp(); /* Default is current code page */ switch (y) { case 437: s = "cp437"; break; case 850: s = "cp850"; break; case 852: s = "cp852"; break; case 862: s = "cp862"; break; case 866: s = "cp866"; break; }#ifdef OS2ONLY/* If the user has loaded a font with SET TERMINAL FONT then we want to change the default code page to the font that was loaded.*/ if (tt_font != TTF_ROM) { for (y = 0; y < ntermfont; y++ ) { if (termfont[y].kwval == tt_font) { s = termfont[y].kwd; break; } } }#endif /* OS2ONLY */#else /* Make current file char set */ for (y = 0; y <= nfilc; y++) /* be the default... */ if (fcstab[y].kwval == fcharset) { s = fcstab[y].kwd; break; }#endif /* OS2 */ if ((y = cmkey(#ifdef CKOUNI txrtab,ntxrtab,#else /* CKOUNI */ fcstab,nfilc,#endif /* CKOUNI */ "local character-set",s,xxstring)) < 0) return(y);#ifdef OS2 if ((z = cmkey(graphsettab,ngraphset, "DEC VT intermediate graphic set","all",xxstring)) < 0) return(z); { int eol; if ((eol = cmcfm()) < 0) return(eol); /* Confirm the command */ } tcsr = x; /* Remote character set */ tcsl = y; /* Local character set */ if (z == TT_GR_ALL) { int i; for (i = 0; i < 4; i++) { G[i].def_designation = G[i].designation = x; G[i].init = TRUE; switch (cs_size(x)) { /* 94, 96, or 128 */ case 128: case 96: G[i].size = G[i].def_size = cs96; break; case 94: G[i].size = G[i].def_size = cs94; break; default: G[i].size = G[i].def_size = csmb; break; } G[i].c1 = G[i].def_c1 = x != tcsl && cs_is_std(x); G[i].national = cs_is_nrc(x); } if (!cs_is_nrc(x)) { G[0].designation = G[0].def_designation = FC_USASCII; G[0].size = G[0].def_size = cs94; } } else { /* Specific Gn */ G[z].def_designation = G[z].designation = x; G[z].init = TRUE; switch (cs_size(x)) { /* 94, 96, or 128 */ case 128: case 96: G[i].size = G[i].def_size = cs96; break; case 94: G[i].size = G[i].def_size = cs94; break; default: G[i].size = G[i].def_size = csmb; break; } G[i].c1 = G[i].def_c1 = x != tcsl && cs_is_std(x); G[i].national = cs_is_nrc(x); }#else /* not OS2 */ if ((z = cmcfm()) < 0) return(z); /* Confirm the command */ tcsr = x; /* Remote character set */ tcsl = y; /* Local character set */#endif /* OS2 */ return(success = 1);#endif /* CKOUNI */#endif /* NOCSETS */#ifndef NOCSETS case XYTLCS: /* SET TERMINAL LOCAL-CHARACTER-SET */ /* set terminal character-set <local> */ s = "";#ifdef OS2 y = os2getcp(); /* Default is current code page */ switch (y) { case 437: s = "cp437"; break; case 850: s = "cp850"; break; case 852: s = "cp852"; break; case 862: s = "cp862"; break; case 866: s = "cp866"; break; }#ifdef OS2ONLY/* If the user has loaded a font with SET TERMINAL FONT then we want to change the default code page to the font that was loaded.*/ if (tt_font != TTF_ROM) { for (y = 0; y < ntermfont; y++ ) { if (termfont[y].kwval == tt_font) { s = termfont[y].kwd; break; } } }#endif /* OS2ONLY */#else /* OS2 */ /* Make current file char set */ for (y = 0; y <= nfilc; y++) /* be the default... */ if (fcstab[y].kwval == fcharset) { s = fcstab[y].kwd; break; }#endif /* OS2 */ if ((y = cmkey(#ifdef CKOUNI txrtab,ntxrtab,#else /* CKOUNI */ fcstab,nfilc,#endif /* CKOUNI */ "local character-set",s,xxstring)) < 0) return(y);#ifdef OS2 if ((z = cmcfm()) < 0) return(z); /* Confirm the command */ tcsl = y; /* Local character set */ { int i; for (i = 0; i < 4; i++) { G[i].init = TRUE; x = G[i].designation; G[i].c1 = (x != tcsl) && cs_is_std(x); x = G[i].def_designation; G[i].def_c1 = (x != tcsl) && cs_is_std(x); } }#else /* not OS2 */ if ((z = cmcfm()) < 0) return(z); /* Confirm the command */ tcsl = y; /* Local character set */#endif /* OS2 */ return(success = 1);#endif /* NOCSETS */#ifndef NOCSETS#ifdef CKOUNI case XYTUNI: /* SET TERMINAL UNICODE */ return(success = seton(&tt_unicode));#endif /* CKOUNI */ case XYTRCS: /* SET TERMINAL REMOTE-CHARACTER-SET */ /* set terminal character-set <remote> <Graphic-set> */ if ((x = cmkey(#ifdef CKOUNI txrtab, ntxrtab,#else /* CKOUNI */ ttcstab,ntermc,#endif /* CKOUNI */ "remote terminal character-set","",xxstring)) < 0) return(x);#ifndef KUI /* KUI can't have a Transparent Character Set */#ifdef CKOUNI if (x == TX_TRANSP)#else /* CKOUNI */ if (x == FC_TRANSP)#endif /* CKOUNI */ { /* TRANSPARENT? */ if ((x = cmcfm()) < 0) /* Confirm the command */ return(x); tcsr = tcsl; /* Make both sets the same */#ifdef OS2#ifdef CKOUNI if (!cs_is_nrc(tcsl)) { G[0].def_designation = G[i].designation = TX_ASCII; G[0].init = TRUE; G[0].def_c1 = G[i].c1 = FALSE; G[0].size = cs94; G[0].national = FALSE; } for (i = cs_is_nrc(tcsl) ? 0 : 1; i < 4; i++) { G[i].def_designation = G[i].designation = tcsl; G[i].init = TRUE; G[i].def_c1 = G[i].c1 = FALSE; switch (cs_size(G[i].designation)) { /* 94, 96, or 128 */ case 128: case 96: G[i].size = G[i].def_size = cs96; break; case 94: G[i].size = G[i].def_size = cs94; break; default: G[i].size = G[i].def_size = csmb; break; } G[i].national = cs_is_nrc(x); }#else /* CKOUNI */ for (i = 0; i < 4; i++) { G[i].def_designation = G[i].designation = FC_TRANSP; G[i].init = FALSE; G[i].size = G[i].def_size = cs96; G[i].c1 = G[i].def_c1 = FALSE; G[i].rtoi = NULL; G[i].itol = NULL; G[i].ltoi = NULL; G[i].itor = NULL; G[i].national = FALSE; }#endif /* CKOUNI */#endif /* OS2 */ return(success = 1); }#endif /* KUI */#ifdef OS2 if ((z = cmkey(graphsettab,ngraphset, "DEC VT intermediate graphic set","all",xxstring)) < 0) return(z); { int eol; if ((eol = cmcfm()) < 0) /* Confirm the command */ return(eol); } tcsr = x; /* Remote character set */ if (z == TT_GR_ALL) { int i; for (i = 0; i < 4; i++) { G[i].def_designation = G[i].designation = x; G[i].init = TRUE; switch (cs_size(x)) { /* 94, 96, or 128 */ case 128: case 96: G[i].size = G[i].def_size = cs96; break; case 94: G[i].size = G[i].def_size = cs94; break; default: G[i].size = G[i].def_size = csmb; break; } G[i].c1 = G[i].def_c1 = x != tcsl && cs_is_std(x); G[i].national = cs_is_nrc(x); } if (!cs_is_nrc(x)) { G[0].designation = G[0].def_designation = FC_USASCII; G[0].size = G[0].def_size = cs94; } } else { /* Specific Gn */ G[z].def_designation = G[z].designation = x; G[z].init = TRUE; switch (cs_size(x)) { /* 94, 96, or 128 */ case 128: case 96: G[i].size = G[i].def_size = cs96; break; case 94: G[i].size = G[i].def_size = cs94; break; default: G[i].size = G[i].def_size = csmb; break; } G[z].c1 = G[z].def_c1 = x != tcsl && cs_is_std(x); G[z].national = cs_is_nrc(x); }#else /* not OS2 */ if ((z = cmcfm()) < 0) return(z); /* Confirm the command */ tcsr = x; /* Remote character set */#endif /* OS2 */ return(success = 1);#endif /* NOCSETS */ case XYTEC: /* SET TERMINAL ECHO */ if ((x = cmkey(rltab,nrlt,"which side echos during CONNECT", "remote", xxstring)) < 0) return(x); if ((y = cmcfm()) < 0) return(y); duplex = x; return(success = 1); case XYTESC: /* SET TERM ESC */ if ((x = cmkey(nabltab,2,"","enabled",xxstring)) < 0) return(x); if ((y = cmcfm()) < 0) return(y); tt_escape = x; return(1); case XYTCRD: /* SET TERMINAL CR-DISPLAY */ if ((x = cmkey(crdtab,2,"", "normal", xxstring)) < 0) return(x); if ((y = cmcfm()) < 0) return(y); tt_crd = x; return(success = 1); #ifdef OS2 case XYTANS: { /* SET TERMINAL ANSWERBACK *//* NOTE: We let them enable and disable the answerback sequence, but we do NOT let them change it, and we definitely do not let the host set it. This is a security feature. As of 1.1.8 we allow the SET TERM ANSWERBACK MESSAGE <string> to be used just as MS-DOS Kermit does. C0 and C1 controls as well as DEL are not allowed to be used as characters. They are translated to underscore. This may not be set by APC.*/ if ((x = cmkey(anbktab,nansbk,"", "off", xxstring)) < 0) return(x); if (x < 2) { if ((y = cmcfm()) < 0) return(y); tt_answer = x; return(success = 1); } else if ( x == 2 || x == 3) { int len = 0; extern int safeanswerbk; extern char useranswerbk[]; if ((y = cmtxt("Answerback extension","",&s,xxstring)) < 0) return(y); if (apcactive == APC_LOCAL || (apcactive == APC_REMOTE && apcstatus != APC_UNCH)) return(success = 0); len = strlen(s); if (x == 2) { /* Safe Answerback's don't have C0/C1 chars */ for (z = 0; z < len; z++) { if ((s[z] & 0x7F) <= SP || (s[z] & 0x7F) == DEL) useranswerbk[z] = '_'; else useranswerbk[z] = s[z]; } useranswerbk[z] = '\0'; safeanswerbk = 1 ; /* TRUE */ } else { strncpy( useranswerbk, s, 65 ); useranswerbk[65] = '\0'; safeanswerbk = 0; /* FALSE */ } updanswerbk(); return(success = 1); } else return(success = 0); }#endif /* OS2 */#ifdef CK_APC case XYTAPC: if ((y = cmkey(apctab,3,"application program command execution","", xxstring)) < 0) return(y); if ((x = cmcfm()) < 0) return(x); if (apcactive == APC_LOCAL || (apcactive == APC_REMOTE && apcstatus != APC_UNCH)) return(success = 0); apcstatus = y; return(success = 1);#ifdef CK_AUTODL case XYTAUTODL: return(success = seton(&autodl)); /* AUTODOWNLOAD ON, OFF */ #endif /* CK_AUTODL */#endif /* CK_APC */#ifdef OS2 case XYTBEL: return(success = setbell());#endif /* OS2 */ case XYTDEB: /* TERMINAL DEBUG */ x = debses; /* What it was before */ y = seton(&debses); /* Go parse ON or OFF */#ifdef OS2 if (y > 0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -