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:
Paul LeoNerd Evans 2008-11-09 22:41:44 +00:00
parent 30a3356815
commit 9757a73daa
1 changed files with 13 additions and 6 deletions

View File

@ -26,12 +26,19 @@ static termkey_keysym register_csifunc_full(termkey_csi *csi, termkey_type type,
static void *new_driver(termkey_t *tk, const char *term)
{
// Only care about term types beginning "xterm"
if(strncmp(term, "xterm", 5) != 0)
return NULL;
// We want "xterm" or "xtermc" or "xterm-..."
if(term[5] != 0 && term[5] != '-' && term[5] != 'c')
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