mirror of
https://github.com/jarun/nnn.git
synced 2024-11-28 05:41:31 +00:00
Quicker re-sort
This commit is contained in:
parent
eea1b5da7d
commit
2d27902ac0
30
src/nnn.c
30
src/nnn.c
|
@ -692,6 +692,7 @@ static haiku_nm_h haiku_hnd;
|
|||
#endif /* __GNUC__ */
|
||||
|
||||
/* Forward declarations */
|
||||
static size_t xstrlcpy(char *dest, const char *src, size_t n);
|
||||
static void redraw(char *path);
|
||||
static int spawn(char *file, char *arg1, char *arg2, const char *dir, uchar flag);
|
||||
static int (*nftw_fn)(const char *fpath, const struct stat *sb, int typeflag, struct FTW *ftwbuf);
|
||||
|
@ -797,8 +798,11 @@ static void printmsg(const char *msg)
|
|||
static void printwait(const char *msg, int *presel)
|
||||
{
|
||||
printmsg(msg);
|
||||
if (presel)
|
||||
if (presel) {
|
||||
*presel = MSGWAIT;
|
||||
if (ndents)
|
||||
xstrlcpy(g_ctx[cfg.curctx].c_name, dents[cur].name, NAME_MAX + 1);
|
||||
}
|
||||
}
|
||||
|
||||
/* Kill curses and display error before exiting */
|
||||
|
@ -2307,8 +2311,8 @@ static int nextsel(int presel)
|
|||
//DPRINTF_D(c);
|
||||
//DPRINTF_S(keyname(c));
|
||||
|
||||
if (c == ERR)
|
||||
c = 0;
|
||||
if (c == ERR && presel == MSGWAIT)
|
||||
c = (cfg.filtermode || filterset()) ? FILTER : CONTROL('L');
|
||||
else if (c == FILTER || c == CONTROL('L'))
|
||||
/* Clear previous filter when manually starting */
|
||||
clearfilter();
|
||||
|
@ -5238,11 +5242,8 @@ nochange:
|
|||
}
|
||||
|
||||
sel = nextsel(presel);
|
||||
if (presel) {
|
||||
if (presel == MSGWAIT)
|
||||
statusbar(path);
|
||||
if (presel)
|
||||
presel = 0;
|
||||
}
|
||||
|
||||
switch (sel) {
|
||||
#ifndef NOMOUSE
|
||||
|
@ -5657,17 +5658,18 @@ nochange:
|
|||
}
|
||||
}
|
||||
|
||||
/* Save current */
|
||||
if (ndents)
|
||||
copycurname();
|
||||
|
||||
if (cfg.filtermode || filterset())
|
||||
presel = FILTER;
|
||||
|
||||
if (r == 'd' || r == 'a')
|
||||
goto begin;
|
||||
if (ndents) {
|
||||
copycurname();
|
||||
|
||||
qsort(dents, ndents, sizeof(*dents), entrycmpfn);
|
||||
if (r == 'd' || r == 'a')
|
||||
goto begin;
|
||||
|
||||
qsort(dents, ndents, sizeof(*dents), entrycmpfn);
|
||||
move_cursor(ndents ? dentfind(lastname, ndents) : 0, 0);
|
||||
}
|
||||
continue;
|
||||
case SEL_STATS: // fallthrough
|
||||
case SEL_CHMODX:
|
||||
|
|
Loading…
Reference in a new issue