summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--runtime/doc/options.txt12
-rw-r--r--src/option.c5
-rw-r--r--src/version.c2
3 files changed, 16 insertions, 3 deletions
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index eadd215c04..2ff749b4ac 100644
--- 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". Only a single backslash before the
':' 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 short description can be found at |Q_op|.
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)
diff --git a/src/option.c b/src/option.c
index 87cf5f6d28..d7bd92894d 100644
--- a/src/option.c
+++ b/src/option.c
@@ -3429,6 +3429,11 @@ set_option_default(opt_idx, opt_flags, compatible)
/* 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) =
diff --git a/src/version.c b/src/version.c
index 4152b506bb..ee864a8e7c 100644
--- 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,