| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -40,10 +40,13 @@ enum { CRset=1, CRupdate=2 }; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					enum { TMwrap=1, TMinsert=2 }; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					enum { SCupdate, SCredraw }; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					#include "config.h" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					typedef int Color; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					typedef struct { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						KeySym k; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						char s[ESCSIZ]; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} Key; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					typedef struct { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						char c;     /* character code  */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						char mode;  /* attribute flags */ | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -95,6 +98,8 @@ typedef struct { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int cw; /* char width  */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} XWindow;  | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					#include "config.h" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					/* Drawing Context */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					typedef struct { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						unsigned long col[LEN(colorname)]; | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -992,6 +997,15 @@ 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 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					kpress(XKeyEvent *e) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						KeySym ksym; | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -1004,7 +1018,7 @@ kpress(XKeyEvent *e) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						meta  = e->state & Mod1Mask; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						shift = e->state & ShiftMask; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						len = XLookupString(e, buf, sizeof(buf), &ksym, NULL); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(skmap = key[ksym]) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(skmap = kmap(ksym)) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							ttywrite(skmap, strlen(skmap)); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						else if(len > 0) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							buf[sizeof(buf)-1] = '\0'; | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |