correct ALT key codes
authorLaurent Mazet <mazet@softndesign.org>
Thu, 9 Jan 2025 22:33:45 +0000 (23:33 +0100)
committerLaurent Mazet <mazet@softndesign.org>
Thu, 9 Jan 2025 22:33:45 +0000 (23:33 +0100)
display.h
fm.c

index 31760980f8277a8ab8c9b735c4b367dba6bbde71..91f6d410f9d13231d7b6a8a76b76b89ce7b0dc36 100644 (file)
--- a/display.h
+++ b/display.h
@@ -3,9 +3,6 @@
 
 #include "type.h"
 
-#define KEY_ESC 0x1b
-#define KEY_DELETE 0x014a
-
 int helpwindow (char *msg, int xoffset, int yoffset);
 
 void menuwindow (window_t *win, char *status, int *index);
@@ -20,6 +17,49 @@ void msgwindow (char *msg, int xoffset, int yoffset, int length);
 
 int askwindow (char *msg, int xoffset, int yoffset, char *ok, char *ko);
 
+#define KEY_DELETE 0x014a
+#define KEY_ESC 0x1b
+
+#ifndef PDCURSES
+#define ALT_0 '0'
+#define ALT_1 '1'
+#define ALT_2 '2'
+#define ALT_3 '3'
+#define ALT_4 '4'
+#define ALT_5 '5'
+#define ALT_6 '6'
+#define ALT_7 '7'
+#define ALT_8 '8'
+#define ALT_9 '9'
+#define ALT_A 'a'
+#define ALT_B 'b'
+#define ALT_C 'c'
+#define ALT_D 'd'
+#define ALT_E 'e'
+#define ALT_F 'f'
+#define ALT_G 'g'
+#define ALT_H 'h'
+#define ALT_I 'i'
+#define ALT_J 'j'
+#define ALT_K 'k'
+#define ALT_L 'l'
+#define ALT_M 'm'
+#define ALT_N 'n'
+#define ALT_O 'o'
+#define ALT_P 'p'
+#define ALT_O 'o'
+#define ALT_Q 'q'
+#define ALT_R 'r'
+#define ALT_S 's'
+#define ALT_T 't'
+#define ALT_U 'u'
+#define ALT_V 'v'
+#define ALT_W 'w'
+#define ALT_X 'x'
+#define ALT_Y 'y'
+#define ALT_Z 'z'
+#endif
+
 #endif /* __DISPLAY_H__ */
 
 /* vim: set ts=4 sw=4 et: */
diff --git a/fm.c b/fm.c
index 511c48d18024a98bac8774f2a0c9afe5f88bb368..1dcae0258138ea11573a9f5532792d85893adc54 100644 (file)
--- a/fm.c
+++ b/fm.c
 #define MAXPANES 2
 #define MAXSTATUS 128
 
-#define ALT_(x) ALT_##x
-#ifndef PDCURSES
-#define ALT_H 'h'
-#define ALT_V 'v'
-#define ALT_E 'e'
-#define ALT_C 'c'
-#define ALT_M 'm'
-#define ALT_R 'r'
-#define ALT_D 'd'
-#define ALT_N 'n'
-#define ALT_S 's'
-#define ALT_F 'f'
-#define ALT_X 'x'
-#define ALT_Q 'q'
-#endif
-
 /* static variables */
 char *progname = NULL;
 char *version = "0.1";
@@ -309,13 +293,13 @@ int main (int argc, char *argv[])
         case KEY_ESC:
             switch (getch ()) {
 #endif /* PDCURSES */
-            case ALT_(C): /* copy */
+            case ALT_C: /* copy */
                 break;
-            case ALT_(D): /* delete */
+            case ALT_D: /* delete */
                 break;
-            case ALT_(E): /* edit */
+            case ALT_E: /* edit */
                 break;
-            case ALT_(F): /* filter */
+            case ALT_F: /* filter */
                 VERBOSE(DEBUG, fprintf (stderr, "ALT F\n"));
                 filter = getwindow ("Set filter", windir[pane], 8, 32);
                 if (filter) {
@@ -323,28 +307,28 @@ int main (int argc, char *argv[])
                     free (filter);
                 }
                 break;
-            case ALT_(H): /* help */
+            case ALT_H: /* help */
                 helpwindow (help, (width - strmaxlen (help, '\n')) / 2, 3 * yoffset);
                 while (getch () == ERR) {
                     usleep (200 * 1000);
                 }
                 break;
-            case ALT_(M): /* move */
+            case ALT_M: /* move */
                 break;
-            case ALT_(N): /* new dir */
+            case ALT_N: /* new dir */
                 break;
-            case ALT_(Q): /* quit */
+            case ALT_Q: /* quit */
                 if (askwindow (" Restart (Y/N) ", max (windir[pane]->xoffset + (windir[pane]->xsize - 15) / 2, 1), windir[pane]->yoffset + (windir[pane]->ysize - 1) / 2, "Yy", "Nn") == 1) {
                     stop = 1;
                 }
                 break;
-            case ALT_(R): /* rename */
+            case ALT_R: /* rename */
                 break;
-            case ALT_(S): /* select */
+            case ALT_S: /* select */
                 current = list[pane]->tab + windir[pane]->index;
                 current->selected = (current->selected) ? 0 : 1;
                 break;
-            case ALT_(V): /* view */
+            case ALT_V: /* view */
                 break;
 #ifndef PDCURSES
             }
@@ -371,11 +355,15 @@ int main (int argc, char *argv[])
 /* test: fm.exe -x 2>&1 | grep width */
 /* test: fm.exe -y 2>&1 | grep height */
 /* test: fm.exe _ 2>&1 | grep invalid */
-/* test: { sleep 1; echo -n q; sleep 1; echo -n y; } | fm.exe -d . -d /dev -d .. -v 1 */
-/* test: { sleep 1; echo  h; sleep 1; echo -n q; sleep 1; echo -n y; } | fm.exe -d . -d /dev -d .. */
-/* test: { sleep 1; echo ; sleep 1; echo; sleep 1; echo -en '\tjikkkkklljllll'; sleep 1; echo -n ilk; sleep 1; echo -n q; sleep 1; echo -n y; } | fm.exe */
-/* test: { sleep 1; echo -n KKKKK; sleep 1; echo -n IIIII; sleep 1; echo -n q; sleep 1; echo -n y; } | fm.exe -d /dev -d . */
-/* test: { sleep 1; echo -n kkkkkkkkkkkkkkkkkkkkkkkk; sleep 1; echo -n iiiiiiiiiiiiiiiiiiiii; sleep 1; echo -n q; sleep 1; echo -n y; } | fm.exe -d /dev -d . */
-/* test: { sleep 1; echo -n kkkkkkkkk; sleep 1; echo -n ooo; sleep 1; echo -n uu; sleep 1; echo -n q; sleep 1; echo -n y; } | fm.exe -x 60 -y 20 */
+/* test: { sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe -d . -d /dev -d .. -v 1 */
+/* test: { sleep 1; echo -en '\eq'; sleep 1; echo -en '\e'; sleep 1; echo -en '\eq'; sleep 1; echo; } | fm.exe */
+/* test: { sleep 1; echo -en '\eh'; sleep 1; echo ""; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe -d . -d /dev -d .. */
+/* test: { sleep 1; echo ; sleep 1; echo; sleep 1; echo -en '\tjikkkkklljllll'; sleep 1; echo -n ilk; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe */
+/* test: { sleep 1; echo -n KKKKK; sleep 1; echo -n IIIII; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe -d /dev -d . */
+/* test: { sleep 1; echo -n kkkkkkkkkkkkkkkkkkkkkkkk; sleep 1; echo -n iiiiiiiiiiiiiiiiiiiii; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe -d /dev -d . */
+/* test: { sleep 1; echo -n kkkkkkkkk; sleep 1; echo -n ooo; sleep 1; echo -n uu; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe -x 60 -y 20 */
+/* test: { sleep 1; echo -en '\ef'; sleep 1; echo ' .*\.c'; sleep 1; echo -en 'kkk\esl'; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe */
+/* test: { sleep 1; echo -en '\ef'; sleep 1; echo; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe */
+/* test: { sleep 1; echo -en '\ef'; sleep 1; echo -n 123456789012345678901234567890123; sleep 1; echo -en '\b\b'; sleep 1; echo -ne '\e'; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe */
 
 /* vim: set ts=4 sw=4 et: */