changeset 22258:a6af570dad75 v8.2.1678

patch 8.2.1678: crash when using ":set" after ":ownsyntax" Commit: https://github.com/vim/vim/commit/d1f76afaf963be706697279ab0570ffcb8a1f2fc Author: Bram Moolenaar <Bram@vim.org> Date: Sun Sep 13 22:37:34 2020 +0200 patch 8.2.1678: crash when using ":set" after ":ownsyntax" Problem: Crash when using ":set" after ":ownsyntax". Solution: Make sure 'spelloptions' is not NULL. (closes https://github.com/vim/vim/issues/6950)
author Bram Moolenaar <Bram@vim.org>
date Sun, 13 Sep 2020 22:45:03 +0200
parents 595568bd6795
children 70b887aaedf1
files src/syntax.c src/testdir/test_syntax.vim src/version.c
diffstat 3 files changed, 8 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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);
     }
--- 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)
--- 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,