fix search function
authorLaurent Mazet <mazet@softndesign.org>
Sun, 9 Mar 2025 20:08:48 +0000 (21:08 +0100)
committerLaurent Mazet <mazet@softndesign.org>
Sun, 9 Mar 2025 20:08:48 +0000 (21:08 +0100)
display.c

index c72896c4c1ab9f29d6f459f19f4ae429df0158fe..44275faf421045a17d40f7145d14a8809fbe22de 100644 (file)
--- a/display.c
+++ b/display.c
@@ -648,6 +648,8 @@ char *filewindow (char *name, window_t *win)
         case KEY_PPAGE:
         case KEY_SLEFT:
         case 'I':
+            skip = GETSKIP (skip, sskip);
+            sskip = -1;
             for (i = 0; i < 3 * win->ysize / 4; i++) {
                 if (skip > 0) {
                     skip--;
@@ -657,6 +659,8 @@ char *filewindow (char *name, window_t *win)
         case KEY_NPAGE:
         case KEY_SRIGHT:
         case 'K':
+            skip = GETSKIP (skip, sskip);
+            sskip = -1;
             for (i = 0; i < 3 * win->ysize / 4; i++) {
                 if (skip + win->ysize < len) {
                     skip++;
@@ -680,12 +684,16 @@ char *filewindow (char *name, window_t *win)
             break;
         case 'i':
         case KEY_UP:
+            skip = GETSKIP (skip, sskip);
+            sskip = -1;
             if (skip > 0) {
                 skip--;
             }
             break;
         case 'k':
         case KEY_DOWN:
+            skip = GETSKIP (skip, sskip);
+            sskip = -1;
             if (skip + win->ysize < len) {
                 skip++;
             }
@@ -694,9 +702,11 @@ char *filewindow (char *name, window_t *win)
             mode = (mode) ? 0 : 1;
             break;
         case 'n':
-            sskip = _find (lines, len, GETSKIP (skip, sskip) + 1, search);
-            if (sskip == -1) {
-                sskip = _find (lines, len, 0, search);
+            if (search) {
+                sskip = _find (lines, len, GETSKIP (skip, sskip) + 1, search);
+                if (sskip == -1) {
+                    sskip = _find (lines, len, 0, search);
+                }
             }
             break;
         }