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 },