diff options
author | Rui Abreu Ferreira <raf-ep@gmx.com> | 2016-09-30 15:29:50 +0100 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2017-01-11 01:05:55 +0100 |
commit | 1e079fa987ac5211a1749c13a4efaa6090963fa7 (patch) | |
tree | d3815aa7d8957290323b5d7ca24bdb34babbed9c /src/nvim/eval.c | |
parent | 4178e865d51de71430ba08fb5140333caa589097 (diff) | |
download | rneovim-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.c | 6 |
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. } |