aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornicm <nicm>2022-11-11 08:44:11 +0000
committernicm <nicm>2022-11-11 08:44:11 +0000
commit20da16737715a183a019f1072735614615b5fd1c (patch)
tree7047184b2f3c79ff70e40de8ef3e21a9ae8ffe97
parentfe475bd856ff1f98bf8a4cd9b6aedd5da81a7e3c (diff)
downloadrtmux-20da16737715a183a019f1072735614615b5fd1c.tar.gz
rtmux-20da16737715a183a019f1072735614615b5fd1c.tar.bz2
rtmux-20da16737715a183a019f1072735614615b5fd1c.zip
Tweak previous to set and log the feature instead of just setting the
flag.
-rw-r--r--tty-features.c2
-rw-r--r--tty-keys.c29
-rw-r--r--tty-term.c3
3 files changed, 20 insertions, 14 deletions
diff --git a/tty-features.c b/tty-features.c
index b1268827..3f4fdbfd 100644
--- a/tty-features.c
+++ b/tty-features.c
@@ -343,7 +343,7 @@ static const char *const tty_feature_sixel_capabilities[] = {
static const struct tty_feature tty_feature_sixel = {
"sixel",
tty_feature_sixel_capabilities,
- 0
+ TERM_SIXEL
};
/* Available terminal features. */
diff --git a/tty-keys.c b/tty-keys.c
index 65294ba8..6fe121f0 100644
--- a/tty-keys.c
+++ b/tty-keys.c
@@ -1256,6 +1256,7 @@ tty_keys_device_attributes(struct tty *tty, const char *buf, size_t len,
size_t *size)
{
struct client *c = tty->client;
+ int *features = &c->term_features;
u_int i, n = 0;
char tmp[128], *endptr, p[32] = { 0 }, *cp, *next;
@@ -1305,11 +1306,11 @@ tty_keys_device_attributes(struct tty *tty, const char *buf, size_t len,
case 62: /* VT220 */
case 63: /* VT320 */
case 64: /* VT420 */
- for (i = 1; i < n; i++) {
- log_debug("%s: DA feature: %d", c->name, p[i]);
- if (p[i] == 4)
- tty->term->flags |= TERM_SIXEL;
- }
+ for (i = 1; i < n; i++) {
+ log_debug("%s: DA feature: %d", c->name, p[i]);
+ if (p[i] == 4)
+ tty_add_features(features, "sixel", ",");
+ }
break;
}
log_debug("%s: received primary DA %.*s", c->name, (int)*size, buf);
@@ -1329,6 +1330,7 @@ tty_keys_device_attributes2(struct tty *tty, const char *buf, size_t len,
size_t *size)
{
struct client *c = tty->client;
+ int *features = &c->term_features;
u_int i, n = 0;
char tmp[128], *endptr, p[32] = { 0 }, *cp, *next;
@@ -1376,16 +1378,16 @@ tty_keys_device_attributes2(struct tty *tty, const char *buf, size_t len,
/* Add terminal features. */
switch (p[0]) {
case 41: /* VT420 */
- tty_add_features(&c->term_features, "margins,rectfill", ",");
+ tty_add_features(features, "margins,rectfill", ",");
break;
case 'M': /* mintty */
- tty_default_features(&c->term_features, "mintty", 0);
+ tty_default_features(features, "mintty", 0);
break;
case 'T': /* tmux */
- tty_default_features(&c->term_features, "tmux", 0);
+ tty_default_features(features, "tmux", 0);
break;
case 'U': /* rxvt-unicode */
- tty_default_features(&c->term_features, "rxvt-unicode", 0);
+ tty_default_features(features, "rxvt-unicode", 0);
break;
}
log_debug("%s: received secondary DA %.*s", c->name, (int)*size, buf);
@@ -1405,6 +1407,7 @@ tty_keys_extended_device_attributes(struct tty *tty, const char *buf,
size_t len, size_t *size)
{
struct client *c = tty->client;
+ int *features = &c->term_features;
u_int i;
char tmp[128];
@@ -1445,13 +1448,13 @@ tty_keys_extended_device_attributes(struct tty *tty, const char *buf,
/* Add terminal features. */
if (strncmp(tmp, "iTerm2 ", 7) == 0)
- tty_default_features(&c->term_features, "iTerm2", 0);
+ tty_default_features(features, "iTerm2", 0);
else if (strncmp(tmp, "tmux ", 5) == 0)
- tty_default_features(&c->term_features, "tmux", 0);
+ tty_default_features(features, "tmux", 0);
else if (strncmp(tmp, "XTerm(", 6) == 0)
- tty_default_features(&c->term_features, "XTerm", 0);
+ tty_default_features(features, "XTerm", 0);
else if (strncmp(tmp, "mintty ", 7) == 0)
- tty_default_features(&c->term_features, "mintty", 0);
+ tty_default_features(features, "mintty", 0);
log_debug("%s: received extended DA %.*s", c->name, (int)*size, buf);
free(c->term_type);
diff --git a/tty-term.c b/tty-term.c
index 23abccf5..7998f657 100644
--- a/tty-term.c
+++ b/tty-term.c
@@ -454,6 +454,9 @@ tty_term_apply_overrides(struct tty_term *term)
a = options_array_next(a);
}
+ /* Log the SIXEL flag. */
+ log_debug("SIXEL flag is %d", !!(term->flags & TERM_SIXEL));
+
/* Update the RGB flag if the terminal has RGB colours. */
if (tty_term_has(term, TTYC_SETRGBF) &&
tty_term_has(term, TTYC_SETRGBB))