given to @code{normal-mode}.
@end defun
- If a file local variable list could specify the a function that will
+ If a file local variable list could specify a function that will
be called later, or an expression that will be executed later, simply
visiting a file could take over your Emacs. To prevent this, Emacs
takes care not to allow local variable lists to set such variables.
- For one thing, any variable whose name ends in @samp{-function},
-@samp{-functions}, @samp{-hook}, @samp{-hooks}, @samp{-form},
-@samp{-forms}, @samp{-program}, @samp{-command} or @samp{-predicate}
-cannot be set in a local variable list. In general, you should use such
-a name whenever it is appropriate for the variable's meaning.
+ For one thing, any variable whose name ends in @samp{-command},
+@samp{-frame-alist}, @samp{-function}, @samp{-functions},
+@samp{-hook}, @samp{-hooks}, @samp{-form}, @samp{-forms}, @samp{-map},
+@samp{-map-alist}, @samp{-mode-alist}, @samp{-program}, or
+@samp{-predicate} cannot be set in a local variable list. In general,
+you should use such a name whenever it is appropriate for the
+variable's meaning. The variables @samp{font-lock-keywords},
+@samp{font-lock-keywords-[0-9]}, and
+@samp{font-lock-syntactic-keywords} cannot be set in a local variable
+list, either.
In addition, any variable whose name has a non-@code{nil}
-@code{risky-local-variable} property is also ignored. So are
-all variables listed in @code{ignored-local-variables}:
+@code{risky-local-variable} property is also ignored. So are all
+variables listed in @code{ignored-local-variables}:
@defvar ignored-local-variables
This variable holds a list of variables that should not be
for one of these variables is ignored.
@end defvar
+@defun risky-local-variable-p sym
+Returns non-nil if @var{sym} is risky for any of the reasons stated above.
+@end defun
+
The @samp{Eval:} ``variable'' is also a potential loophole, so Emacs
normally asks for confirmation before handling it.