Pass 'term' string into new_driver virtual method; have drivers sensitive to it and return NULL if they can't handle. Try CSI driver first; only for xterm-alikes

This commit is contained in:
Paul LeoNerd Evans
2008-10-09 20:23:45 +01:00
parent a61b916c18
commit 05639c4773
4 changed files with 21 additions and 6 deletions

View File

@@ -9,8 +9,8 @@
#include <stdio.h>
static struct termkey_driver *drivers[] = {
&termkey_driver_ti,
&termkey_driver_csi,
&termkey_driver_ti,
NULL,
};
@@ -133,8 +133,10 @@ termkey_t *termkey_new_full(int fd, int flags, size_t buffsize, int waittime)
register_c0(tk, TERMKEY_SYM_ENTER, 0x0d, NULL);
register_c0(tk, TERMKEY_SYM_ESCAPE, 0x1b, NULL);
const char *term = getenv("TERM");
for(i = 0; drivers[i]; i++) {
void *driver_info = (*drivers[i]->new_driver)(tk);
void *driver_info = (*drivers[i]->new_driver)(tk, term);
if(!driver_info)
continue;