add more test (3) master
authorLaurent Mazet <mazet@softndesign.org>
Thu, 16 May 2024 14:33:08 +0000 (16:33 +0200)
committerLaurent Mazet <mazet@softndesign.org>
Thu, 16 May 2024 14:33:08 +0000 (16:33 +0200)
cmore.c
tui.c

diff --git a/cmore.c b/cmore.c
index 92fa68689316254c12643fede9e32addc2ba0cb3..6022cfde331c2a9155faa89517bd49a182d681d7 100644 (file)
--- a/cmore.c
+++ b/cmore.c
@@ -250,7 +250,7 @@ menu SubMenu0[] =
     { "File", chfile, "Change file"},
     { "Display", follow, "Continue"},
     { "Refresh", process, "Refresh"},
-    { "Exit", DoExit, "Terminate program" },
+    { "Quit", DoExit, "Terminate program" },
     { "", (FUNC)0, "" }
 };
 
@@ -388,14 +388,18 @@ int main (int argc, char *argv[])
 /* test: (sleep 1; echo :fkkk; sleep 1; echo :fiii) | cmore.exe -c 'ip addr' */
 /* test: (sleep 1; echo :fjljjkkikkkk) | cmore.exe -c 'ip addr' */
 /* test: (sleep 1; echo :flk; sleep 1; echo xji) | cmore.exe -c 'ip addr' */
-/* test: (sleep 1; echo :fk; sleep 1; echo; sleep 1; echo :fi) | cmore.exe -c 'ip addr' */
+/* test: (sleep 1; echo :fllk; sleep 1; echo; sleep 1; echo :fi) | cmore.exe -c 'ip addr' */
+/* test: (sleep 1; echo -n :fjjkll; sleep 1; echo -n :; sleep 1; echo -ne '\e'; sleep 1; echo -n kq) | cmore.exe -c 'ip addr' */
 
 /* test: (sleep 1; echo :fk; sleep 1; echo date; sleep 1; echo :fi) | cmore.exe -c 'ip addr' */
+/* test: (sleep 1; echo :fk; sleep 1; echo -ne '\e\e'; sleep 1; echo i) | cmore.exe -c 'ip addr' */
 /* test: (sleep 1; echo :fk; echo not_a_command; sleep 1; echo i) | cmore.exe -c 'ip addr' -v 3 2>&1 | grep -q "can't execute" */
 /* test: (sleep 1; echo :fkk; sleep 1; echo; sleep 1; echo ii) | cmore.exe -c 'ip addr' */
 /* test: (sleep 1; echo :fk; sleep 1; echo -e '\elljll\eroute'; sleep 1; echo q) | cmore.exe -c 'ip addr' */
+/* test: (sleep 1; echo :fk; sleep 1; echo -e '\elljll\nroute'; sleep 1; echo q) | cmore.exe -c 'ip addr' */
 /* test: (sleep 1; echo :fk; sleep 1; echo -en '\ek'; sleep 1; echo i) | cmore.exe -c 'ip addr' */
 /* test: (sleep 1; echo :fk; sleep 1; echo -e '\eidate'; sleep 1; echo q) | cmore.exe -c 'ip addr' */
+/* test: (sleep 1; echo :fk; sleep 1; echo -e '\elll\e\t-j x\b'; sleep 1; echo q) | cmore.exe -c 'ip addr' */
 
 /* test: (sleep 1; echo :fkk; sleep 1; echo tui.c; sleep 1; echo :fii) | cmore.exe -f tui.h */
 /* test: (sleep 1; echo :fkk; sleep 1; echo cmore.c; sleep 1; echo :fii) | cmore.exe -c 'ip addr' */
diff --git a/tui.c b/tui.c
index 98e4f350960a3f100ec95bdc75c21af058f829c0..ddeffa398f2614be12bd65f506eab6a7c07740a2 100644 (file)
--- a/tui.c
+++ b/tui.c
@@ -670,6 +670,10 @@ int weditstr(WINDOW *win, char *buf, int field)
 
         c = wgetch(wedit);
         if (mode) {
+            if (mode == 1) {
+                mode = (c == KEY_ESC) ? 2 : 3;
+            }
+
             switch (c) {
             case 'i':
                 c = KEY_UP;
@@ -683,8 +687,13 @@ int weditstr(WINDOW *win, char *buf, int field)
             case 'l':
                 c = KEY_RIGHT;
                 break;
-            case '\n':
             case KEY_ESC:
+                if (mode == 3) {
+                    c = ERR;
+                    mode = 0;
+                }
+                break;
+            case '\n':
                 mode = 0;
                 /* fallthrough */
             default: