]> Sergey Matveev's repositories - nnn.git/commitdiff
Changes for running scripts
authorArun Prakash Jana <engineerarun@gmail.com>
Sat, 8 Dec 2018 10:48:46 +0000 (16:18 +0530)
committerArun Prakash Jana <engineerarun@gmail.com>
Sat, 8 Dec 2018 11:01:38 +0000 (16:31 +0530)
src/nnn.c
src/nnn.h

index 66894683bb3870129710443ed44910cf30d2b2ea..9cc1fc46569e4505ef06f8ce0e62c57f3db3f91d 100644 (file)
--- a/src/nnn.c
+++ b/src/nnn.c
@@ -1058,7 +1058,7 @@ static int entrycmp(const void *va, const void *vb)
  * Also modifies the run and env pointers (used on SEL_{RUN,RUNARG}).
  * The next keyboard input can be simulated by presel.
  */
-static int nextsel(char **run, char **env, int *presel)
+static int nextsel(int *presel)
 {
        static int c;
        static uint i;
@@ -2537,7 +2537,7 @@ static void browse(char *ipath)
        static char newpath[PATH_MAX] __attribute__ ((aligned));
        static char mark[PATH_MAX] __attribute__ ((aligned));
        char *path, *lastdir, *lastname;
-       char *dir, *tmp, *run = NULL, *env = NULL;
+       char *dir, *tmp;
        struct stat sb;
        int r, fd, presel, ncp = 0, copystartid = 0, copyendid = 0;
        enum action sel;
@@ -2612,7 +2612,7 @@ nochange:
                if (getppid() == 1)
                        _exit(0);
 
-               sel = nextsel(&run, &env, &presel);
+               sel = nextsel(&presel);
 
                switch (sel) {
                case SEL_BACK:
@@ -3377,7 +3377,7 @@ nochange:
                        close(fd);
                        xstrlcpy(lastname, tmp, NAME_MAX + 1);
                        goto begin;
-               case SEL_RUN: // fallthrough
+               case SEL_SHELL: // fallthrough
                case SEL_RUNSCRIPT:
                        if (sel == SEL_RUNSCRIPT) {
                                tmp = getenv("NNN_SCRIPT");
@@ -3388,31 +3388,29 @@ nochange:
                                                tmp = xreadline(NULL, "script suffix: ");
                                                if (tmp && tmp[0])
                                                        xstrlcpy(newpath + _len - 1, tmp, PATH_MAX - _len);
-
                                                tmp = newpath;
                                        }
 
-                                       char *curfile = NULL;
-
+                                       dir = NULL; /* dir used as temp var */
                                        if (ndents)
-                                               curfile = dents[cur].name;
-
-                                       spawn(shell, tmp, curfile, path, F_NORMAL | F_SIGINT);
-                               } else
+                                               dir = dents[cur].name;
+                                       spawn(shell, tmp, dir, path, F_NORMAL | F_SIGINT);
+                               } else {
                                        printmsg("set NNN_SCRIPT");
-                       } else {
+                                       goto nochange;
+                               }
+                       } else
                                spawn(shell, shell_arg, NULL, path, F_NORMAL | F_MARKER);
 
-                               /* Continue in navigate-as-you-type mode, if enabled */
-                               if (cfg.filtermode)
-                                       presel = FILTER;
-                       }
+                       /* Continue in navigate-as-you-type mode, if enabled */
+                       if (cfg.filtermode)
+                               presel = FILTER;
 
                        /* Save current */
                        if (ndents)
                                copycurname();
 
-                       /* Repopulate as directory content may have changed */
+                       /* Re-populate as directory content may have changed */
                        goto begin;
                case SEL_QUITCD: // fallthrough
                case SEL_QUIT:
index c0c818b1b2d74101e4171a646cf3c10e756ec3bc..710bc97072dea13fddfa0a473d950a32d22ad58a 100644 (file)
--- a/src/nnn.h
+++ b/src/nnn.h
@@ -80,7 +80,7 @@ enum action {
        SEL_RENAME,
        SEL_RENAMEALL,
        SEL_HELP,
-       SEL_RUN,
+       SEL_SHELL,
        SEL_RUNSCRIPT,
        SEL_RUNEDIT,
        SEL_RUNPAGE,
@@ -210,8 +210,8 @@ static struct key bindings[] = {
        /* Show help */
        { '?',            SEL_HELP },
        /* Run command */
-       { '!',            SEL_RUN },
-       { CONTROL(']'),   SEL_RUN },
+       { '!',            SEL_SHELL },
+       { CONTROL(']'),   SEL_SHELL },
        /* Run a custom script */
        { 'R',            SEL_RUNSCRIPT },
        /* Run command with argument */