This is an automated email from the git hooks/post-receive script.

git pushed a commit to branch csi-parser-false-positive
in repository terminology.

View the commit online.

commit 82b985d1ea0bcec91d9d6037532fc14a74326052
Author: Johannes Altmanninger <aclo...@gmail.com>
AuthorDate: Tue Mar 4 08:34:12 2025 +0100

    Do not interpret "CSI = 5 u" as DECRC
    
    The kitty keyboard protocol can be enabled with commands like "CSI = 5 u",
    see https://sw.kovidgoyal.net/kitty/keyboard-protocol/
    For better or worse, fish shell version 4 uses this.
    
    Unfortunately, terminology interprets "CSI = 5 u" the same as "CSI u"
    (DECRC, restore cursor position). reproduce with 'printf "\x1b[=5u"'.
    
    Fix this; only restore the cursor position if we get the exact DECRC sequence.
    
    Originally reported at https://github.com/fish-shell/fish-shell/issues/11211
---
 src/bin/termptyesc.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/bin/termptyesc.c b/src/bin/termptyesc.c
index 018deda6..ada34d78 100644
--- a/src/bin/termptyesc.c
+++ b/src/bin/termptyesc.c
@@ -3623,8 +3623,17 @@ _handle_esc_csi(Termpty *ty, const Eina_Unicode *c, const Eina_Unicode *ce)
              _handle_window_manipulation(ty, &b);
           }
         break;
-      case 'u': // restore cursor pos
-        termpty_cursor_copy(ty, EINA_FALSE);
+      case 'u':
+        if (cc == c)
+          {
+             // No parameter. Restore cursor pos
+             termpty_cursor_copy(ty, EINA_FALSE);
+          }
+        else
+          {
+             ERR("unhandled 'u' CSI escape code");
+             ty->decoding_error = EINA_TRUE;
+          }
         break;
       case 'v':
         if (*(cc-1) == '$')

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.

Reply via email to