diff options
author | Florian Walch <florian@fwalch.com> | 2014-12-18 15:35:13 +0100 |
---|---|---|
committer | Florian Walch <florian@fwalch.com> | 2014-12-18 15:41:27 +0100 |
commit | c780075afad41fd4de30212845becdca83c4dd7c (patch) | |
tree | 1265077e1cfb6c3bb798be95d5b2319e72a0c81f /src/nvim/os_unix.c | |
parent | 1eef5303514a8499fd376270bd89a40e2d3eafbb (diff) | |
download | rneovim-c780075afad41fd4de30212845becdca83c4dd7c.tar.gz rneovim-c780075afad41fd4de30212845becdca83c4dd7c.tar.bz2 rneovim-c780075afad41fd4de30212845becdca83c4dd7c.zip |
vim-patch:7.4.423
Problem: expand("$shell") does not work as documented.
Solution: Do not escape the $ when expanding environment variables.
https://code.google.com/p/vim/source/detail?r=v7-4-423
Diffstat (limited to 'src/nvim/os_unix.c')
-rw-r--r-- | src/nvim/os_unix.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/nvim/os_unix.c b/src/nvim/os_unix.c index a9c1fec0b4..612f475933 100644 --- a/src/nvim/os_unix.c +++ b/src/nvim/os_unix.c @@ -1066,10 +1066,12 @@ int mch_expand_wildcards(int num_pat, char_u **pat, int *num_file, || pat[i][j + 1] == '`') *p++ = '\\'; ++j; - } else if (!intick && vim_strchr(SHELL_SPECIAL, - pat[i][j]) != NULL) + } else if (!intick + && ((flags & EW_KEEPDOLLAR) == 0 || pat[i][j] != '$') + && vim_strchr(SHELL_SPECIAL, pat[i][j]) != NULL) /* Put a backslash before a special character, but not - * when inside ``. */ + * when inside ``. And not for $var when EW_KEEPDOLLAR is + * set. */ *p++ = '\\'; /* Copy one character. */ |