소스 검색

Simplify filter handling

master
Arun Prakash Jana 7 년 전
부모
커밋
b854f396cf
1개의 변경된 파일25개의 추가작업 그리고 45개의 파일을 삭제
  1. +25
    -45
      nnn.c

+ 25
- 45
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);


불러오는 중...
취소
저장