Merge pull request #4737 from jamessan/vim-7.4.1017

https://github.com/neovim/neovim/pull/4789C] vim-patch:7.4.1017,7.4.1018,7.4.1034
This commit is contained in:
Justin M. Keyes 2016-05-21 00:05:37 -04:00
commit 8e20ba9fbd
3 changed files with 29 additions and 11 deletions

View File

@ -1639,18 +1639,21 @@ do_set (
&& STRNCMP(s, newval, i) == 0
&& (!(flags & P_COMMA)
|| s[i] == ','
|| s[i] == NUL))
|| s[i] == NUL)) {
break;
/* Count backslashes. Only a comma with an
* even number of backslashes before it is
* recognized as a separator */
if (s > origval && s[-1] == '\\')
++bs;
else
}
// Count backslashes. Only a comma with an even number of
// backslashes or a single backslash preceded by a comma
// before it is recognized as a separator
if ((s > origval + 1 && s[-1] == '\\' && s[-2] != ',')
|| (s == origval + 1 && s[-1] == '\\')) {
bs++;
} else {
bs = 0;
}
}
/* do not add if already there */
// do not add if already there
if ((adding || prepending) && *s) {
prepending = FALSE;
adding = FALSE;

View File

@ -650,7 +650,7 @@ static int included_patches[] = {
1037,
1036,
1035,
// 1034,
1034,
// 1033 NA
1032,
// 1031 NA,
@ -666,8 +666,8 @@ static int included_patches[] = {
// 1021 NA
// 1020 NA
// 1019 NA
// 1018,
// 1017,
1018,
1017,
// 1016 NA
1015,
// 1014 NA

View File

@ -7,6 +7,21 @@ local clear, execute, eval, eq =
describe(':set', function()
before_each(clear)
it('handles backslash properly', function()
execute('set iskeyword=a,b,c')
execute('set iskeyword+=d')
eq('a,b,c,d', eval('&iskeyword'))
execute([[set iskeyword+=\\,e]])
eq([[a,b,c,d,\,e]], eval('&iskeyword'))
execute('set iskeyword-=e')
eq([[a,b,c,d,\]], eval('&iskeyword'))
execute([[set iskeyword-=\]])
eq('a,b,c,d', eval('&iskeyword'))
end)
it('recognizes a trailing comma with +=', function()
execute('set wildignore=*.png,')
execute('set wildignore+=*.jpg')