From: Laurent Mazet Date: Thu, 9 Jan 2025 22:33:45 +0000 (+0100) Subject: correct ALT key codes X-Git-Tag: v1.0~56 X-Git-Url: https://secure.softndesign.org/git/?a=commitdiff_plain;h=53b53e13b634f78510e6f309efde23bd2eb74177;p=fm.git correct ALT key codes --- diff --git a/display.h b/display.h index 3176098..91f6d41 100644 --- 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 511c48d..1dcae02 100644 --- a/fm.c +++ b/fm.c @@ -19,22 +19,6 @@ #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: */