X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/3fdb4c50a9ffd90cad4819b5405af03f805882aa..59367f560857e95efebc6c4662701af711e29b23:/lispref/variables.texi diff --git a/lispref/variables.texi b/lispref/variables.texi index dbb4f73024..48003e0977 100644 --- a/lispref/variables.texi +++ b/lispref/variables.texi @@ -1733,20 +1733,25 @@ The argument @var{force} usually comes from the argument @var{find-file} 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 @@ -1754,6 +1759,10 @@ set by a file's local variables list. Any value specified 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.