mirror of
https://github.com/jarun/nnn.git
synced 2024-11-28 05:41:31 +00:00
Minor code refactor
This commit is contained in:
parent
847bda4380
commit
e8183058fd
71
src/nnn.c
71
src/nnn.c
|
@ -440,23 +440,22 @@ static char * const utils[] = {
|
|||
#define MSG_COPY_NAME 23
|
||||
#define MSG_CONTINUE 24
|
||||
#define MSG_SEL_MISSING 25
|
||||
#define MSG_SSN_MISSING 26
|
||||
#define MSG_DIR_ACCESS 27
|
||||
#define MSG_0_CREATED 28
|
||||
#define MSG_NOT_REG_FILE 29
|
||||
#define MSG_PERM_DENIED 30
|
||||
#define MSG_EMPTY_FILE 31
|
||||
#define MSG_UNSUPPORTED 32
|
||||
#define MSG_NOT_SET 33
|
||||
#define MSG_RANGE_SEL_ON 34
|
||||
#define MSG_DIR_CHANGED 35
|
||||
#define MSG_0_FILES 36
|
||||
#define MSG_EXISTS 37
|
||||
#define MSG_FEW_COLOUMNS 38
|
||||
#define MSG_REMOTE_OPTS 39
|
||||
#define MSG_RCLONE_DELAY 40
|
||||
#define MSG_APP_NAME 41
|
||||
#define MSG_ARCHIVE_OPTS 42
|
||||
#define MSG_ACCESS 26
|
||||
#define MSG_0_CREATED 27
|
||||
#define MSG_NOT_REG_FILE 28
|
||||
#define MSG_PERM_DENIED 29
|
||||
#define MSG_EMPTY_FILE 30
|
||||
#define MSG_UNSUPPORTED 31
|
||||
#define MSG_NOT_SET 32
|
||||
#define MSG_RANGE_SEL_ON 33
|
||||
#define MSG_DIR_CHANGED 34
|
||||
#define MSG_0_FILES 35
|
||||
#define MSG_EXISTS 36
|
||||
#define MSG_FEW_COLOUMNS 37
|
||||
#define MSG_REMOTE_OPTS 38
|
||||
#define MSG_RCLONE_DELAY 39
|
||||
#define MSG_APP_NAME 40
|
||||
#define MSG_ARCHIVE_OPTS 41
|
||||
|
||||
static const char * const messages[] = {
|
||||
"no traversal",
|
||||
|
@ -484,8 +483,7 @@ static const char * const messages[] = {
|
|||
"link suffix [@ for none]: ",
|
||||
"copy name: ",
|
||||
"\nPress Enter to continue",
|
||||
"sel file missing",
|
||||
"session file missing",
|
||||
"open failed",
|
||||
"dir inaccessible",
|
||||
"0 created",
|
||||
"not regular file",
|
||||
|
@ -2891,7 +2889,7 @@ static void save_session(bool last_session, int *presel)
|
|||
|
||||
fsession = fopen(spath, "wb");
|
||||
if (!fsession) {
|
||||
printwait(messages[MSG_SSN_MISSING], presel);
|
||||
printwait(messages[MSG_ACCESS], presel);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -2944,7 +2942,7 @@ static bool load_session(const char *sname, char **path, char **lastdir, char **
|
|||
|
||||
fsession = fopen(spath, "rb");
|
||||
if (!fsession) {
|
||||
printmsg(messages[MSG_SSN_MISSING]);
|
||||
printmsg(messages[MSG_ACCESS]);
|
||||
xdelay(XDELAY_INTERVAL_MS);
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -3223,7 +3221,7 @@ static void find_accessible_parent(char *path, char *newpath, char *lastname, in
|
|||
|
||||
xstrlcpy(path, dir, PATH_MAX);
|
||||
|
||||
printmsg(messages[MSG_DIR_ACCESS]);
|
||||
printmsg(messages[MSG_ACCESS]);
|
||||
xdelay(XDELAY_INTERVAL_MS);
|
||||
}
|
||||
|
||||
|
@ -3636,6 +3634,22 @@ static bool run_selected_plugin(char **path, const char *file, char *newpath, ch
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
static void launch_app(const char *path, char *newpath)
|
||||
{
|
||||
int r = F_NORMAL;
|
||||
char *tmp = newpath;
|
||||
|
||||
mkpath(plugindir, utils[UTIL_LAUNCH], newpath);
|
||||
|
||||
if (!(getutil(utils[UTIL_FZF]) || getutil(utils[UTIL_FZY])) || access(newpath, X_OK) < 0) {
|
||||
tmp = xreadline(NULL, messages[MSG_APP_NAME]);
|
||||
r = F_NOWAIT | F_NOTRACE | F_MULTI;
|
||||
}
|
||||
|
||||
if (tmp && *tmp) // NOLINT
|
||||
spawn(tmp, "0", NULL, path, r);
|
||||
}
|
||||
|
||||
static int sum_bsizes(const char *fpath, const struct stat *sb, int typeflag, struct FTW *ftwbuf)
|
||||
{
|
||||
(void) fpath;
|
||||
|
@ -5253,18 +5267,7 @@ nochange:
|
|||
setdirwatch();
|
||||
goto begin;
|
||||
case SEL_LAUNCH:
|
||||
mkpath(plugindir, utils[UTIL_LAUNCH], newpath);
|
||||
if ((getutil(utils[UTIL_FZF]) || getutil(utils[UTIL_FZY]))
|
||||
&& access(newpath, X_OK) == 0) {
|
||||
tmp = newpath;
|
||||
r = F_NORMAL;
|
||||
} else {
|
||||
tmp = xreadline(NULL, messages[MSG_APP_NAME]);
|
||||
r = F_NOWAIT | F_NOTRACE | F_MULTI;
|
||||
}
|
||||
|
||||
if (tmp && *tmp) // NOLINT
|
||||
spawn(tmp, "0", NULL, path, r);
|
||||
launch_app(path, newpath);
|
||||
|
||||
if (cfg.filtermode)
|
||||
presel = FILTER;
|
||||
|
|
Loading…
Reference in a new issue