diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-09-13 22:37:34 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-09-13 22:37:34 +0200 |
commit | d1f76afaf963be706697279ab0570ffcb8a1f2fc (patch) | |
tree | 532a79e2835b838c2353f624e1ab1dba311c2f5d | |
parent | 4d170af0a9379da64d67dc3fa7cc7297956c6f52 (diff) | |
download | vim-git-d1f76afaf963be706697279ab0570ffcb8a1f2fc.tar.gz |
patch 8.2.1678: crash when using ":set" after ":ownsyntax"v8.2.1678
Problem: Crash when using ":set" after ":ownsyntax".
Solution: Make sure 'spelloptions' is not NULL. (closes #6950)
-rw-r--r-- | src/syntax.c | 2 | ||||
-rw-r--r-- | src/testdir/test_syntax.vim | 4 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 8 insertions, 0 deletions
diff --git a/src/syntax.c b/src/syntax.c index ccdb2030c..6025889b2 100644 --- a/src/syntax.c +++ b/src/syntax.c @@ -6316,9 +6316,11 @@ ex_ownsyntax(exarg_T *eap) #ifdef FEAT_SPELL // TODO: keep the spell checking as it was. curwin->w_p_spell = FALSE; // No spell checking + // make sure option values are "empty_option" instead of NULL clear_string_option(&curwin->w_s->b_p_spc); clear_string_option(&curwin->w_s->b_p_spf); clear_string_option(&curwin->w_s->b_p_spl); + clear_string_option(&curwin->w_s->b_p_spo); #endif clear_string_option(&curwin->w_s->b_syn_isk); } diff --git a/src/testdir/test_syntax.vim b/src/testdir/test_syntax.vim index cd0689273..8a021851f 100644 --- a/src/testdir/test_syntax.vim +++ b/src/testdir/test_syntax.vim @@ -428,7 +428,11 @@ func Test_ownsyntax() call setline(1, '#define FOO') syntax on set filetype=c + ownsyntax perl + " this should not crash + set + call assert_equal('perlComment', synIDattr(synID(line('.'), col('.'), 1), 'name')) call assert_equal('c', b:current_syntax) call assert_equal('perl', w:current_syntax) diff --git a/src/version.c b/src/version.c index 0d0ea4dd8..a59b82dd8 100644 --- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1678, +/**/ 1677, /**/ 1676, |