diff options
-rw-r--r-- | src/nvim/option.c | 5 | ||||
-rw-r--r-- | src/nvim/version.c | 2 | ||||
-rw-r--r-- | test/functional/legacy/set_spec.lua | 15 |
3 files changed, 21 insertions, 1 deletions
diff --git a/src/nvim/option.c b/src/nvim/option.c index 18269f4c18..d3a2ce971d 100644 --- a/src/nvim/option.c +++ b/src/nvim/option.c @@ -1673,6 +1673,11 @@ do_set ( && *newval != NUL); if (adding) { i = (int)STRLEN(origval); + // Strip a trailing comma, would get 2. + if (comma && i > 1 && origval[i - 1] == ',' + && origval[i - 2] != '\\') { + --i; + } memmove(newval + i + comma, newval, STRLEN(newval) + 1); memmove(newval, origval, (size_t)i); diff --git a/src/nvim/version.c b/src/nvim/version.c index 99484dd21d..871f96acf4 100644 --- a/src/nvim/version.c +++ b/src/nvim/version.c @@ -421,7 +421,7 @@ static int included_patches[] = { // 744 NA // 743, // 742, - // 741, + 741, // 740, 739, // 738 NA diff --git a/test/functional/legacy/set_spec.lua b/test/functional/legacy/set_spec.lua new file mode 100644 index 0000000000..f81fcd3700 --- /dev/null +++ b/test/functional/legacy/set_spec.lua @@ -0,0 +1,15 @@ +-- Tests for :set + +local helpers = require('test.functional.helpers') +local clear, execute, eval, eq = + helpers.clear, helpers.execute, helpers.eval, helpers.eq + +describe(':set', function() + before_each(clear) + + it('recognizes a trailing comma with +=', function() + execute('set wildignore=*.png,') + execute('set wildignore+=*.jpg') + eq('*.png,*.jpg', eval('&wildignore')) + end) +end) |