summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornicm <nicm>2024-03-21 11:47:55 +0000
committernicm <nicm>2024-03-21 11:47:55 +0000
commit6f0254e6a88ee5e66c8ea5d8723c7adfb7181585 (patch)
treef2e2d58a3a68c957d9c68a8b3c00c42afecae800
parent0ae8b681b22aec6a45a38fd286117154957134ff (diff)
Look for feature code 21 for DECSLRM and 28 for DECFRA in the device
attributes and also accept level 1 (there is no hardware with this but some emulators may use it). Pointed out by James Holderness.
-rw-r--r--tty-keys.c24
1 files changed, 7 insertions, 17 deletions
diff --git a/tty-keys.c b/tty-keys.c
index ef80abc4..9f8ff67c 100644
--- a/tty-keys.c
+++ b/tty-keys.c
@@ -1314,26 +1314,21 @@ tty_keys_device_attributes(struct tty *tty, const char *buf, size_t len,
break;
}
- /*
- * Add terminal features. Hardware level 5 does not offer SIXEL but
- * some terminal emulators report it anyway and it does not harm
- * to check it here.
- *
- * DECSLRM and DECFRA should be supported by level 5 as well as level
- * 4, but VTE has rather ruined it by advertising level 5 despite not
- * supporting them.
- */
+ /* Add terminal features. */
switch (p[0]) {
- case 64: /* level 4 */
- tty_add_features(features, "margins,rectfill", ",");
- /* FALLTHROUGH */
+ case 61: /* level 1 */
case 62: /* level 2 */
case 63: /* level 3 */
+ case 64: /* level 4 */
case 65: /* level 5 */
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", ",");
+ if (p[i] == 21)
+ tty_add_features(features, "margins", ",");
+ if (p[i] == 28)
+ tty_add_features(features, "rectfill", ",");
}
break;
}
@@ -1405,11 +1400,6 @@ tty_keys_device_attributes2(struct tty *tty, const char *buf, size_t len,
* we can't use level 5 from DA because of VTE.
*/
switch (p[0]) {
- case 41: /* VT420 */
- case 61: /* VT510 */
- case 64: /* VT520 */
- tty_add_features(features, "margins,rectfill", ",");
- break;
case 'M': /* mintty */
tty_default_features(features, "mintty", 0);
break;