@ -784,12 +784,15 @@ ttyread(void)  
															
														 
														
													
														
															
																 
																 
																}  
																 
																 
																}  
															
														 
														
													
														
															
																 
																 
																
  
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																void  
																 
																 
																void  
															
														 
														
													
														
															
																 
																 
																ttywrite ( const  char  * s ,  size_t  n )  
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																ttywrite ( const  char  * s ,  size_t  n ,  int  may_echo )  
															
														 
														
													
														
															
																 
																 
																{  
																 
																 
																{  
															
														 
														
													
														
															
																 
																 
																	fd_set  wfd ,  rfd ;   
																 
																 
																	fd_set  wfd ,  rfd ;   
															
														 
														
													
														
															
																 
																 
																	ssize_t  r ;   
																 
																 
																	ssize_t  r ;   
															
														 
														
													
														
															
																 
																 
																	size_t  lim  =  256 ;   
																 
																 
																	size_t  lim  =  256 ;   
															
														 
														
													
														
															
																 
																 
																
  
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																	if  ( may_echo  & &  IS_SET ( MODE_ECHO ) )   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																		twrite ( s ,  n ,  1 ) ;   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																	/*   
																 
																 
																	/*   
															
														 
														
													
														
															
																 
																 
																	 *  Remember  that  we  are  using  a  pty ,  which  might  be  a  modem  line .   
																 
																 
																	 *  Remember  that  we  are  using  a  pty ,  which  might  be  a  modem  line .   
															
														 
														
													
														
															
																 
																 
																	 *  Writing  too  much  will  clog  the  line .  That ' s  why  we  are  doing  this   
																 
																 
																	 *  Writing  too  much  will  clog  the  line .  That ' s  why  we  are  doing  this   
															
														 
														
													
												
													
														
															
																
																	
																		
																			 
																		 
																	
																	
																		
																			 
																		 
																	
																	
																 
																@ -840,14 +843,6 @@ write_error:  
															
														 
														
													
														
															
																 
																 
																	die ( " write error on tty: %s \n " ,  strerror ( errno ) ) ;   
																 
																 
																	die ( " write error on tty: %s \n " ,  strerror ( errno ) ) ;   
															
														 
														
													
														
															
																 
																 
																}  
																 
																 
																}  
															
														 
														
													
														
															
																 
																 
																
  
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																void  
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																ttysend ( char  * s ,  size_t  n )  
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																{  
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																	ttywrite ( s ,  n ) ;   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																	if  ( IS_SET ( MODE_ECHO ) )   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																		twrite ( s ,  n ,  1 ) ;   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																}  
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																
  
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																void  
																 
																 
																void  
															
														 
														
													
														
															
																 
																 
																ttyresize ( int  tw ,  int  th )  
																 
																 
																ttyresize ( int  tw ,  int  th )  
															
														 
														
													
														
															
																 
																 
																{  
																 
																 
																{  
															
														 
														
													
												
													
														
															
																
																	
																		
																			 
																		 
																	
																	
																		
																			 
																		 
																	
																	
																 
																@ -1570,7 +1565,7 @@ csihandle(void)  
															
														 
														
													
														
															
																 
																 
																		break ;   
																 
																 
																		break ;   
															
														 
														
													
														
															
																 
																 
																	case  ' c ' :  /* DA -- Device Attributes */   
																 
																 
																	case  ' c ' :  /* DA -- Device Attributes */   
															
														 
														
													
														
															
																 
																 
																		if  ( csiescseq . arg [ 0 ]  = =  0 )   
																 
																 
																		if  ( csiescseq . arg [ 0 ]  = =  0 )   
															
														 
														
													
														
															
																 
																 
																			ttywrite ( vtiden ,  strlen ( vtiden ) ) ;   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																			ttywrite ( vtiden ,  strlen ( vtiden ) ,  0 ) ;   
															
														 
														
													
														
															
																 
																 
																		break ;   
																 
																 
																		break ;   
															
														 
														
													
														
															
																 
																 
																	case  ' C ' :  /* CUF -- Cursor <n> Forward */   
																 
																 
																	case  ' C ' :  /* CUF -- Cursor <n> Forward */   
															
														 
														
													
														
															
																 
																 
																	case  ' a ' :  /* HPR -- Cursor <n> Forward */   
																 
																 
																	case  ' a ' :  /* HPR -- Cursor <n> Forward */   
															
														 
														
													
												
													
														
															
																
																	
																		
																			 
																		 
																	
																	
																		
																			 
																		 
																	
																	
																 
																@ -1698,7 +1693,7 @@ csihandle(void)  
															
														 
														
													
														
															
																 
																 
																		if  ( csiescseq . arg [ 0 ]  = =  6 )  {   
																 
																 
																		if  ( csiescseq . arg [ 0 ]  = =  6 )  {   
															
														 
														
													
														
															
																 
																 
																			len  =  snprintf ( buf ,  sizeof ( buf ) , " \033 [%i;%iR " ,   
																 
																 
																			len  =  snprintf ( buf ,  sizeof ( buf ) , " \033 [%i;%iR " ,   
															
														 
														
													
														
															
																 
																 
																					term . c . y + 1 ,  term . c . x + 1 ) ;   
																 
																 
																					term . c . y + 1 ,  term . c . x + 1 ) ;   
															
														 
														
													
														
															
																 
																 
																			ttywrite ( buf ,  len ) ;   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																			ttywrite ( buf ,  len ,  0 ) ;   
															
														 
														
													
														
															
																 
																 
																		}   
																 
																 
																		}   
															
														 
														
													
														
															
																 
																 
																		break ;   
																 
																 
																		break ;   
															
														 
														
													
														
															
																 
																 
																	case  ' r ' :  /* DECSTBM -- Set Scrolling Region */   
																 
																 
																	case  ' r ' :  /* DECSTBM -- Set Scrolling Region */   
															
														 
														
													
												
													
														
															
																
																	
																		
																			 
																		 
																	
																	
																		
																			 
																		 
																	
																	
																 
																@ -1916,7 +1911,7 @@ iso14755(const Arg *arg)  
															
														 
														
													
														
															
																 
																 
																	    ( * e  ! =  ' \n '  & &  * e  ! =  ' \0 ' ) )   
																 
																 
																	    ( * e  ! =  ' \n '  & &  * e  ! =  ' \0 ' ) )   
															
														 
														
													
														
															
																 
																 
																		return ;   
																 
																 
																		return ;   
															
														 
														
													
														
															
																 
																 
																
  
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																	ttysend  ( uc ,  utf8encode ( utf32 ,  uc ) ) ;   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																	ttywrite  ( uc ,  utf8encode ( utf32 ,  uc ) ,  1 ) ;   
															
														 
														
													
														
															
																 
																 
																}  
																 
																 
																}  
															
														 
														
													
														
															
																 
																 
																
  
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																void  
																 
																 
																void  
															
														 
														
													
												
													
														
															
																
																	
																		
																			 
																		 
																	
																	
																		
																			 
																		 
																	
																	
																 
																@ -2129,7 +2124,7 @@ tcontrolcode(uchar ascii)  
															
														 
														
													
														
															
																 
																 
																	case  0x99 :    /* TODO: SGCI */   
																 
																 
																	case  0x99 :    /* TODO: SGCI */   
															
														 
														
													
														
															
																 
																 
																		break ;   
																 
																 
																		break ;   
															
														 
														
													
														
															
																 
																 
																	case  0x9a :    /* DECID -- Identify Terminal */   
																 
																 
																	case  0x9a :    /* DECID -- Identify Terminal */   
															
														 
														
													
														
															
																 
																 
																		ttywrite ( vtiden ,  strlen ( vtiden ) ) ;   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																		ttywrite ( vtiden ,  strlen ( vtiden ) ,  0 ) ;   
															
														 
														
													
														
															
																 
																 
																		break ;   
																 
																 
																		break ;   
															
														 
														
													
														
															
																 
																 
																	case  0x9b :    /* TODO: CSI */   
																 
																 
																	case  0x9b :    /* TODO: CSI */   
															
														 
														
													
														
															
																 
																 
																	case  0x9c :    /* TODO: ST */   
																 
																 
																	case  0x9c :    /* TODO: ST */   
															
														 
														
													
												
													
														
															
																
																	
																		
																			 
																		 
																	
																	
																		
																			 
																		 
																	
																	
																 
																@ -2201,7 +2196,7 @@ eschandle(uchar ascii)  
															
														 
														
													
														
															
																 
																 
																		}   
																 
																 
																		}   
															
														 
														
													
														
															
																 
																 
																		break ;   
																 
																 
																		break ;   
															
														 
														
													
														
															
																 
																 
																	case  ' Z ' :  /* DECID -- Identify Terminal */   
																 
																 
																	case  ' Z ' :  /* DECID -- Identify Terminal */   
															
														 
														
													
														
															
																 
																 
																		ttywrite ( vtiden ,  strlen ( vtiden ) ) ;   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																		ttywrite ( vtiden ,  strlen ( vtiden ) ,  0 ) ;   
															
														 
														
													
														
															
																 
																 
																		break ;   
																 
																 
																		break ;   
															
														 
														
													
														
															
																 
																 
																	case  ' c ' :  /* RIS -- Reset to inital state */   
																 
																 
																	case  ' c ' :  /* RIS -- Reset to inital state */   
															
														 
														
													
														
															
																 
																 
																		treset ( ) ;   
																 
																 
																		treset ( ) ;