|
|
@@ -2569,18 +2569,23 @@ static int filterentries(char *path, char *lastname) |
|
|
|
} else |
|
|
|
continue; |
|
|
|
// fallthrough |
|
|
|
case KEY_F(5): // fallthrough |
|
|
|
case CONTROL('L'): |
|
|
|
if (*ch == CONTROL('L')) { |
|
|
|
if (*ch == CONTROL('L') || *ch == KEY_F(5)) { |
|
|
|
if (wln[1]) { |
|
|
|
ln[REGEX_MAX - 1] = ln[1]; |
|
|
|
ln[1] = wln[1] = '\0'; |
|
|
|
len = 1; |
|
|
|
ndents = total; |
|
|
|
} else if (ln[REGEX_MAX - 1]) { /* Show the previous filter */ |
|
|
|
} else if (*ch == CONTROL('L') && ln[REGEX_MAX - 1]) { |
|
|
|
/* Show the previous filter */ |
|
|
|
ln[1] = ln[REGEX_MAX - 1]; |
|
|
|
ln[REGEX_MAX - 1] = '\0'; |
|
|
|
len = mbstowcs(wln, ln, REGEX_MAX); |
|
|
|
} |
|
|
|
|
|
|
|
if (*ch == KEY_F(5)) |
|
|
|
goto end; |
|
|
|
} |
|
|
|
|
|
|
|
/* Go to the top, we don't know if the hovered file will match the filter */ |
|
|
@@ -2597,17 +2602,8 @@ static int filterentries(char *path, char *lastname) |
|
|
|
#endif |
|
|
|
case 27: /* Exit filter mode on Escape and Alt+key */ |
|
|
|
if (handle_alt_key(ch) != ERR) { |
|
|
|
if (*ch == 27) { /* Handle Alt + Esc */ |
|
|
|
if (wln[1]) { |
|
|
|
ln[REGEX_MAX - 1] = ln[1]; |
|
|
|
ln[1] = wln[1] = '\0'; |
|
|
|
ndents = total; |
|
|
|
*ch = CONTROL('L'); |
|
|
|
} |
|
|
|
} else { |
|
|
|
unget_wch(*ch); |
|
|
|
*ch = CONTROL('S'); |
|
|
|
} |
|
|
|
unget_wch(*ch); |
|
|
|
*ch = CONTROL('S'); |
|
|
|
} |
|
|
|
goto end; |
|
|
|
} |
|
|
@@ -4145,7 +4141,7 @@ static void show_help(const char *path) |
|
|
|
"a1-4 Context 1-4%-7c(Sh)Tab Cycle context\n" |
|
|
|
"c/ Filter%-17c^N Toggle type-to-nav\n" |
|
|
|
"aEsc Exit prompt%-12c^L Redraw/clear prompt\n" |
|
|
|
"c0 Lock%-14cAlt+Esc Clear filter, redraw\n" |
|
|
|
"c0 Lock%-19cF5 Redraw\n" |
|
|
|
"c? Help, conf%-13c^G QuitCD\n" |
|
|
|
"cq Quit context%-7c^Q (Q) Quit (with err)\n" |
|
|
|
"1FILES\n" |
|
|
|