diff options
author | Bram Moolenaar <Bram@vim.org> | 2017-06-05 18:46:26 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2017-06-05 18:46:26 +0200 |
commit | 206155280def51160a9d81d983aed639015ffb44 (patch) | |
tree | 1143d17e10d8b407fdabe0ced2a63b4fee28373b /src/evalfunc.c | |
parent | 6c95fbc9ae64f3a7619070e830f0c35aa4f0ada9 (diff) |
patch 8.0.0625: shellescape() always escapes a newlinev8.0.0625
Problem: shellescape() always escapes a newline, which does not work with
some shells. (Harm te Hennepe)
Solution: Only escape a newline when the "special" argument is non-zero.
(Christian Brabandt, closes #1590)
Diffstat (limited to 'src/evalfunc.c')
-rw-r--r-- | src/evalfunc.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/evalfunc.c b/src/evalfunc.c index 60cd344243..c198df13a9 100644 --- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -10461,8 +10461,10 @@ f_sha256(typval_T *argvars, typval_T *rettv) static void f_shellescape(typval_T *argvars, typval_T *rettv) { + int do_special = non_zero_arg(&argvars[1]); + rettv->vval.v_string = vim_strsave_shellescape( - get_tv_string(&argvars[0]), non_zero_arg(&argvars[1]), TRUE); + get_tv_string(&argvars[0]), do_special, do_special); rettv->v_type = VAR_STRING; } |