# HG changeset patch # User Bram Moolenaar # Date 1434715603 -7200 # Node ID 0f1cc87630d8b91ea91825d53b64f48a759b58a1 # Parent 37828f7503c7baa7dc4700c2e5ba18e65ead1803 patch 7.4.741 Problem: When using += with ":set" a trailing comma is not recognized. (Issue 365) Solution: Don't add a second comma. Add a test. (partly by Christian Brabandt) diff --git a/src/option.c b/src/option.c --- a/src/option.c +++ b/src/option.c @@ -4829,6 +4829,10 @@ do_set(arg, opt_flags) if (adding) { i = (int)STRLEN(origval); + /* strip a trailing comma, would get 2 */ + if (comma && i > 1 && origval[i - 1] == ',' + && origval[i - 2] != '\\') + i--; mch_memmove(newval + i + comma, newval, STRLEN(newval) + 1); mch_memmove(newval, origval, (size_t)i); diff --git a/src/testdir/Make_amiga.mak b/src/testdir/Make_amiga.mak --- a/src/testdir/Make_amiga.mak +++ b/src/testdir/Make_amiga.mak @@ -54,6 +54,7 @@ SCRIPTS = test1.out test3.out test4.out test_nested_function.out \ test_options.out \ test_qf_title.out \ + test_set.out \ test_signs.out \ test_textobjects.out \ test_utf8.out @@ -198,6 +199,7 @@ test_marks.out: test_marks.in test_nested_function.out: test_nested_function.in test_options.out: test_options.in test_qf_title.out: test_qf_title.in +test_set.out: test_set.in test_signs.out: test_signs.in test_textobjects.out: test_textobjects.in test_utf8.out: test_utf8.in diff --git a/src/testdir/Make_dos.mak b/src/testdir/Make_dos.mak --- a/src/testdir/Make_dos.mak +++ b/src/testdir/Make_dos.mak @@ -53,6 +53,7 @@ SCRIPTS = test3.out test4.out test5.out test_nested_function.out \ test_options.out \ test_qf_title.out \ + test_set.out \ test_signs.out \ test_textobjects.out \ test_utf8.out diff --git a/src/testdir/Make_ming.mak b/src/testdir/Make_ming.mak --- a/src/testdir/Make_ming.mak +++ b/src/testdir/Make_ming.mak @@ -75,6 +75,7 @@ SCRIPTS = test3.out test4.out test5.out test_nested_function.out \ test_options.out \ test_qf_title.out \ + test_set.out \ test_signs.out \ test_textobjects.out \ test_utf8.out diff --git a/src/testdir/Make_os2.mak b/src/testdir/Make_os2.mak --- a/src/testdir/Make_os2.mak +++ b/src/testdir/Make_os2.mak @@ -55,6 +55,7 @@ SCRIPTS = test1.out test3.out test4.out test_nested_function.out \ test_options.out \ test_qf_title.out \ + test_set.out \ test_signs.out \ test_textobjects.out \ test_utf8.out diff --git a/src/testdir/Make_vms.mms b/src/testdir/Make_vms.mms --- a/src/testdir/Make_vms.mms +++ b/src/testdir/Make_vms.mms @@ -4,7 +4,7 @@ # Authors: Zoltan Arpadffy, # Sandor Kopanyi, # -# Last change: 2015 Apr 21 +# Last change: 2015 Jun 19 # # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. # Edit the lines in the Configuration section below to select. @@ -114,6 +114,7 @@ SCRIPT = test1.out test2.out test3.out test_nested_function.out \ test_options.out \ test_qf_title.out \ + test_set.out \ test_signs.out \ test_textobjects.out \ test_utf8.out diff --git a/src/testdir/Makefile b/src/testdir/Makefile --- a/src/testdir/Makefile +++ b/src/testdir/Makefile @@ -51,6 +51,7 @@ SCRIPTS = test1.out test2.out test3.out test_nested_function.out \ test_options.out \ test_qf_title.out \ + test_set.out \ test_signs.out \ test_textobjects.out \ test_utf8.out diff --git a/src/testdir/test_set.in b/src/testdir/test_set.in new file mode 100644 --- /dev/null +++ b/src/testdir/test_set.in @@ -0,0 +1,12 @@ +Tests for :set vim: set ft=vim : + +STARTTEST +:so small.vim +:set wildignore=*.png, +:set wildignore+=*.jpg +:$put =&wildignore +:/^Output goes here/+1,$w! test.out +:qa! +ENDTEST + +Output goes here diff --git a/src/testdir/test_set.ok b/src/testdir/test_set.ok new file mode 100644 --- /dev/null +++ b/src/testdir/test_set.ok @@ -0,0 +1,1 @@ +*.png,*.jpg diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -742,6 +742,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 741, +/**/ 740, /**/ 739,