URI: 
       Do not interpret CSI ? u as DECRC - st - simple terminal
  HTML git clone git://git.suckless.org/st
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit 98610fcd37f655d44586323dc86c1d013c2798ce
   DIR parent 6009e6e25bdff9548f085e9ae562b1ca305d3a0b
  HTML Author: Johannes Altmanninger <aclopte@gmail.com>
       Date:   Sun, 26 Jan 2025 13:40:57 +0100
       
       Do not interpret CSI ? u as DECRC
       
       The kitty keyboard protocol docs recommend CSI ? u to query support for
       that protocol, see https://sw.kovidgoyal.net/kitty/keyboard-protocol/
       
       For better or worse, fish shell uses this query to work around bugs
       in other terminals triggered by requesting that protocol via CSI = 5 u.
       
       Unfortunately, st interprets CSI ? u as DECRC (restore cursor
       position). reproduce with 'printf "\x1b[?u"; cat'.
       
       fish could work around this by switching to the alternate screen
       before running this query; but that might cause tearing on terminals
       that don't support Synchronized Output. I'm not sure.
       
       In the meantime, let's correct our parser.
       
       This adds a redundant else-after-return, for consistency with the
       surrounding code.
       
       Diffstat:
         M st.c                                |       6 +++++-
       
       1 file changed, 5 insertions(+), 1 deletion(-)
       ---
   DIR diff --git a/st.c b/st.c
       @@ -1801,7 +1801,11 @@ csihandle(void)
                        tcursor(CURSOR_SAVE);
                        break;
                case 'u': /* DECRC -- Restore cursor position (ANSI.SYS) */
       -                tcursor(CURSOR_LOAD);
       +                if (csiescseq.priv) {
       +                        goto unknown;
       +                } else {
       +                        tcursor(CURSOR_LOAD);
       +                }
                        break;
                case ' ':
                        switch (csiescseq.mode[1]) {