| 
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -3563,8 +3563,8 @@ void | 
															
														
														
													
														
															
																 | 
																 | 
																kpress(XEvent *ev) { | 
																 | 
																 | 
																kpress(XEvent *ev) { | 
															
														
														
													
														
															
																 | 
																 | 
																	XKeyEvent *e = &ev->xkey; | 
																 | 
																 | 
																	XKeyEvent *e = &ev->xkey; | 
															
														
														
													
														
															
																 | 
																 | 
																	KeySym ksym; | 
																 | 
																 | 
																	KeySym ksym; | 
															
														
														
													
														
															
																 | 
																 | 
																	char xstr[31], buf[32], *customkey, *cp = buf; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	int len, ret; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	char buf[32], *customkey; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	int len; | 
															
														
														
													
														
															
																 | 
																 | 
																	long c; | 
																 | 
																 | 
																	long c; | 
															
														
														
													
														
															
																 | 
																 | 
																	Status status; | 
																 | 
																 | 
																	Status status; | 
															
														
														
													
														
															
																 | 
																 | 
																	Shortcut *bp; | 
																 | 
																 | 
																	Shortcut *bp; | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -3572,7 +3572,7 @@ kpress(XEvent *ev) { | 
															
														
														
													
														
															
																 | 
																 | 
																	if(IS_SET(MODE_KBDLOCK)) | 
																 | 
																 | 
																	if(IS_SET(MODE_KBDLOCK)) | 
															
														
														
													
														
															
																 | 
																 | 
																		return; | 
																 | 
																 | 
																		return; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																	len = XmbLookupString(xw.xic, e, xstr, sizeof(xstr), &ksym, &status); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	len = XmbLookupString(xw.xic, e, buf, sizeof buf, &ksym, &status); | 
															
														
														
													
														
															
																 | 
																 | 
																	e->state &= ~Mod2Mask; | 
																 | 
																 | 
																	e->state &= ~Mod2Mask; | 
															
														
														
													
														
															
																 | 
																 | 
																	/* 1. shortcuts */ | 
																 | 
																 | 
																	/* 1. shortcuts */ | 
															
														
														
													
														
															
																 | 
																 | 
																	for(bp = shortcuts; bp < shortcuts + LEN(shortcuts); bp++) { | 
																 | 
																 | 
																	for(bp = shortcuts; bp < shortcuts + LEN(shortcuts); bp++) { | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -3586,26 +3586,23 @@ kpress(XEvent *ev) { | 
															
														
														
													
														
															
																 | 
																 | 
																	if((customkey = kmap(ksym, e->state))) { | 
																 | 
																 | 
																	if((customkey = kmap(ksym, e->state))) { | 
															
														
														
													
														
															
																 | 
																 | 
																		len = strlen(customkey); | 
																 | 
																 | 
																		len = strlen(customkey); | 
															
														
														
													
														
															
																 | 
																 | 
																		memcpy(buf, customkey, len); | 
																 | 
																 | 
																		memcpy(buf, customkey, len); | 
															
														
														
													
														
															
																 | 
																 | 
																	/* 3. hardcoded (overrides X lookup) */ | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	/* 3. composed string from input method */ | 
															
														
														
													
														
															
																 | 
																 | 
																	} else { | 
																 | 
																 | 
																	} else { | 
															
														
														
													
														
															
																 | 
																 | 
																		if(len == 0) | 
																 | 
																 | 
																		if(len == 0) | 
															
														
														
													
														
															
																 | 
																 | 
																			return; | 
																 | 
																 | 
																			return; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																		if(len == 1 && e->state & Mod1Mask) { | 
																 | 
																 | 
																		if(len == 1 && e->state & Mod1Mask) { | 
															
														
														
													
														
															
																 | 
																 | 
																			if(IS_SET(MODE_8BIT)) { | 
																 | 
																 | 
																			if(IS_SET(MODE_8BIT)) { | 
															
														
														
													
														
															
																 | 
																 | 
																				if(*xstr < 0177) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																					c = *xstr | 0x80; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																					ret = utf8encode(&c, cp); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																					cp += ret; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																					len = 0; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																				if(*buf < 0177) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																					c = *buf | 0x80; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																					len = utf8encode(&c, buf); | 
															
														
														
													
														
															
																 | 
																 | 
																				} | 
																 | 
																 | 
																				} | 
															
														
														
													
														
															
																 | 
																 | 
																			} else { | 
																 | 
																 | 
																			} else { | 
															
														
														
													
														
															
																 | 
																 | 
																				*cp++ = '\033'; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																				buf[1] = buf[0]; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																				buf[0] = '\033'; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																				len = 2; | 
															
														
														
													
														
															
																 | 
																 | 
																			} | 
																 | 
																 | 
																			} | 
															
														
														
													
														
															
																 | 
																 | 
																		} | 
																 | 
																 | 
																		} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																		memcpy(cp, xstr, len); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																		len = cp - buf + len; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	} | 
																 | 
																 | 
																	} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																	ttywrite(buf, len); | 
																 | 
																 | 
																	ttywrite(buf, len); | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																	
																 | 
																
  |