Mercurial > emacs
diff lisp/files.el @ 722:0a2391511b46
*** empty log message ***
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Tue, 23 Jun 1992 21:48:27 +0000 |
parents | c7d478752305 |
children | ea0823fe7df5 |
line wrap: on
line diff
--- a/lisp/files.el Tue Jun 23 20:44:54 1992 +0000 +++ b/lisp/files.el Tue Jun 23 21:48:27 1992 +0000 @@ -171,11 +171,14 @@ The command \\[normal-mode] always obeys local-variables lists and ignores this variable.") -(defconst ignore-local-eval nil - "*Non-nil means ignore the \"variable\" `eval' in a file's local variables. -This applies when the local-variables list is scanned automatically -after you find a file. If you explicitly request such a scan with -\\[normal-mode], there is no query, regardless of this variable.") +(defconst enable-local-eval nil + "*Control processing of the \"variable\" `eval' in a file's local variables. +The value can be t, nil or something else. +A value of t means obey `eval' variables; +nil means ignore them; anything else means query. + +The command \\[normal-mode] always obeys local-variables lists +and ignores this variable.") ;; Avoid losing in versions where CLASH_DETECTION is disabled. (or (fboundp 'lock-buffer) @@ -644,10 +647,18 @@ (funcall (intern (concat (downcase (symbol-name val)) "-mode")))) ((eq var 'eval) - (if (or ignore-local-eval - (string= (user-login-name) "root")) - (message "Ignoring `eval:' in file's local variables") - (save-excursion (eval val)))) + (if (and (not (string= (user-login-name) "root")) + (or (eq enable-local-eval t) + (and enable-local-eval + (save-window-excursion + (switch-to-buffer (current-buffer)) + (save-excursion + (beginning-of-line) + (set-window-start (selected-window) (point))) + (y-or-n-p (format "Process `eval' local variable in file %s? " + (file-name-nondirectory buffer-file-name))))))) + (save-excursion (eval val)) + (message "Ignoring `eval:' in file's local variables"))) (t (make-local-variable var) (set var val))))))))))