aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2023-01-09 10:01:09 +0000
committerThomas Adam <thomas@xteddy.org>2023-01-09 10:01:09 +0000
commit90512202434daa0c1c7d2d2d7fffd4f58ea7ab77 (patch)
treef402da85215612b05ada4430465414a1c0ddc68b
parentc1a30ed9950fa3ca0d8cbff46c1334d420e9bf1c (diff)
parentc0031f8b8581f7fc2d75cabade596be68f85aa81 (diff)
downloadrtmux-90512202434daa0c1c7d2d2d7fffd4f58ea7ab77.tar.gz
rtmux-90512202434daa0c1c7d2d2d7fffd4f58ea7ab77.tar.bz2
rtmux-90512202434daa0c1c7d2d2d7fffd4f58ea7ab77.zip
Merge branch 'obsd-master'
-rw-r--r--tty-keys.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/tty-keys.c b/tty-keys.c
index 87c7afd8..d0199bb6 100644
--- a/tty-keys.c
+++ b/tty-keys.c
@@ -1516,18 +1516,25 @@ tty_keys_colours(struct tty *tty, const char *buf, size_t len, size_t *size)
if (len == 5)
return (1);
- /* Copy the rest up to \033\. */
+ /* Copy the rest up to \033\ or \007. */
for (i = 0; i < (sizeof tmp) - 1; i++) {
if (5 + i == len)
return (1);
if (buf[5 + i - 1] == '\033' && buf[5 + i] == '\\')
break;
+ if (buf[5 + i] == '\007')
+ break;
tmp[i] = buf[5 + i];
}
if (i == (sizeof tmp) - 1)
return (-1);
- tmp[i - 1] = '\0';
- *size = 6 + i;
+ if (tmp[i] == '\007') {
+ *size = 5 + i;
+ tmp[i] = '\0';
+ } else {
+ *size = 6 + i;
+ tmp[i - 1] = '\0';
+ }
n = colour_parseX11(tmp);
if (n != -1 && buf[3] == '0') {