Always load the CSI driver because it contains cross-terminal mouse and CSI u handling
This commit is contained in:
parent
f33513282a
commit
a6aa8c433b
17
driver-csi.c
17
driver-csi.c
|
@ -140,23 +140,6 @@ static int register_keys(void)
|
||||||
|
|
||||||
static void *new_driver(TermKey *tk, const char *term)
|
static void *new_driver(TermKey *tk, const char *term)
|
||||||
{
|
{
|
||||||
if(strncmp(term, "xterm", 5) == 0) {
|
|
||||||
// We want "xterm" or "xtermc" or "xterm-..."
|
|
||||||
if(term[5] != 0 && term[5] != '-' && term[5] != 'c')
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
else if(strcmp(term, "screen") == 0) {
|
|
||||||
/* Also apply for screen, because it might be transporting xterm-like
|
|
||||||
* sequences. Yes, this sucks. We shouldn't need to rely on this behaviour
|
|
||||||
* but there's no other way to know, and if we don't then we won't
|
|
||||||
* recognise its sequences.
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
else
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
// Excellent - we'll continue
|
|
||||||
|
|
||||||
if(!keyinfo_initialised)
|
if(!keyinfo_initialised)
|
||||||
if(!register_keys())
|
if(!register_keys())
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
10
t/02getkey.c
10
t/02getkey.c
|
@ -6,7 +6,7 @@ int main(int argc, char *argv[])
|
||||||
TermKey *tk;
|
TermKey *tk;
|
||||||
TermKeyKey key;
|
TermKeyKey key;
|
||||||
|
|
||||||
plan_tests(27);
|
plan_tests(31);
|
||||||
|
|
||||||
tk = termkey_new_abstract("vt100", 0);
|
tk = termkey_new_abstract("vt100", 0);
|
||||||
|
|
||||||
|
@ -61,6 +61,14 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
is_int(termkey_get_buffer_remaining(tk), 256, "buffer free 256 after completion");
|
is_int(termkey_get_buffer_remaining(tk), 256, "buffer free 256 after completion");
|
||||||
|
|
||||||
|
termkey_push_bytes(tk, "\033[27;5u", 7);
|
||||||
|
|
||||||
|
is_int(termkey_getkey(tk, &key), TERMKEY_RES_KEY, "getkey yields RES_KEY after Ctrl-Escape");
|
||||||
|
|
||||||
|
is_int(key.type, TERMKEY_TYPE_KEYSYM, "key.type after Ctrl-Escape");
|
||||||
|
is_int(key.code.sym, TERMKEY_SYM_ESCAPE, "key.code.sym after Ctrl-Escape");
|
||||||
|
is_int(key.modifiers, TERMKEY_KEYMOD_CTRL, "key.modifiers after Ctrl-Escape");
|
||||||
|
|
||||||
termkey_destroy(tk);
|
termkey_destroy(tk);
|
||||||
|
|
||||||
return exit_status();
|
return exit_status();
|
||||||
|
|
|
@ -12,8 +12,7 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
plan_tests(60);
|
plan_tests(60);
|
||||||
|
|
||||||
/* vt100 doesn't have a mouse, we need xterm */
|
tk = termkey_new_abstract("vt100", 0);
|
||||||
tk = termkey_new_abstract("xterm", 0);
|
|
||||||
|
|
||||||
termkey_push_bytes(tk, "\e[M !!", 6);
|
termkey_push_bytes(tk, "\e[M !!", 6);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue