From a7b7b1cef9b61700ba5076c1d889dce791392388 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Fri, 19 Jun 2015 14:06:43 +0200 Subject: [PATCH] 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) --- src/option.c | 4 ++++ src/testdir/Make_amiga.mak | 2 ++ src/testdir/Make_dos.mak | 1 + src/testdir/Make_ming.mak | 1 + src/testdir/Make_os2.mak | 1 + src/testdir/Make_vms.mms | 3 ++- src/testdir/Makefile | 1 + src/testdir/test_set.in | 12 ++++++++++++ src/testdir/test_set.ok | 1 + src/version.c | 2 ++ 10 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 src/testdir/test_set.in create mode 100644 src/testdir/test_set.ok diff --git a/src/option.c b/src/option.c index 7bcb26abc..a6ce0ac63 100644 --- 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 index 102255dfd..e7c94c7e9 100644 --- a/src/testdir/Make_amiga.mak +++ b/src/testdir/Make_amiga.mak @@ -54,6 +54,7 @@ SCRIPTS = test1.out test3.out test4.out test5.out test6.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 index 787d76eaa..1eec9d705 100644 --- a/src/testdir/Make_dos.mak +++ b/src/testdir/Make_dos.mak @@ -53,6 +53,7 @@ SCRIPTS = test3.out test4.out test5.out test6.out test7.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 index e6942c623..1d0fd3646 100644 --- a/src/testdir/Make_ming.mak +++ b/src/testdir/Make_ming.mak @@ -75,6 +75,7 @@ SCRIPTS = test3.out test4.out test5.out test6.out test7.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 index 224f6951a..7b5775c89 100644 --- a/src/testdir/Make_os2.mak +++ b/src/testdir/Make_os2.mak @@ -55,6 +55,7 @@ SCRIPTS = test1.out test3.out test4.out test5.out test6.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 index a936d2722..f0742c74f 100644 --- 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 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/Makefile b/src/testdir/Makefile index dfcee8199..8e542470a 100644 --- a/src/testdir/Makefile +++ b/src/testdir/Makefile @@ -51,6 +51,7 @@ SCRIPTS = test1.out test2.out test3.out test4.out test5.out test6.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 index 000000000..5528ee6e3 --- /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 index 000000000..5d6a70872 --- /dev/null +++ b/src/testdir/test_set.ok @@ -0,0 +1 @@ +*.png,*.jpg diff --git a/src/version.c b/src/version.c index df9b506a0..6fc420cbd 100644 --- a/src/version.c +++ b/src/version.c @@ -741,6 +741,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 741, /**/ 740, /**/ -- 2.40.0