|
|
@@ -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: |
|
|
|