csi: check for private marker in 'S' case - st - simple terminal
git clone git://git.suckless.org/st
Log
Files
Refs
README
LICENSE
---
commit a3f7420310be0fd778ef9fe2abf20edc2d8dc81a
parent 9846a56bd7fdc86bf788db04bbbcbde7b7eb9952
Author: Tim Culverhouse 
Date:   Sun, 18 Feb 2024 06:56:49 -0600

csi: check for private marker in 'S' case

The handler for 'S' final character does not check for a private
marker. This can cause a conflict with a sequence called 'XTSMGRAPHICS'
which also has an 'S' final character, but uses the private marker '?'.
Without checking for a private marker, st will perform a scroll up
operation when XTSMGRAPHICS is seen, which can cause unexpected display
artifacts.

Diffstat:
  M st.c                                |       1 +

1 file changed, 1 insertion(+), 0 deletions(-)
---
diff --git a/st.c b/st.c
@@ -1728,6 +1728,7 @@ csihandle(void)
                 }
                 break;
         case 'S': /* SU -- Scroll  line up */
+                if (csiescseq.priv) break;
                 DEFAULT(csiescseq.arg[0], 1);
                 tscrollup(term.top, csiescseq.arg[0]);
                 break;