]> Sergey Matveev's repositories - nnn.git/commitdiff
Ensure NNN_SCRIPT(suffix) exists
authorArun Prakash Jana <engineerarun@gmail.com>
Sat, 8 Dec 2018 11:52:52 +0000 (17:22 +0530)
committerArun Prakash Jana <engineerarun@gmail.com>
Sat, 8 Dec 2018 12:08:17 +0000 (17:38 +0530)
src/nnn.c
src/nnn.h

index 79dfc632564f703a3f09a7cba96bd574f6bfadb2..b88ca38c08abc0ea058c1fabc3b1b7b316478160 100644 (file)
--- a/src/nnn.c
+++ b/src/nnn.c
@@ -3372,8 +3372,8 @@ nochange:
                        xstrlcpy(lastname, tmp, NAME_MAX + 1);
                        goto begin;
                case SEL_SHELL: // fallthrough
-               case SEL_RUNSCRIPT:
-                       if (sel == SEL_RUNSCRIPT) {
+               case SEL_SCRIPT:
+                       if (sel == SEL_SCRIPT) {
                                tmp = getenv("NNN_SCRIPT");
                                if (tmp) {
                                        if (getenv("NNN_MULTISCRIPT")) {
@@ -3385,6 +3385,12 @@ nochange:
                                                tmp = newpath;
                                        }
 
+                                       /* Check if file exists */
+                                       if (access(tmp, F_OK) == -1) {
+                                               printwarn();
+                                               goto nochange;
+                                       }
+
                                        dir = NULL; /* dir used as temp var */
                                        if (ndents)
                                                dir = dents[cur].name;
index 710bc97072dea13fddfa0a473d950a32d22ad58a..088f5a602e3e8ff0756160ff17cdab27029a6cf1 100644 (file)
--- a/src/nnn.h
+++ b/src/nnn.h
@@ -81,7 +81,7 @@ enum action {
        SEL_RENAMEALL,
        SEL_HELP,
        SEL_SHELL,
-       SEL_RUNSCRIPT,
+       SEL_SCRIPT,
        SEL_RUNEDIT,
        SEL_RUNPAGE,
        SEL_LOCK,
@@ -213,7 +213,7 @@ static struct key bindings[] = {
        { '!',            SEL_SHELL },
        { CONTROL(']'),   SEL_SHELL },
        /* Run a custom script */
-       { 'R',            SEL_RUNSCRIPT },
+       { 'R',            SEL_SCRIPT },
        /* Run command with argument */
        { 'e',            SEL_RUNEDIT },
        { 'p',            SEL_RUNPAGE },