CSI driver should also load when TERM=screen because of screen's stupid way of blind-forwarding keypresses it doesn't understand
This commit is contained in:
parent
30a3356815
commit
9757a73daa
15
driver-csi.c
15
driver-csi.c
|
@ -26,13 +26,20 @@ static termkey_keysym register_csifunc_full(termkey_csi *csi, termkey_type type,
|
||||||
|
|
||||||
static void *new_driver(termkey_t *tk, const char *term)
|
static void *new_driver(termkey_t *tk, const char *term)
|
||||||
{
|
{
|
||||||
// Only care about term types beginning "xterm"
|
if(strncmp(term, "xterm", 5) == 0) {
|
||||||
if(strncmp(term, "xterm", 5) != 0)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
// We want "xterm" or "xtermc" or "xterm-..."
|
// We want "xterm" or "xtermc" or "xterm-..."
|
||||||
if(term[5] != 0 && term[5] != '-' && term[5] != 'c')
|
if(term[5] != 0 && term[5] != '-' && term[5] != 'c')
|
||||||
return NULL;
|
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
|
// Excellent - we'll continue
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue