changeset 10420:7a631c6b0a20 v8.0.0104

commit https://github.com/vim/vim/commit/f422bcc7f9615fe91fa69b059cfe4785093d3d4a Author: Bram Moolenaar <Bram@vim.org> Date: Sat Nov 26 17:45:53 2016 +0100 patch 8.0.0104 Problem: Value of 'thesaurus' option not checked properly. Solution: Add P_NDNAME flag. (Daisuke Suzuki)
author Christian Brabandt <cb@256bit.org>
date Sat, 26 Nov 2016 18:00:04 +0100
parents 922418f4ca6c
children 474ff13f3ec3
files src/option.c src/testdir/test_options.vim src/version.c
diffstat 3 files changed, 21 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/src/option.c
+++ b/src/option.c
@@ -2660,7 +2660,7 @@ static struct vimoption options[] =
     {"textwidth",   "tw",   P_NUM|P_VI_DEF|P_VIM|P_RBUF,
 			    (char_u *)&p_tw, PV_TW,
 			    {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT},
-    {"thesaurus",   "tsr",  P_STRING|P_EXPAND|P_VI_DEF|P_ONECOMMA|P_NODUP,
+    {"thesaurus",   "tsr",  P_STRING|P_EXPAND|P_VI_DEF|P_ONECOMMA|P_NODUP|P_NDNAME,
 #ifdef FEAT_INS_EXPAND
 			    (char_u *)&p_tsr, PV_TSR,
 #else
--- a/src/testdir/test_options.vim
+++ b/src/testdir/test_options.vim
@@ -107,17 +107,25 @@ func Test_keymap_valid()
   call assert_fails(":set kmp=trunc\x00name", "trunc")
 endfunc
 
-func Test_dictionary()
+func Check_dir_option(name)
   " Check that it's possible to set the option.
-  set dictionary=/usr/share/dict/words
-  call assert_equal('/usr/share/dict/words', &dictionary)
-  set dictionary=/usr/share/dict/words,/and/there
-  call assert_equal('/usr/share/dict/words,/and/there', &dictionary)
-  set dictionary=/usr/share/dict\ words
-  call assert_equal('/usr/share/dict words', &dictionary)
+  exe 'set ' . a:name . '=/usr/share/dict/words'
+  call assert_equal('/usr/share/dict/words', eval('&' . a:name))
+  exe 'set ' . a:name . '=/usr/share/dict/words,/and/there'
+  call assert_equal('/usr/share/dict/words,/and/there', eval('&' . a:name))
+  exe 'set ' . a:name . '=/usr/share/dict\ words'
+  call assert_equal('/usr/share/dict words', eval('&' . a:name))
 
   " Check rejecting weird characters.
-  call assert_fails("set dictionary=/not&there", "E474:")
-  call assert_fails("set dictionary=/not>there", "E474:")
-  call assert_fails("set dictionary=/not.*there", "E474:")
+  call assert_fails("set " . a:name . "=/not&there", "E474:")
+  call assert_fails("set " . a:name . "=/not>there", "E474:")
+  call assert_fails("set " . a:name . "=/not.*there", "E474:")
 endfunc
+
+func Test_dictionary()
+  call Check_dir_option('dictionary')
+endfunc
+
+func Test_thesaurus()
+  call Check_dir_option('thesaurus')
+endfunc
--- a/src/version.c
+++ b/src/version.c
@@ -765,6 +765,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    104,
+/**/
     103,
 /**/
     102,