mirror of
https://github.com/jarun/nnn.git
synced 2025-03-18 20:39:45 +00:00
Simplify filter handling
This commit is contained in:
parent
efc70f33e5
commit
b854f396cf
1 changed files with 25 additions and 45 deletions
70
nnn.c
70
nnn.c
|
@ -930,21 +930,8 @@ filterentries(char *path)
|
||||||
curs_set(TRUE);
|
curs_set(TRUE);
|
||||||
printprompt(ln);
|
printprompt(ln);
|
||||||
|
|
||||||
while ((r = get_wch(ch)) != ERR)
|
while ((r = get_wch(ch)) != ERR) {
|
||||||
if (r == OK)
|
if (*ch == 127 /* handle DEL */ || *ch == KEY_DC || *ch == KEY_BACKSPACE) {
|
||||||
switch (*ch) {
|
|
||||||
case '\r': // with nonl(), this is ENTER key value
|
|
||||||
if (len == 1) {
|
|
||||||
cur = oldcur;
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (matches(pln) == -1)
|
|
||||||
goto end;
|
|
||||||
|
|
||||||
redraw(path);
|
|
||||||
goto end;
|
|
||||||
case 127: // handle DEL
|
|
||||||
if (len == 1) {
|
if (len == 1) {
|
||||||
cur = oldcur;
|
cur = oldcur;
|
||||||
*ch = CONTROL('L');
|
*ch = CONTROL('L');
|
||||||
|
@ -957,13 +944,26 @@ filterentries(char *path)
|
||||||
|
|
||||||
wcstombs(ln, wln, REGEX_MAX);
|
wcstombs(ln, wln, REGEX_MAX);
|
||||||
ndents = total;
|
ndents = total;
|
||||||
if (matches(pln) == -1) {
|
if (matches(pln) == -1)
|
||||||
printprompt(ln);
|
|
||||||
continue;
|
continue;
|
||||||
}
|
|
||||||
redraw(path);
|
redraw(path);
|
||||||
printprompt(ln);
|
printprompt(ln);
|
||||||
break;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (r == OK) {
|
||||||
|
switch (*ch) {
|
||||||
|
case '\r': // with nonl(), this is ENTER key value
|
||||||
|
if (len == 1) {
|
||||||
|
cur = oldcur;
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (matches(pln) == -1)
|
||||||
|
goto end;
|
||||||
|
|
||||||
|
redraw(path);
|
||||||
|
goto end;
|
||||||
case CONTROL('L'):
|
case CONTROL('L'):
|
||||||
if (len == 1)
|
if (len == 1)
|
||||||
cur = oldcur; // fallthrough
|
cur = oldcur; // fallthrough
|
||||||
|
@ -986,32 +986,12 @@ filterentries(char *path)
|
||||||
redraw(path);
|
redraw(path);
|
||||||
printprompt(ln);
|
printprompt(ln);
|
||||||
}
|
}
|
||||||
else
|
} else {
|
||||||
switch (*ch) {
|
if (len == 1)
|
||||||
case KEY_DC: // fallthrough
|
cur = oldcur;
|
||||||
case KEY_BACKSPACE:
|
goto end;
|
||||||
if (len == 1) {
|
}
|
||||||
cur = oldcur;
|
}
|
||||||
*ch = CONTROL('L');
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
|
|
||||||
wln[--len] = '\0';
|
|
||||||
if (len == 1)
|
|
||||||
cur = oldcur;
|
|
||||||
|
|
||||||
wcstombs(ln, wln, REGEX_MAX);
|
|
||||||
ndents = total;
|
|
||||||
if (matches(pln) == -1)
|
|
||||||
continue;
|
|
||||||
redraw(path);
|
|
||||||
printprompt(ln);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
if (len == 1)
|
|
||||||
cur = oldcur;
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
end:
|
end:
|
||||||
noecho();
|
noecho();
|
||||||
curs_set(FALSE);
|
curs_set(FALSE);
|
||||||
|
|
Loading…
Add table
Reference in a new issue