mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
vim-patch:8.2.4943: changing 'switchbuf' may have no effect (#18545)
Problem: Changing 'switchbuf' may have no effect.
Solution: Handle 'switchbuf' in didset_string_options(). (Sean Dewar,
closes vim/vim#10406)
39c46b4378
Guess it doesn't hurt to cherry-pick didset_string_options from v8.1.2045
(but in option.c, for now).
This commit is contained in:
parent
af9c1e572d
commit
aaeffba684
@ -1963,13 +1963,10 @@ static char_u *option_expand(int opt_idx, char_u *val)
|
|||||||
return NameBuff;
|
return NameBuff;
|
||||||
}
|
}
|
||||||
|
|
||||||
// After setting various option values: recompute variables that depend on
|
/// After setting various option values: recompute variables that depend on
|
||||||
// option values.
|
/// option values.
|
||||||
static void didset_options(void)
|
static void didset_string_options(void)
|
||||||
{
|
{
|
||||||
// initialize the table for 'iskeyword' et.al.
|
|
||||||
(void)init_chartab();
|
|
||||||
|
|
||||||
(void)opt_strings_flags(p_cmp, p_cmp_values, &cmp_flags, true);
|
(void)opt_strings_flags(p_cmp, p_cmp_values, &cmp_flags, true);
|
||||||
(void)opt_strings_flags(p_bkc, p_bkc_values, &bkc_flags, true);
|
(void)opt_strings_flags(p_bkc, p_bkc_values, &bkc_flags, true);
|
||||||
(void)opt_strings_flags(p_bo, p_bo_values, &bo_flags, true);
|
(void)opt_strings_flags(p_bo, p_bo_values, &bo_flags, true);
|
||||||
@ -1981,8 +1978,20 @@ static void didset_options(void)
|
|||||||
(void)opt_strings_flags(p_tc, p_tc_values, &tc_flags, false);
|
(void)opt_strings_flags(p_tc, p_tc_values, &tc_flags, false);
|
||||||
(void)opt_strings_flags(p_tpf, p_tpf_values, &tpf_flags, true);
|
(void)opt_strings_flags(p_tpf, p_tpf_values, &tpf_flags, true);
|
||||||
(void)opt_strings_flags(p_ve, p_ve_values, &ve_flags, true);
|
(void)opt_strings_flags(p_ve, p_ve_values, &ve_flags, true);
|
||||||
|
(void)opt_strings_flags(p_swb, p_swb_values, &swb_flags, true);
|
||||||
(void)opt_strings_flags(p_wop, p_wop_values, &wop_flags, true);
|
(void)opt_strings_flags(p_wop, p_wop_values, &wop_flags, true);
|
||||||
(void)opt_strings_flags(p_jop, p_jop_values, &jop_flags, true);
|
(void)opt_strings_flags(p_jop, p_jop_values, &jop_flags, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// After setting various option values: recompute variables that depend on
|
||||||
|
/// option values.
|
||||||
|
static void didset_options(void)
|
||||||
|
{
|
||||||
|
// initialize the table for 'iskeyword' et.al.
|
||||||
|
(void)init_chartab();
|
||||||
|
|
||||||
|
didset_string_options();
|
||||||
|
|
||||||
(void)spell_check_msm();
|
(void)spell_check_msm();
|
||||||
(void)spell_check_sps();
|
(void)spell_check_sps();
|
||||||
(void)compile_cap_prog(curwin->w_s);
|
(void)compile_cap_prog(curwin->w_s);
|
||||||
|
@ -832,4 +832,17 @@ func Test_opt_cdhome()
|
|||||||
set cdhome&
|
set cdhome&
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_switchbuf_reset()
|
||||||
|
set switchbuf=useopen
|
||||||
|
sblast
|
||||||
|
call assert_equal(1, winnr('$'))
|
||||||
|
set all&
|
||||||
|
" Nvim has a different default for 'switchbuf'
|
||||||
|
" call assert_equal('', &switchbuf)
|
||||||
|
call assert_equal('uselast', &switchbuf)
|
||||||
|
sblast
|
||||||
|
call assert_equal(2, winnr('$'))
|
||||||
|
only!
|
||||||
|
endfunc
|
||||||
|
|
||||||
" vim: shiftwidth=2 sts=2 expandtab
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
Loading…
Reference in New Issue
Block a user