version 1.78, 2020/05/25 18:57:25 |
version 1.79, 2020/06/01 16:09:35 |
|
|
ike = input_key_get(key); |
ike = input_key_get(key); |
if (ike == NULL && (key & KEYC_META) && (~key & KEYC_IMPLIED_META)) |
if (ike == NULL && (key & KEYC_META) && (~key & KEYC_IMPLIED_META)) |
ike = input_key_get(key & ~KEYC_META); |
ike = input_key_get(key & ~KEYC_META); |
|
if (ike == NULL && (key & KEYC_CURSOR)) |
|
ike = input_key_get(key & ~KEYC_CURSOR); |
|
if (ike == NULL && (key & KEYC_KEYPAD)) |
|
ike = input_key_get(key & ~KEYC_KEYPAD); |
if (ike != NULL) { |
if (ike != NULL) { |
log_debug("found key 0x%llx: \"%s\"", key, ike->data); |
log_debug("found key 0x%llx: \"%s\"", key, ike->data); |
if (key & KEYC_META && (~key & KEYC_IMPLIED_META)) |
if ((key & KEYC_META) && (~key & KEYC_IMPLIED_META)) |
bufferevent_write(bev, "\033", 1); |
bufferevent_write(bev, "\033", 1); |
bufferevent_write(bev, ike->data, strlen(ike->data)); |
bufferevent_write(bev, ike->data, strlen(ike->data)); |
return (0); |
return (0); |
|
|
|
|
/* No builtin key sequence; construct an extended key sequence. */ |
/* No builtin key sequence; construct an extended key sequence. */ |
if (~s->mode & MODE_KEXTENDED) { |
if (~s->mode & MODE_KEXTENDED) { |
justkey = (key & KEYC_MASK_KEY); |
|
if ((key & KEYC_MASK_MODIFIERS) != KEYC_CTRL) |
if ((key & KEYC_MASK_MODIFIERS) != KEYC_CTRL) |
goto missing; |
goto missing; |
|
justkey = (key & KEYC_MASK_KEY); |
switch (justkey) { |
switch (justkey) { |
case ' ': |
case ' ': |
case '2': |
case '2': |
key = 0||(key & ~KEYC_MASK_KEY); |
key = 0|(key & ~KEYC_MASK_KEY); |
break; |
break; |
case '|': |
case '|': |
key = 28|(key & ~KEYC_MASK_KEY); |
key = 28|(key & ~KEYC_MASK_KEY); |
|
|
key = (justkey - 'A')|(key & ~KEYC_MASK_KEY); |
key = (justkey - 'A')|(key & ~KEYC_MASK_KEY); |
else if (justkey >= 'a' && justkey <= '~') |
else if (justkey >= 'a' && justkey <= '~') |
key = (justkey - 96)|(key & ~KEYC_MASK_KEY); |
key = (justkey - 96)|(key & ~KEYC_MASK_KEY); |
|
else |
|
return (0); |
break; |
break; |
} |
} |
return (input_key(s, bev, key & ~KEYC_CTRL)); |
return (input_key(s, bev, key & ~KEYC_CTRL)); |