From e8183058fd71dcaa8170e48bb731f7dc0f9f4c57 Mon Sep 17 00:00:00 2001 From: Arun Prakash Jana Date: Tue, 10 Dec 2019 08:52:00 +0530 Subject: [PATCH] Minor code refactor --- src/nnn.c | 71 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 37 insertions(+), 34 deletions(-) diff --git a/src/nnn.c b/src/nnn.c index aaf4c33a..62d67e41 100644 --- a/src/nnn.c +++ b/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;