aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/option.c5
-rw-r--r--src/nvim/version.c2
-rw-r--r--test/functional/legacy/set_spec.lua15
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)