From: Laurent Mazet Date: Sun, 9 Mar 2025 20:08:48 +0000 (+0100) Subject: fix search function X-Git-Tag: v1.1~12 X-Git-Url: https://secure.softndesign.org/git/?a=commitdiff_plain;h=0c4e9b84dadadb842bfac3164dbca7d189bcf7f5;p=fm.git fix search function --- diff --git a/display.c b/display.c index c72896c..44275fa 100644 --- 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; }