]> Sergey Matveev's repositories - nnn.git/commitdiff
Minor code refactor
authorArun Prakash Jana <engineerarun@gmail.com>
Tue, 10 Dec 2019 03:22:00 +0000 (08:52 +0530)
committerArun Prakash Jana <engineerarun@gmail.com>
Tue, 10 Dec 2019 03:22:00 +0000 (08:52 +0530)
src/nnn.c

index aaf4c33addc7dc2b86e6ae53a24f56b341699aa4..62d67e41bafc4e9fe0972a0a1559a9469af54865 100644 (file)
--- 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;