Use DECSLRM and DECFRA only at level 4 rather than checking the terminal

id.
pull/3709/head
nicm 2023-09-08 06:52:31 +00:00
parent 9653a52a6a
commit 4872811ba7
2 changed files with 15 additions and 16 deletions

View File

@ -1126,7 +1126,6 @@ format_cb_mouse_word(struct format_tree *ft)
struct window_pane *wp; struct window_pane *wp;
struct grid *gd; struct grid *gd;
u_int x, y; u_int x, y;
char *s;
if (!ft->m.valid) if (!ft->m.valid)
return (NULL); return (NULL);
@ -1139,7 +1138,7 @@ format_cb_mouse_word(struct format_tree *ft)
if (!TAILQ_EMPTY(&wp->modes)) { if (!TAILQ_EMPTY(&wp->modes)) {
if (TAILQ_FIRST(&wp->modes)->mode == &window_copy_mode || if (TAILQ_FIRST(&wp->modes)->mode == &window_copy_mode ||
TAILQ_FIRST(&wp->modes)->mode == &window_view_mode) TAILQ_FIRST(&wp->modes)->mode == &window_view_mode)
return (s = window_copy_get_word(wp, x, y)); return (window_copy_get_word(wp, x, y));
return (NULL); return (NULL);
} }
gd = wp->base.grid; gd = wp->base.grid;
@ -4185,7 +4184,7 @@ static char *
format_loop_clients(struct format_expand_state *es, const char *fmt) format_loop_clients(struct format_expand_state *es, const char *fmt)
{ {
struct format_tree *ft = es->ft; struct format_tree *ft = es->ft;
struct client *c = ft->client; struct client *c;
struct cmdq_item *item = ft->item; struct cmdq_item *item = ft->item;
struct format_tree *nft; struct format_tree *nft;
struct format_expand_state next; struct format_expand_state next;

View File

@ -1315,15 +1315,21 @@ tty_keys_device_attributes(struct tty *tty, const char *buf, size_t len,
} }
/* /*
* Add terminal features. Technically, VT420 and VT525 do not support * Add terminal features. Hardware level 5 does not offer SIXEL but
* SIXEL, but some modern terminals report it anyway so we accept it * some terminal emulators report it anyway and it does not harm
* here too. * 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.
*/ */
switch (p[0]) { switch (p[0]) {
case 62: /* VT220 */ case 64: /* level 4 */
case 63: /* VT320 */ tty_add_features(features, "margins,rectfill", ",");
case 64: /* VT420 */ /* FALLTHROUGH */
case 65: /* VT525 */ case 62: /* level 2 */
case 63: /* level 3 */
case 65: /* level 5 */
for (i = 1; i < n; i++) { for (i = 1; i < n; i++) {
log_debug("%s: DA feature: %d", c->name, p[i]); log_debug("%s: DA feature: %d", c->name, p[i]);
if (p[i] == 4) if (p[i] == 4)
@ -1395,12 +1401,6 @@ tty_keys_device_attributes2(struct tty *tty, const char *buf, size_t len,
/* Add terminal features. */ /* Add terminal features. */
switch (p[0]) { switch (p[0]) {
case 41: /* VT420 */
case 61: /* VT510 */
case 64: /* VT520 */
case 65: /* VT525 */
tty_add_features(features, "margins,rectfill", ",");
break;
case 'M': /* mintty */ case 'M': /* mintty */
tty_default_features(features, "mintty", 0); tty_default_features(features, "mintty", 0);
break; break;