|
|
@ -264,7 +264,7 @@ typedef struct {
|
|
|
|
typedef struct {
|
|
|
|
typedef struct {
|
|
|
|
KeySym k;
|
|
|
|
KeySym k;
|
|
|
|
uint mask;
|
|
|
|
uint mask;
|
|
|
|
char s[ESC_BUF_SIZ];
|
|
|
|
char *s;
|
|
|
|
/* three valued logic variables: 0 indifferent, 1 on, -1 off */
|
|
|
|
/* three valued logic variables: 0 indifferent, 1 on, -1 off */
|
|
|
|
signed char appkey; /* application keypad */
|
|
|
|
signed char appkey; /* application keypad */
|
|
|
|
signed char appcursor; /* application cursor */
|
|
|
|
signed char appcursor; /* application cursor */
|
|
|
@ -3585,12 +3585,15 @@ kpress(XEvent *ev) {
|
|
|
|
/* 2. custom keys from config.h */
|
|
|
|
/* 2. custom keys from config.h */
|
|
|
|
if((customkey = kmap(ksym, e->state))) {
|
|
|
|
if((customkey = kmap(ksym, e->state))) {
|
|
|
|
len = strlen(customkey);
|
|
|
|
len = strlen(customkey);
|
|
|
|
memcpy(buf, customkey, len);
|
|
|
|
ttywrite(customkey, len);
|
|
|
|
|
|
|
|
if(IS_SET(MODE_ECHO))
|
|
|
|
|
|
|
|
techo(customkey, len);
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* 3. composed string from input method */
|
|
|
|
/* 3. composed string from input method */
|
|
|
|
} 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(*buf < 0177) {
|
|
|
|
if(*buf < 0177) {
|
|
|
@ -3603,8 +3606,6 @@ kpress(XEvent *ev) {
|
|
|
|
len = 2;
|
|
|
|
len = 2;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ttywrite(buf, len);
|
|
|
|
ttywrite(buf, len);
|
|
|
|
if(IS_SET(MODE_ECHO))
|
|
|
|
if(IS_SET(MODE_ECHO))
|
|
|
|
techo(buf, len);
|
|
|
|
techo(buf, len);
|
|
|
|