mirror of
https://github.com/tmux/tmux.git
synced 2025-03-22 12:58:48 +00:00
Old Terminal.app versions do not respond correctly to secondary DA,
instead responding with the primary DA response. Ignore it. Reported by Dave Vandervies.
This commit is contained in:
parent
3bece648bd
commit
ec9e03d09a
11
tty-keys.c
11
tty-keys.c
@ -1197,7 +1197,10 @@ tty_keys_device_attributes(struct tty *tty, const char *buf, size_t len,
|
||||
if (tty->flags & TTY_HAVEDA)
|
||||
return (-1);
|
||||
|
||||
/* First three bytes are always \033[?. */
|
||||
/*
|
||||
* First three bytes are always \033[>. Some older Terminal.app
|
||||
* versions respond as for DA (\033[?) so accept and ignore that.
|
||||
*/
|
||||
if (buf[0] != '\033')
|
||||
return (-1);
|
||||
if (len == 1)
|
||||
@ -1206,7 +1209,7 @@ tty_keys_device_attributes(struct tty *tty, const char *buf, size_t len,
|
||||
return (-1);
|
||||
if (len == 2)
|
||||
return (1);
|
||||
if (buf[2] != '>')
|
||||
if (buf[2] != '>' && buf[2] != '?')
|
||||
return (-1);
|
||||
if (len == 3)
|
||||
return (1);
|
||||
@ -1224,6 +1227,10 @@ tty_keys_device_attributes(struct tty *tty, const char *buf, size_t len,
|
||||
tmp[i] = '\0';
|
||||
*size = 4 + i;
|
||||
|
||||
/* Ignore DA response. */
|
||||
if (buf[2] == '?')
|
||||
return (0);
|
||||
|
||||
/* Convert all arguments to numbers. */
|
||||
cp = tmp;
|
||||
while ((next = strsep(&cp, ";")) != NULL) {
|
||||
|
Loading…
Reference in New Issue
Block a user