Set ACS flag for REP. Reported by Romain Francoise, GitHub issue 4182.
authornicm <nicm@openbsd.org>
Mon, 14 Oct 2024 20:26:45 +0000 (20:26 +0000)
committernicm <nicm@openbsd.org>
Mon, 14 Oct 2024 20:26:45 +0000 (20:26 +0000)
usr.bin/tmux/input.c

index f1aa4f8..76a401f 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: input.c,v 1.229 2024/09/16 20:38:48 nicm Exp $ */
+/* $OpenBSD: input.c,v 1.230 2024/10/14 20:26:45 nicm Exp $ */
 
 /*
  * Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
@@ -1145,7 +1145,6 @@ input_print(struct input_ctx *ictx)
                ictx->cell.cell.attr |= GRID_ATTR_CHARSET;
        else
                ictx->cell.cell.attr &= ~GRID_ATTR_CHARSET;
-
        utf8_set(&ictx->cell.cell.data, ictx->ch);
        screen_write_collect_add(sctx, &ictx->cell.cell);
 
@@ -1349,7 +1348,7 @@ input_csi_dispatch(struct input_ctx *ictx)
        struct screen_write_ctx        *sctx = &ictx->ctx;
        struct screen                  *s = sctx->s;
        struct input_table_entry       *entry;
-       int                             i, n, m, ek;
+       int                             i, n, m, ek, set;
        u_int                           cx, bg = ictx->cell.cell.bg;
 
        if (ictx->flags & INPUT_DISCARD)
@@ -1592,6 +1591,11 @@ input_csi_dispatch(struct input_ctx *ictx)
                if (~ictx->flags & INPUT_LAST)
                        break;
 
+               set = ictx->cell.set == 0 ? ictx->cell.g0set : ictx->cell.g1set;
+               if (set == 1)
+                       ictx->cell.cell.attr |= GRID_ATTR_CHARSET;
+               else
+                       ictx->cell.cell.attr &= ~GRID_ATTR_CHARSET;
                utf8_copy(&ictx->cell.cell.data, &ictx->last);
                for (i = 0; i < n; i++)
                        screen_write_collect_add(sctx, &ictx->cell.cell);