mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
vim-patch:7.4.2174
Problem: Adding duplicate flags to 'whichwrap' leaves commas behind.
Solution: Also remove the commas. (Naruhiko Nishino)
c8ce615299
This commit is contained in:
parent
10c72cd365
commit
9d9d93aee3
@ -1728,12 +1728,24 @@ do_set (
|
|||||||
|
|
||||||
if (flags & P_FLAGLIST) {
|
if (flags & P_FLAGLIST) {
|
||||||
/* Remove flags that appear twice. */
|
/* Remove flags that appear twice. */
|
||||||
for (s = newval; *s; ++s)
|
for (s = newval; *s; s++) {
|
||||||
if ((!(flags & P_COMMA) || *s != ',')
|
// if options have P_FLAGLIST and P_ONECOMMA such as
|
||||||
&& vim_strchr(s + 1, *s) != NULL) {
|
// 'whichwrap'
|
||||||
STRMOVE(s, s + 1);
|
if (flags & P_ONECOMMA) {
|
||||||
--s;
|
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' */
|
if (save_arg != NULL) /* number for 'whichwrap' */
|
||||||
|
@ -10,6 +10,7 @@ source test_expr_utf8.vim
|
|||||||
source test_feedkeys.vim
|
source test_feedkeys.vim
|
||||||
source test_cmdline.vim
|
source test_cmdline.vim
|
||||||
source test_menu.vim
|
source test_menu.vim
|
||||||
|
source test_options.vim
|
||||||
source test_popup.vim
|
source test_popup.vim
|
||||||
source test_regexp_utf8.vim
|
source test_regexp_utf8.vim
|
||||||
source test_syn_attr.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,
|
// 2177,
|
||||||
// 2176 NA
|
// 2176 NA
|
||||||
// 2175,
|
// 2175,
|
||||||
// 2174,
|
2174,
|
||||||
// 2173,
|
// 2173,
|
||||||
// 2172,
|
// 2172,
|
||||||
// 2171,
|
// 2171,
|
||||||
|
Loading…
Reference in New Issue
Block a user