@ -56,34 +56,62 @@ static unsigned int defaultucs = 257;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					/*  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  Special  keys  ( change  &  recompile  st . info  accordingly )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  Keep  in  mind  that  kpress ( )  in  st . c  hardcodes  some  keys .   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  Mask  value :   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  *  Use  XK_ANY_MOD  to  match  the  key  no  matter  modifiers  state   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  *  Use  XK_NO_MOD  to  match  the  key  alone  ( no  modifiers )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  keypad  value :   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  *  0 :  no  value   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  *  >  0 :  keypad  application  mode  enabled   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  *  <  0 :  keypad  application  mode  disabled   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  cursor  value :   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  *  0 :  no  value   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  *  >  0 :  cursor  application  mode  enabled   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  *  <  0 :  cursor  application  mode  disabled   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  crlf  value   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  *  0 :  no  value   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  *  >  0 :  crlf  mode  is  enabled   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  *  <  0 :  crlf  mode  is  disabled   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 */   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					/* key, mask, output */  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					/* key, mask, output, keypad, cursor, crlf  */  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  Key  key [ ]  =  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_BackSpace ,  XK_NO_MOD ,  " \177 "  } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_Insert ,     XK_NO_MOD ,  " \033 [2~ "  } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_Delete ,     XK_NO_MOD ,  " \033 [3~ "  } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_Home ,       XK_NO_MOD ,  " \033 [1~ "  } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_End ,        XK_NO_MOD ,  " \033 [4~ "  } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_Prior ,      XK_NO_MOD ,  " \033 [5~ "  } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_Next ,       XK_NO_MOD ,  " \033 [6~ "  } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_F1 ,         XK_NO_MOD ,  " \033 OP "    } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_F2 ,         XK_NO_MOD ,  " \033 OQ "    } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_F3 ,         XK_NO_MOD ,  " \033 OR "    } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_F4 ,         XK_NO_MOD ,  " \033 OS "    } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_F5 ,         XK_NO_MOD ,  " \033 [15~ "  } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_F6 ,         XK_NO_MOD ,  " \033 [17~ "  } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_F7 ,         XK_NO_MOD ,  " \033 [18~ "  } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_F8 ,         XK_NO_MOD ,  " \033 [19~ "  } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_F9 ,         XK_NO_MOD ,  " \033 [20~ "  } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_F10 ,        XK_NO_MOD ,  " \033 [21~ "  } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_F11 ,        XK_NO_MOD ,  " \033 [23~ "  } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_F12 ,        XK_NO_MOD ,  " \033 [24~ "  } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						/* keysym             mask         string         keypad cursor crlf */   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_BackSpace ,      XK_NO_MOD ,       " \177 " ,           0 ,     0 ,     0 } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_Up ,             XK_NO_MOD ,       " \033 [A " ,         0 ,    - 1 ,     0 } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_Up ,             XK_NO_MOD ,       " \033 OA " ,         0 ,    + 1 ,     0 } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_Up ,             ShiftMask ,       " \033 [a " ,         0 ,     0 ,     0 } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_Down ,           XK_NO_MOD ,       " \033 [B " ,         0 ,    - 1 ,     0 } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_Down ,           XK_NO_MOD ,       " \033 OB " ,         0 ,    + 1 ,     0 } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_Down ,           ShiftMask ,       " \033 [b " ,         0 ,     0 ,     0 } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_Left ,      	    XK_NO_MOD ,       " \033 [D " ,         0 ,    - 1 ,     0 } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_Left ,           XK_NO_MOD ,       " \033 OD " ,         0 ,    + 1 ,     0 } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_Left ,           ShiftMask ,       " \033 [d " ,         0 ,     0 ,     0 } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_Right ,          XK_NO_MOD ,       " \033 [C " ,         0 ,    - 1 ,     0 } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_Right ,          XK_NO_MOD ,       " \033 OC " ,         0 ,    + 1 ,     0 } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_Right ,          ShiftMask ,       " \033 [c " ,         0 ,     0 ,     0 } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_Return ,         XK_NO_MOD ,       " \n " ,             0 ,     0 ,    - 1 } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_Return ,         XK_NO_MOD ,       " \r \n " ,           0 ,     0 ,    + 1 } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_Return ,         Mod1Mask ,        " \033 \n " ,         0 ,     0 ,    - 1 } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_Return ,         Mod1Mask ,        " \033 \r \n " ,       0 ,     0 ,    + 1 } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_Insert ,         XK_NO_MOD ,       " \033 [2~ " ,        0 ,     0 ,     0 } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_Delete ,         XK_NO_MOD ,       " \033 [3~ " ,        0 ,     0 ,     0 } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_Home ,           XK_NO_MOD ,       " \033 [1~ " ,        0 ,     0 ,     0 } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_End ,            XK_NO_MOD ,       " \033 [4~ " ,        0 ,     0 ,     0 } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_Prior ,          XK_NO_MOD ,       " \033 [5~ " ,        0 ,     0 ,     0 } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_Next ,           XK_NO_MOD ,       " \033 [6~ " ,        0 ,     0 ,     0 } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_F1 ,             XK_NO_MOD ,       " \033 OP "  ,        0 ,     0 ,     0 } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_F2 ,             XK_NO_MOD ,       " \033 OQ "  ,        0 ,     0 ,     0 } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_F3 ,             XK_NO_MOD ,       " \033 OR "  ,        0 ,     0 ,     0 } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_F4 ,             XK_NO_MOD ,       " \033 OS "  ,        0 ,     0 ,     0 } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_F5 ,             XK_NO_MOD ,       " \033 [15~ " ,       0 ,     0 ,     0 } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_F6 ,             XK_NO_MOD ,       " \033 [17~ " ,       0 ,     0 ,     0 } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_F7 ,             XK_NO_MOD ,       " \033 [18~ " ,       0 ,     0 ,     0 } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_F8 ,             XK_NO_MOD ,       " \033 [19~ " ,       0 ,     0 ,     0 } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_F9 ,             XK_NO_MOD ,       " \033 [20~ " ,       0 ,     0 ,     0 } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_F10 ,            XK_NO_MOD ,       " \033 [21~ " ,       0 ,     0 ,     0 } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_F11 ,            XK_NO_MOD ,       " \033 [23~ " ,       0 ,     0 ,     0 } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_F12 ,            XK_NO_MOD ,       " \033 [24~ " ,       0 ,     0 ,     0 } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					} ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					/* Internal shortcuts. */