changeset 1111:53fd0a213cff v7.0.237

updated for version 7.0-237
author vimboss
date Tue, 01 May 2007 17:05:03 +0000
parents b77f790d53f6
children 56695f1182f0
files runtime/doc/options.txt src/option.c src/version.c
diffstat 3 files changed, 16 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 7.0.  Last change: 2006 May 04
+*options.txt*	For Vim version 7.0.  Last change: 2007 May 01
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -528,7 +528,12 @@ This sets the 'dir' option to "c:\tmp". 
 ':' is removed.  Thus to include "\:" you have to specify "\\:".
 
 No other commands than "set" are supported, for security reasons (somebody
-might create a Trojan horse text file with modelines).
+might create a Trojan horse text file with modelines).  And not all options
+can be set.  For some options a flag is set, so that when it's used the
+|sandbox| is effective.  Still, there is always a small risc that a modeline
+causes trouble.  E.g., when some joker sets 'textwidth' to 5 all your lines
+are wrapped unexpectedly.  So disable modelines before editing untrusted text.
+The mail ftplugin does this, for example.
 
 Hint: If you would like to do something else than setting an option, you could
 define an autocommand that checks the file for a specific string.  For
@@ -4520,7 +4525,8 @@ A jump table for the options with a shor
 	languages, no matter what you set 'mkspellmem' to.
 
 				   *'modeline'* *'ml'* *'nomodeline'* *'noml'*
-'modeline' 'ml'		boolean	(Vim default: on, Vi default: off)
+'modeline' 'ml'		boolean	(Vim default: on (off for root),
+				 Vi default: off)
 			local to buffer
 						*'modelines'* *'mls'*
 'modelines' 'mls'	number	(default 5)
--- a/src/option.c
+++ b/src/option.c
@@ -3429,6 +3429,11 @@ set_option_default(opt_idx, opt_flags, c
 	    /* the cast to long is required for Manx C, long_i is needed for
 	     * MSVC */
 	    *(int *)varp = (int)(long)(long_i)options[opt_idx].def_val[dvi];
+#ifdef UNIX
+	    /* 'modeline' defaults to off for root */
+	    if (options[opt_idx].indir == PV_ML && getuid() == ROOT_UID)
+		*(int *)varp = FALSE;
+#endif
 	    /* May also set global value for local option. */
 	    if (both)
 		*(int *)get_varp_scope(&(options[opt_idx]), OPT_GLOBAL) =
--- a/src/version.c
+++ b/src/version.c
@@ -667,6 +667,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    237,
+/**/
     236,
 /**/
     235,