From: Arun Prakash Jana <engineerarun@gmail.com>
Date: Sat, 8 Dec 2018 11:52:52 +0000 (+0530)
Subject: Ensure NNN_SCRIPT(suffix) exists
X-Git-Tag: v2.2~41
X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=7119310a6a0cac82ae792f1a330015eeaf05dbe4;p=nnn.git

Ensure NNN_SCRIPT(suffix) exists
---

diff --git a/src/nnn.c b/src/nnn.c
index 79dfc632..b88ca38c 100644
--- 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;
diff --git a/src/nnn.h b/src/nnn.h
index 710bc970..088f5a60 100644
--- 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 },