aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval.c
diff options
context:
space:
mode:
authorRui Abreu Ferreira <raf-ep@gmx.com>2016-09-30 15:29:50 +0100
committerJustin M. Keyes <justinkz@gmail.com>2017-01-11 01:05:55 +0100
commit1e079fa987ac5211a1749c13a4efaa6090963fa7 (patch)
treed3815aa7d8957290323b5d7ca24bdb34babbed9c /src/nvim/eval.c
parent4178e865d51de71430ba08fb5140333caa589097 (diff)
downloadrneovim-1e079fa987ac5211a1749c13a4efaa6090963fa7.tar.gz
rneovim-1e079fa987ac5211a1749c13a4efaa6090963fa7.tar.bz2
rneovim-1e079fa987ac5211a1749c13a4efaa6090963fa7.zip
system([...]): Set v:shell_error=-1 if not executable.
Do _not_ set v:shell_error on parameter validation error. system([...]) does not invoke a shell, so this change is somewhat questionable. But `:help v:shell_error` is sufficiently vague to allow -1 in this case.
Diffstat (limited to 'src/nvim/eval.c')
-rw-r--r--src/nvim/eval.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index 17e89e5757..1688a565c1 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -16994,8 +16994,12 @@ static void get_system_output_as_rettv(typval_T *argvars, typval_T *rettv,
}
// get shell command to execute
- char **argv = tv_to_argv(&argvars[0], NULL, NULL);
+ bool executable = true;
+ char **argv = tv_to_argv(&argvars[0], NULL, &executable);
if (!argv) {
+ if (!executable) {
+ set_vim_var_nr(VV_SHELL_ERROR, (long)-1);
+ }
xfree(input);
return; // Already did emsg.
}