⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ckuus7.c

📁 linux终端仿真程序
💻 C
📖 第 1 页 / 共 5 页
字号:
	/* 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 + -