@ -89,15 +89,19 @@ char *argv0;  
			
		
	
		
			
				
					# define VT102ID "\033[?6c"  
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					enum  glyph_attribute  {  
			
		
	
		
			
				
						 ATTR_NULL       =  0 ,  
			
		
	
		
			
				
						ATTR_REVERSE     =  1 ,   
			
		
	
		
			
				
						ATTR_UNDERLINE   =  2 ,   
			
		
	
		
			
				
						ATTR_BOLD        =  4 ,   
			
		
	
		
			
				
						ATTR_ITALIC      =  8 ,   
			
		
	
		
			
				
					         ATTR_NULL       =  0 ,  
			
		
	
		
			
				
						ATTR_BOLD        =  1 ,   
			
		
	
		
			
				
						ATTR_FAINT       =  2 ,   
			
		
	
		
			
				
						ATTR_ITALIC      =  4 ,   
			
		
	
		
			
				
						ATTR_UNDERLINE   =  8 ,   
			
		
	
		
			
				
						ATTR_BLINK      =  16 ,   
			
		
	
		
			
				
						ATTR_WRAP       =  32 ,   
			
		
	
		
			
				
						ATTR_WIDE       =  64 ,   
			
		
	
		
			
				
						ATTR_WDUMMY     =  128 ,   
			
		
	
		
			
				
						ATTR_FASTBLINK  =  32 ,   
			
		
	
		
			
				
						ATTR_REVERSE    =  64 ,   
			
		
	
		
			
				
						ATTR_INVISIBLE  =  128 ,   
			
		
	
		
			
				
						ATTR_STRUCK     =  256 ,   
			
		
	
		
			
				
						ATTR_WRAP       =  512 ,   
			
		
	
		
			
				
						ATTR_WIDE       =  1024 ,   
			
		
	
		
			
				
						ATTR_WDUMMY     =  2048 ,   
			
		
	
		
			
				
					} ;  
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					enum  cursor_movement  {  
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -1681,15 +1685,25 @@ tsetattr(int *attr, int l) {  
			
		
	
		
			
				
						for ( i  =  0 ;  i  <  l ;  i + + )  {   
			
		
	
		
			
				
							switch ( attr [ i ] )  {   
			
		
	
		
			
				
							case  0 :   
			
		
	
		
			
				
								term . c . attr . mode  & =  ~ ( ATTR_REVERSE  |  ATTR_UNDERLINE  \   
			
		
	
		
			
				
										|  ATTR_BOLD  |  ATTR_ITALIC  \   
			
		
	
		
			
				
										|  ATTR_BLINK ) ;   
			
		
	
		
			
				
								term . c . attr . mode  & =  ~ (   
			
		
	
		
			
				
									ATTR_BOLD        |   
			
		
	
		
			
				
									ATTR_FAINT       |   
			
		
	
		
			
				
									ATTR_ITALIC      |   
			
		
	
		
			
				
									ATTR_UNDERLINE   |   
			
		
	
		
			
				
									ATTR_BLINK       |   
			
		
	
		
			
				
									ATTR_FASTBLINK   |   
			
		
	
		
			
				
									ATTR_REVERSE     |   
			
		
	
		
			
				
									ATTR_INVISIBLE   |   
			
		
	
		
			
				
									ATTR_STRUCK      ) ;   
			
		
	
		
			
				
								term . c . attr . fg  =  defaultfg ;   
			
		
	
		
			
				
								term . c . attr . bg  =  defaultbg ;   
			
		
	
		
			
				
								break ;   
			
		
	
		
			
				
							case  1 :   
			
		
	
		
			
				
								term . c . attr . mode  | =  ATTR_BOLD ;   
			
		
	
		
			
				
								break ;   
			
		
	
		
			
				
							case  2 :   
			
		
	
		
			
				
								term . c . attr . mode  | =  ATTR_FAINT ;   
			
		
	
		
			
				
								break ;   
			
		
	
		
			
				
							case  3 :   
			
		
	
		
			
				
								term . c . attr . mode  | =  ATTR_ITALIC ;   
			
		
	
		
			
				
								break ;   
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -1697,16 +1711,26 @@ tsetattr(int *attr, int l) {  
			
		
	
		
			
				
								term . c . attr . mode  | =  ATTR_UNDERLINE ;   
			
		
	
		
			
				
								break ;   
			
		
	
		
			
				
							case  5 :  /* slow blink */   
			
		
	
		
			
				
							case  6 :  /* rapid blink */   
			
		
	
		
			
				
								term . c . attr . mode  | =  ATTR_BLINK ;   
			
		
	
		
			
				
								break ;   
			
		
	
		
			
				
							case  6 :  /* rapid blink */   
			
		
	
		
			
				
								term . c . attr . mode  | =  ATTR_FASTBLINK ;   
			
		
	
		
			
				
								break ;   
			
		
	
		
			
				
							case  7 :   
			
		
	
		
			
				
								term . c . attr . mode  | =  ATTR_REVERSE ;   
			
		
	
		
			
				
								break ;   
			
		
	
		
			
				
							case  8 :   
			
		
	
		
			
				
								term . c . attr . mode  | =  ATTR_INVISIBLE ;   
			
		
	
		
			
				
								break ;   
			
		
	
		
			
				
							case  9 :   
			
		
	
		
			
				
								term . c . attr . mode  | =  ATTR_STRUCK ;   
			
		
	
		
			
				
								break ;   
			
		
	
		
			
				
							case  21 :   
			
		
	
		
			
				
							case  22 :   
			
		
	
		
			
				
								term . c . attr . mode  & =  ~ ATTR_BOLD ;   
			
		
	
		
			
				
								break ;   
			
		
	
		
			
				
							case  22 :   
			
		
	
		
			
				
								term . c . attr . mode  & =  ~ ATTR_FAINT ;   
			
		
	
		
			
				
								break ;   
			
		
	
		
			
				
							case  23 :   
			
		
	
		
			
				
								term . c . attr . mode  & =  ~ ATTR_ITALIC ;   
			
		
	
		
			
				
								break ;   
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -1714,12 +1738,20 @@ tsetattr(int *attr, int l) {  
			
		
	
		
			
				
								term . c . attr . mode  & =  ~ ATTR_UNDERLINE ;   
			
		
	
		
			
				
								break ;   
			
		
	
		
			
				
							case  25 :   
			
		
	
		
			
				
							case  26 :   
			
		
	
		
			
				
								term . c . attr . mode  & =  ~ ATTR_BLINK ;   
			
		
	
		
			
				
								break ;   
			
		
	
		
			
				
							case  26 :   
			
		
	
		
			
				
								term . c . attr . mode  & =  ~ ATTR_FASTBLINK ;   
			
		
	
		
			
				
								break ;   
			
		
	
		
			
				
							case  27 :   
			
		
	
		
			
				
								term . c . attr . mode  & =  ~ ATTR_REVERSE ;   
			
		
	
		
			
				
								break ;   
			
		
	
		
			
				
							case  28 :   
			
		
	
		
			
				
								term . c . attr . mode  & =  ~ ATTR_INVISIBLE ;   
			
		
	
		
			
				
								break ;   
			
		
	
		
			
				
							case  29 :   
			
		
	
		
			
				
								term . c . attr . mode  & =  ~ ATTR_STRUCK ;   
			
		
	
		
			
				
								break ;   
			
		
	
		
			
				
							case  38 :   
			
		
	
		
			
				
								if  ( ( idx  =  tdefcolor ( attr ,  & i ,  l ) )  > =  0 )   
			
		
	
		
			
				
									term . c . attr . fg  =  idx ;