@ -1,5 +1,5 @@  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					/* See LICENSE for licence details. */  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					# define _XOPEN_SOURCE  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					# define _XOPEN_SOURCE 600   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					# include  <ctype.h>  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					# include  <errno.h>  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					# include  <fcntl.h>  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				
					@ -107,61 +107,68 @@ typedef struct {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						GC  gc ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					}  DC ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  die ( const  char  * errstr ,  . . . ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  draw ( int ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  execsh ( void ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  sigchld ( int ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					char *  kmap ( KeySym ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  kpress ( XKeyEvent  * ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  resize ( XEvent  * ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  run ( void ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					int  escaddc ( char ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					int  escfinal ( char ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  escdump ( void ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  eschandle ( void ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  escparse ( void ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  escreset ( void ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  tclearregion ( int ,  int ,  int ,  int ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  tcpos ( int ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  tcursor ( int ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  tdeletechar ( int ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  tdeleteline ( int ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  tdump ( void ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  tinsertblank ( int ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  tinsertblankline ( int ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  tmoveto ( int ,  int ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  tnew ( int ,  int ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  tnewline ( void ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  tputc ( char ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  tputs ( char * ,  int ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  tresize ( int ,  int ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  tscroll ( void ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  tsetattr ( int * ,  int ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  tsetchar ( char ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  tsetscroll ( int ,  int ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  ttynew ( void ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  ttyread ( void ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  ttyresize ( int ,  int ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  ttywrite ( char  * ,  size_t ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					unsigned  long  xgetcol ( const  char  * ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  xclear ( int ,  int ,  int ,  int ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  xcursor ( int ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  xdrawc ( int ,  int ,  Glyph ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  xinit ( void ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  xscroll ( void ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  die ( const  char  * errstr ,  . . . ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  draw ( int ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  execsh ( void ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  sigchld ( int ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  run ( void ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  int  escaddc ( char ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  int  escfinal ( char ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  escdump ( void ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  eschandle ( void ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  escparse ( void ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  escreset ( void ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  tclearregion ( int ,  int ,  int ,  int ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  tcpos ( int ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  tcursor ( int ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  tdeletechar ( int ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  tdeleteline ( int ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  tdump ( void ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  tinsertblank ( int ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  tinsertblankline ( int ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  tmoveto ( int ,  int ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  tnew ( int ,  int ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  tnewline ( void ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  tputc ( char ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  tputs ( char * ,  int ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  tresize ( int ,  int ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  tscroll ( void ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  tsetattr ( int * ,  int ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  tsetchar ( char ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  tsetscroll ( int ,  int ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  ttynew ( void ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  ttyread ( void ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  ttyresize ( int ,  int ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  ttywrite ( const  char  * ,  size_t ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  unsigned  long  xgetcol ( const  char  * ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  xclear ( int ,  int ,  int ,  int ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  xcursor ( int ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  xdrawc ( int ,  int ,  Glyph ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  xinit ( void ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  xscroll ( void ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  expose ( XEvent  * ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  kpress ( XEvent  * ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  resize ( XEvent  * ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  ( * handler [ LASTEvent ] ) ( XEvent  * )  =  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						[ KeyPress ]  =  kpress ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						[ Expose ]  =  expose ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						[ ConfigureNotify ]  =  resize   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					} ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					/* Globals */  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					DC  dc ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					XWindow  xw ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					Term  term ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					Escseq  escseq ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					int  cmdfd ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					pid_t  pid ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					int  running ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  DC  dc ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  XWindow  xw ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  Term  term ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  Escseq  escseq ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  int  cmdfd ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  pid_t  pid ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  int  running ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					die ( const  char  * errstr ,  . . . )  {  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				
					@ -259,7 +266,7 @@ ttyread(void) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					ttywrite ( char  * s ,  size_t  n )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					ttywrite ( const  char  * s ,  size_t  n )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						if ( write ( cmdfd ,  s ,  n )  = =  - 1 )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							die ( " write error on tty: %s \n " ,  SERRNO ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					}  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				
					@ -997,29 +1004,25 @@ draw(int redraw_all) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						xcursor ( CSdraw ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					char *  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					kmap ( KeySym  k )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						int  i ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						for ( i  =  0 ;  i  <  LEN ( key ) ;  i + + )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							if ( key [ i ] . k  = =  k )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
								return  ( char * ) key [ i ] . s ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						return  NULL ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					expose ( XEvent  * ev )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						draw ( SCredraw ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					kpress ( XKeyEvent  * e )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					kpress ( XEvent  * ev )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						XKeyEvent  * e  =  & ev - > xkey ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						KeySym  ksym ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						char  buf [ 32 ] ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						int  len ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						int  meta ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						int  shift ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						char *  skmap ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						meta   =  e - > state  &  Mod1Mask ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						shift  =  e - > state  &  ShiftMask ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						len  =  XLookupString ( e ,  buf ,  sizeof ( buf ) ,  & ksym ,  NULL ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						if ( skmap  =  kmap ( ksym ) )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							ttywrite ( skmap ,  strlen ( skmap ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						if ( key [ ksym ] )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							ttywrite ( key [ ksy mn>pan class="p">]  ,  strlen ( key [ ksy mn>pan class="p">]  ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						else  if ( len  >  0 )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							buf [ sizeof ( buf ) - 1 ]  =  ' \0 ' ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							if ( meta  & &  len  = =  1 )   
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				
					@ -1054,7 +1057,6 @@ resize(XEvent *e) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					run ( void )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						int  ret ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						XEvent  ev ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						fd_set  rfd ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						int  xfd  =  XConnectionNumber ( xw . dis ) ;   
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -1062,39 +1064,25 @@ run(void) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						running  =  1 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						XSelectInput ( xw . dis ,  xw . win ,  ExposureMask  |  KeyPressMask  |  StructureNotifyMask ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						XResizeWindow ( xw . dis ,  xw . win ,  xw . w  ,  xw . h ) ;  /* fix resize bug in wmii (?) */   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						while ( running )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							FD_ZERO ( & rfd ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							FD_SET ( cmdfd ,  & rfd ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							FD_SET ( xfd ,  & rfd ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							XFlush ( xw . dis ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							ret  =  select ( MAX ( xfd ,  cmdfd ) + 1 ,  & rfd ,  NULL ,  NULL ,  NULL ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							if ( ret  <  0 )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							if ( select ( MAX ( xfd ,  cmdfd ) + 1 ,  & rfd ,  NULL ,  NULL ,  NULL )  = =  - 1 )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
								if ( errno  = =  EINTR )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
									continue ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
								die ( " select failed: %s \n " ,  SERRNO ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
									  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							if ( FD_ISSET ( xfd ,  & rfd ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
								while ( XPending ( xw . dis ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
									XNextEvent ( xw . dis ,  & ev ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
									switch  ( ev . type )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
									default :   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
										break ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
									case  KeyPress :   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
										kpress ( & ev . xkey ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
										break ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
									case  Expose :   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
										draw ( SCredraw ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
										break ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
									case  ConfigureNotify :   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
										resize ( & ev ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
										break ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
									}   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
								}   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							}   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							if ( FD_ISSET ( cmdfd ,  & rfd ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
								ttyread ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
								draw ( SCupdate ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							}   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							while ( XPending ( xw . dis ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
								XNextEvent ( xw . dis ,  & ev ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
								if ( handler [ ev . type ] )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
									( handler [ ev . type ] ) ( & ev ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							}   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						}   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					}