mirror of
https://github.com/neovim/neovim.git
synced 2024-12-20 03:05:11 -07:00
commit
c91e9c1c7a
@ -1727,13 +1727,25 @@ do_set (
|
||||
}
|
||||
|
||||
if (flags & P_FLAGLIST) {
|
||||
/* Remove flags that appear twice. */
|
||||
for (s = newval; *s; ++s)
|
||||
if ((!(flags & P_COMMA) || *s != ',')
|
||||
&& vim_strchr(s + 1, *s) != NULL) {
|
||||
STRMOVE(s, s + 1);
|
||||
--s;
|
||||
// Remove flags that appear twice.
|
||||
for (s = newval; *s; s++) {
|
||||
// if options have P_FLAGLIST and P_ONECOMMA such as
|
||||
// 'whichwrap'
|
||||
if (flags & P_ONECOMMA) {
|
||||
if (*s != ',' && *(s + 1) == ','
|
||||
&& vim_strchr(s + 2, *s) != NULL) {
|
||||
// Remove the duplicated value and the next comma.
|
||||
STRMOVE(s, s + 2);
|
||||
s -= 2;
|
||||
}
|
||||
} else {
|
||||
if ((!(flags & P_COMMA) || *s != ',')
|
||||
&& vim_strchr(s + 1, *s) != NULL) {
|
||||
STRMOVE(s, s + 1);
|
||||
s--;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (save_arg != NULL) /* number for 'whichwrap' */
|
||||
|
@ -10,6 +10,7 @@ source test_expr_utf8.vim
|
||||
source test_feedkeys.vim
|
||||
source test_cmdline.vim
|
||||
source test_menu.vim
|
||||
source test_options.vim
|
||||
source test_popup.vim
|
||||
source test_regexp_utf8.vim
|
||||
source test_syn_attr.vim
|
||||
|
40
src/nvim/testdir/test_options.vim
Normal file
40
src/nvim/testdir/test_options.vim
Normal file
@ -0,0 +1,40 @@
|
||||
" Test for options
|
||||
|
||||
function! Test_whichwrap()
|
||||
set whichwrap=b,s
|
||||
call assert_equal('b,s', &whichwrap)
|
||||
|
||||
set whichwrap+=h,l
|
||||
call assert_equal('b,s,h,l', &whichwrap)
|
||||
|
||||
set whichwrap+=h,l
|
||||
call assert_equal('b,s,h,l', &whichwrap)
|
||||
|
||||
set whichwrap+=h,l
|
||||
call assert_equal('b,s,h,l', &whichwrap)
|
||||
|
||||
set whichwrap&
|
||||
endfunction
|
||||
|
||||
function! Test_options()
|
||||
let caught = 'ok'
|
||||
try
|
||||
options
|
||||
catch
|
||||
let caught = v:throwpoint . "\n" . v:exception
|
||||
endtry
|
||||
call assert_equal('ok', caught)
|
||||
|
||||
" close option-window
|
||||
close
|
||||
endfunction
|
||||
|
||||
function! Test_path_keep_commas()
|
||||
" Test that changing 'path' keeps two commas.
|
||||
set path=foo,,bar
|
||||
set path-=bar
|
||||
set path+=bar
|
||||
call assert_equal('foo,,bar', &path)
|
||||
|
||||
set path&
|
||||
endfunction
|
@ -268,7 +268,7 @@ static int included_patches[] = {
|
||||
// 2177,
|
||||
// 2176 NA
|
||||
// 2175,
|
||||
// 2174,
|
||||
2174,
|
||||
// 2173,
|
||||
// 2172,
|
||||
// 2171,
|
||||
|
Loading…
Reference in New Issue
Block a user