nnn

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit b854f396cfa6ac4422e0556c738ebc479b0e1075
parent efc70f33e58bae95fa2b22231b8694c76c57b7c4
Author: Arun Prakash Jana <engineerarun@gmail.com>
Date:   Fri, 25 Aug 2017 14:10:57 +0530

Simplify filter handling

Diffstat:
Mnnn.c | 70+++++++++++++++++++++++++---------------------------------------------
1 file changed, 25 insertions(+), 45 deletions(-)

diff --git a/nnn.c b/nnn.c @@ -930,21 +930,8 @@ filterentries(char *path) curs_set(TRUE); printprompt(ln); - while ((r = get_wch(ch)) != ERR) - 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 127: // handle DEL + while ((r = get_wch(ch)) != ERR) { + if (*ch == 127 /* handle DEL */ || *ch == KEY_DC || *ch == KEY_BACKSPACE) { if (len == 1) { cur = oldcur; *ch = CONTROL('L'); @@ -957,13 +944,26 @@ filterentries(char *path) wcstombs(ln, wln, REGEX_MAX); ndents = total; - if (matches(pln) == -1) { - printprompt(ln); + if (matches(pln) == -1) continue; - } redraw(path); 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'): if (len == 1) cur = oldcur; // fallthrough @@ -986,32 +986,12 @@ filterentries(char *path) redraw(path); printprompt(ln); } - else - switch (*ch) { - case KEY_DC: // fallthrough - case KEY_BACKSPACE: - 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; - } + } else { + if (len == 1) + cur = oldcur; + goto end; + } + } end: noecho(); curs_set(FALSE);