Skip to content

Commit

Permalink
patch 7.4.1017
Browse files Browse the repository at this point in the history
Problem:    When there is a backslash in an option ":set -=" doesn't work.
Solution:   Handle a backslash better. (Jacob Niehus)  Add a new test, merge
            in old test.
  • Loading branch information
brammool committed Jan 1, 2016
1 parent 8dfc5eb commit 8f79acd
Show file tree
Hide file tree
Showing 8 changed files with 40 additions and 18 deletions.
2 changes: 1 addition & 1 deletion src/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -1958,7 +1958,6 @@ test1 \
test_qf_title \
test_ruby \
test_search_mbyte \
test_set \
test_signs \
test_tagcase \
test_textobjects \
Expand All @@ -1980,6 +1979,7 @@ test1 \
test_assert \
test_cdo \
test_searchpos \
test_set \
test_sort \
test_undolevels \
test_viml \
Expand Down
12 changes: 9 additions & 3 deletions src/option.c
Original file line number Diff line number Diff line change
Expand Up @@ -4839,9 +4839,15 @@ do_set(arg, opt_flags)
|| s[i] == NUL))
break;
/* Count backslashes. Only a comma with an
* even number of backslashes before it is
* recognized as a separator */
if (s > origval && s[-1] == '\\')
* even number of backslashes or a single
* backslash preceded by a comma before it
* is recognized as a separator */
if ((s > origval + 1
&& s[-1] == '\\'
&& s[-2] != ',')
|| (s == origval + 1
&& s[-1] == '\\'))

++bs;
else
bs = 0;
Expand Down
1 change: 1 addition & 0 deletions src/testdir/test_alot.vim
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,6 @@

source test_lispwords.vim
source test_searchpos.vim
source test_set.vim
source test_sort.vim
source test_undolevels.vim
1 change: 0 additions & 1 deletion src/testdir/test_cdo.vim
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
" Tests for the :cdo, :cfdo, :ldo and :lfdo commands

lang mess C
if !has('quickfix')
finish
endif
Expand Down
12 changes: 0 additions & 12 deletions src/testdir/test_set.in

This file was deleted.

1 change: 0 additions & 1 deletion src/testdir/test_set.ok

This file was deleted.

27 changes: 27 additions & 0 deletions src/testdir/test_set.vim
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
" Tests for the :set command

function Test_set_backslash()
let isk_save = &isk

set isk=a,b,c
set isk+=d
call assert_equal('a,b,c,d', &isk)
set isk+=\\,e
call assert_equal('a,b,c,d,\,e', &isk)
set isk-=e
call assert_equal('a,b,c,d,\', &isk)
set isk-=\\
call assert_equal('a,b,c,d', &isk)

let &isk = isk_save
endfunction

function Test_set_add()
let wig_save = &wig

set wildignore=*.png,
set wildignore+=*.jpg
call assert_equal('*.png,*.jpg', &wig)

let &wig = wig_save
endfunction
2 changes: 2 additions & 0 deletions src/version.c
Original file line number Diff line number Diff line change
Expand Up @@ -741,6 +741,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1017,
/**/
1016,
/**/
Expand Down

0 comments on commit 8f79acd

Please sign in to comment.