summaryrefslogtreecommitdiffstats
path: root/tty-keys.c
diff options
context:
space:
mode:
authornicm <nicm>2023-01-09 07:57:14 +0000
committernicm <nicm>2023-01-09 07:57:14 +0000
commitc0031f8b8581f7fc2d75cabade596be68f85aa81 (patch)
tree66073d7db66b4feb7d081f14337e5e359ca6b308 /tty-keys.c
parent565de3f54b37a955c15ae26db40aaaa76f71d02e (diff)
Accept \007 as terminator to OSC 10 or 11.
Diffstat (limited to 'tty-keys.c')
-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') {