PageUp/PageDown on view mode
authorLaurent MAZET <laurent.mazet@thalesgroup.com>
Tue, 21 Jan 2025 14:56:57 +0000 (15:56 +0100)
committerLaurent MAZET <laurent.mazet@thalesgroup.com>
Tue, 21 Jan 2025 14:56:57 +0000 (15:56 +0100)
display.c
fm.c

index f8c45be6204fa0a5cdce9171a7b87630910ec89e..6fcb8f4f5a2bfb7cf40626959b4034147925353a 100644 (file)
--- a/display.c
+++ b/display.c
@@ -576,6 +576,24 @@ char *filewindow (char *name, window_t *win)
         }
 
         switch (getch ()) {
+        case KEY_PPAGE:
+        case KEY_SLEFT:
+        case 'I':
+            for (i = 0; i < 3 * win->ysize / 4; i++) {
+                if (skip > 0) {
+                    skip--;
+                }
+            }
+            break;
+        case KEY_NPAGE:
+        case KEY_SRIGHT:
+        case 'K':
+            for (i = 0; i < 3 * win->ysize / 4; i++) {
+                if (skip + win->ysize < len) {
+                    skip++;
+                }
+            }
+            break;
         case KEY_ESC:
         case 'q':
             stop = 1;
diff --git a/fm.c b/fm.c
index 85a900329834cc5a51036e6c6a6fdf5f416144c7..a3014c9e1e8d8e77553a47d9bba539f64b03a264 100644 (file)
--- a/fm.c
+++ b/fm.c
@@ -573,8 +573,9 @@ int main (int argc, char *argv[])
 
 /* View */
 /* test: echo -ne 'Begin\n  This is a test\nEnd' > .a && { sleep 1; echo -n 'k'; sleep 1; echo -en '\ev'; sleep 1; echo -n kkk; sleep 1; echo -n iii; sleep 1; echo -n h; sleep 1; echo; sleep 1;  echo -n q; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe -x 60 -y 20 && rm .a */
-/* test: cp fm.c .a && { sleep 1; echo -n 'k'; sleep 1; echo -en '\ev'; sleep 1; for i in $(seq 1 1000); do echo -n k; done; sleep 1; for i in $(seq 1 1000); do echo -n i; done; sleep 1; echo -n h; sleep 1; echo; sleep 1;  echo -n q; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe -x 60 -y 20 && rm .a */
-/* test: cp debug.o .a && { sleep 1; echo -n 'k'; sleep 1; echo -en '\ev'; sleep 1; for i in $(seq 1 100); do echo -n k; done; sleep 1; for i in $(seq 1 100); do echo -n i; done; sleep 1; echo -n h; sleep 1; echo; sleep 1;  echo -n q; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe -x 60 -y 20 && rm .a */
+/* test: cp fm.c .a && { sleep 1; echo -n 'k'; sleep 1; echo -en '\ev'; sleep 1; for i in $(seq 1 1000); do echo -n k; done; sleep 1; for i in $(seq 1 1000); do echo -n i; done; sleep 1; sleep 1;  echo -n q; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe -x 60 -y 20 && rm .a */
+/* test: cp fm.c .a && { sleep 1; echo -n 'k'; sleep 1; echo -en '\ev'; sleep 1; echo -n KKKK; sleep 1; echo -n IIII; sleep 1; echo -n q; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe -x 60 -y 20 && rm .a */
+/* test: cp debug.o .a && { sleep 1; echo -n 'k'; sleep 1; echo -en '\ev'; sleep 1; for i in $(seq 1 100); do echo -n k; done; sleep 1; for i in $(seq 1 100); do echo -n i; done; sleep 1; echo -n q; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe -x 60 -y 20 && rm .a */
 /* test: mkdir .a && { sleep 1; echo -n 'k'; sleep 1; echo -en '\ev'; sleep 1; echo; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe -x 60 -y 20 && rmdir .a */
 /* test: ln -s .b .a && { sleep 1; echo -n 'k'; sleep 1; echo -en '\ev'; sleep 1; echo; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe -x 60 -y 20 && rm .a */