aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/os_unix.c
diff options
context:
space:
mode:
authorFlorian Walch <florian@fwalch.com>2014-12-18 15:35:13 +0100
committerFlorian Walch <florian@fwalch.com>2014-12-18 15:41:27 +0100
commitc780075afad41fd4de30212845becdca83c4dd7c (patch)
tree1265077e1cfb6c3bb798be95d5b2319e72a0c81f /src/nvim/os_unix.c
parent1eef5303514a8499fd376270bd89a40e2d3eafbb (diff)
downloadrneovim-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.c8
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. */