Use a macro for looking up tty types.

pull/717/merge
nicm 2017-01-11 16:05:46 +00:00
parent 458b6eb600
commit 7497ecd979
2 changed files with 17 additions and 20 deletions

2
tmux.h
View File

@ -1152,6 +1152,8 @@ struct tty {
struct event key_timer;
struct tty_key *key_tree;
};
#define TTY_TYPES \
{ "VT100", "VT101", "VT102", "VT220", "VT320", "VT420", "UNKNOWN" }
/* TTY command context. */
struct tty_ctx {

View File

@ -837,9 +837,10 @@ static int
tty_keys_device_attributes(struct tty *tty, const char *buf, size_t len,
size_t *size)
{
u_int i, a, b;
char tmp[64], *endptr;
const char *s;
u_int i, a, b;
char tmp[64], *endptr;
static const char *types[] = TTY_TYPES;
int type;
*size = 0;
@ -877,35 +878,29 @@ tty_keys_device_attributes(struct tty *tty, const char *buf, size_t len,
} else
a = b = 0;
s = "UNKNOWN";
type = TTY_UNKNOWN;
switch (a) {
case 1:
if (b == 2) {
tty_set_type(tty, TTY_VT100);
s = "VT100";
} else if (b == 0) {
tty_set_type(tty, TTY_VT101);
s = "VT101";
}
if (b == 2)
type = TTY_VT100;
else if (b == 0)
type = TTY_VT101;
break;
case 6:
tty_set_type(tty, TTY_VT102);
s = "VT102";
type = TTY_VT102;
break;
case 62:
tty_set_type(tty, TTY_VT220);
s = "VT220";
type = TTY_VT220;
break;
case 63:
tty_set_type(tty, TTY_VT320);
s = "VT320";
type = TTY_VT320;
break;
case 64:
tty_set_type(tty, TTY_VT420);
s = "VT420";
type = TTY_VT420;
break;
}
log_debug("received DA %.*s (%s)", (int)*size, buf, s);
tty_set_type(tty, type);
log_debug("received DA %.*s (%s)", (int)*size, buf, types[type]);
return (0);
}