Browse Source

Repeat search: reset current selection

master
Arun Prakash Jana 7 years ago
parent
commit
a7d88ad7f9
No known key found for this signature in database GPG Key ID: A75979F35C080412
1 changed files with 12 additions and 11 deletions
  1. +12
    -11
      nnn.c

+ 12
- 11
nnn.c View File

@@ -851,8 +851,8 @@ readln(char *path)
curs_set(TRUE);
printprompt(ln);

while ((r = wget_wch(stdscr, ch)) != ERR) {
if (r == OK) {
while ((r = wget_wch(stdscr, ch)) != ERR)
if (r == OK)
switch (*ch) {
case '\r': // with nonl(), this is ENTER key value
if (len == 1) {
@@ -872,10 +872,10 @@ readln(char *path)
goto end;
}

if (len == 2)
wln[--len] = '\0';
if (len == 1)
cur = oldcur;

wln[--len] = '\0';
wcstombs(ln, wln, LINE_MAX << 2);
ndents = total;
if (matches(pln) == -1) {
@@ -891,9 +891,12 @@ readln(char *path)
case CONTROL('Q'):
goto end;
default:
/* Reset cur in case it's a repeat search */
if (len == 1)
cur = 0;

wln[len] = (wchar_t)*ch;
++len;
wln[len] = '\0';
wln[++len] = '\0';
wcstombs(ln, wln, LINE_MAX << 2);
ndents = total;
if (matches(pln) == -1)
@@ -901,7 +904,7 @@ readln(char *path)
redraw(path);
printprompt(ln);
}
} else {
else
switch (*ch) {
case KEY_DC: // fallthrough
case KEY_BACKSPACE:
@@ -911,10 +914,10 @@ readln(char *path)
goto end;
}

if (len == 2)
wln[--len] = '\0';
if (len == 1)
cur = oldcur;

wln[--len] = '\0';
wcstombs(ln, wln, LINE_MAX << 2);
ndents = total;
if (matches(pln) == -1)
@@ -932,8 +935,6 @@ readln(char *path)
default:
goto end;
}
}
}
end:
noecho();
curs_set(FALSE);


Loading…
Cancel
Save