Commit c780075a authored by Florian Walch's avatar Florian Walch

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
parent 1eef5303
......@@ -58,8 +58,8 @@ int get_indent_str(char_u *ptr, int ts, int list)
if (!list || lcs_tab1) { // count a tab for what it is worth
count += ts - (count % ts);
} else {
// in list mode, when tab is not set, count screen char width for Tab:
// ^I
// In list mode, when tab is not set, count screen char width
// for Tab, displays: ^I
count += ptr2cells(ptr);
}
} else if (*ptr == ' ') {
......
......@@ -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. */
......
......@@ -1080,7 +1080,7 @@ gen_expand_wildcards (
free(p);
ga_clear_strings(&ga);
i = mch_expand_wildcards(num_pat, pat, num_file, file,
flags);
flags | EW_KEEPDOLLAR);
recursive = FALSE;
return i;
}
......
......@@ -17,6 +17,7 @@
#define EW_ICASE 0x100 /* ignore case */
#define EW_NOERROR 0x200 /* no error for bad regexp */
#define EW_NOTWILD 0x400 /* add match with literal name if exists */
#define EW_KEEPDOLLAR 0x800 /* do not escape $, $var is expanded */
/* Note: mostly EW_NOTFOUND and EW_SILENT are mutually exclusive: EW_NOTFOUND
* is used when executing commands and EW_SILENT for interactive expanding. */
......
......@@ -306,7 +306,7 @@ static int included_patches[] = {
//426 NA
425,
//424 NA
//423,
423,
//422,
421,
//420 NA
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment