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

git pushed a commit to branch master
in repository terminology.

View the commit online.

commit ad5812a70d602eb70c687cff5c8827ffdecdfe93
Author: Boris Faure <bill...@gmail.com>
AuthorDate: Mon Aug 14 20:27:53 2023 +0200

    termptyesc: handle alternate escape (7728)
---
 src/bin/keyin.c      | 4 ++++
 src/bin/termpty.h    | 1 +
 src/bin/termptyesc.c | 4 ++++
 src/bin/termptyops.c | 1 +
 4 files changed, 10 insertions(+)

diff --git a/src/bin/keyin.c b/src/bin/keyin.c
index fcfedb4..02ec473 100644
--- a/src/bin/keyin.c
+++ b/src/bin/keyin.c
@@ -139,6 +139,10 @@ keyin_handle_key_to_pty(Termpty *ty, const Evas_Event_Key_Down *ev,
           {
              TERMPTY_WRITE_STR("\033O[");
           }
+        else if (ty->termstate.alternate_esc)
+          {
+             TERMPTY_WRITE_STR("\034");
+          }
         else
           {
              if (alt)
diff --git a/src/bin/termpty.h b/src/bin/termpty.h
index 429f738..2853008 100644
--- a/src/bin/termpty.h
+++ b/src/bin/termpty.h
@@ -133,6 +133,7 @@ typedef struct tag_Term_State {
     unsigned int  combining_strike : 1;
     unsigned int  sace_rectangular : 1;
     unsigned int  esc_keycode : 1;
+    unsigned int  alternate_esc : 1;
     int xmod[6];
 } Term_State;
 
diff --git a/src/bin/termptyesc.c b/src/bin/termptyesc.c
index 44d4a6e..08f92f2 100644
--- a/src/bin/termptyesc.c
+++ b/src/bin/termptyesc.c
@@ -547,6 +547,10 @@ _handle_esc_csi_reset_mode(Termpty *ty, Eina_Unicode cc, Eina_Unicode *b,
                    DBG("%s application escape mode", mode ? "enable" : "disable");
                    ty->termstate.esc_keycode = !!mode;
                    break;
+                case 7728:
+                   DBG("%s alternate escape", mode ? "enable" : "disable");
+                   ty->termstate.alternate_esc = !!mode;
+                   break;
                 case 7766: // ignore
                    WRN("TODO: %s scrollbar", mode ? "hide" : "show");
                    ty->decoding_error = EINA_TRUE;
diff --git a/src/bin/termptyops.c b/src/bin/termptyops.c
index cd7458d..e07ad68 100644
--- a/src/bin/termptyops.c
+++ b/src/bin/termptyops.c
@@ -452,6 +452,7 @@ termpty_soft_reset_state(Termpty *ty)
    ty->termstate.hide_cursor = 0;
    ty->termstate.sace_rectangular = 0;
    ty->termstate.esc_keycode = 0;
+   ty->termstate.alternate_esc = 0;
    ty->mouse_mode = MOUSE_OFF;
    ty->mouse_ext = MOUSE_EXT_NONE;
    ty->bracketed_paste = 0;

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

Reply via email to