changeset 6841:0f1cc87630d8 v7.4.741

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)
author Bram Moolenaar <bram@vim.org>
date Fri, 19 Jun 2015 14:06:43 +0200
parents 37828f7503c7
children 948e22983cd3
files src/option.c src/testdir/Make_amiga.mak src/testdir/Make_dos.mak src/testdir/Make_ming.mak src/testdir/Make_os2.mak src/testdir/Make_vms.mms src/testdir/Makefile src/testdir/test_set.in src/testdir/test_set.ok src/version.c
diffstat 10 files changed, 27 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- 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);
--- 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
--- 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
--- 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
--- 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
--- a/src/testdir/Make_vms.mms
+++ b/src/testdir/Make_vms.mms
@@ -4,7 +4,7 @@
 # Authors:	Zoltan Arpadffy, <arpadffy@polarhome.com>
 #		Sandor Kopanyi,  <sandor.kopanyi@mailbox.hu>
 #
-# 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
--- 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
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
new file mode 100644
--- /dev/null
+++ b/src/testdir/test_set.ok
@@ -0,0 +1,1 @@
+*.png,*.jpg
--- 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,