diff options
| author | Richard M. Stallman <rms@gnu.org> | 1992-06-23 21:48:27 +0000 |
|---|---|---|
| committer | Richard M. Stallman <rms@gnu.org> | 1992-06-23 21:48:27 +0000 |
| commit | d207b766c850f4adb0ed4994949b956b967e9314 (patch) | |
| tree | 3e305691fad99eadf5258efcf63b2ff08ea60a95 | |
| parent | fd7b67ea6e3414b7b2ae5e67efdd6f55587bceb2 (diff) | |
| download | emacs-d207b766c850f4adb0ed4994949b956b967e9314.tar.gz | |
*** empty log message ***
| -rw-r--r-- | lisp/files.el | 29 | ||||
| -rw-r--r-- | src/window.c | 20 |
2 files changed, 29 insertions, 20 deletions
diff --git a/lisp/files.el b/lisp/files.el index 2bc9e0a58d3..27c242b70da 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -171,11 +171,14 @@ nil means they are ignored; anything else means query. 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 @@ for current buffer." (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)))))))))) diff --git a/src/window.c b/src/window.c index 41171a3585e..ddb2661c71b 100644 --- a/src/window.c +++ b/src/window.c @@ -540,12 +540,13 @@ See also `set-window-buffer-dedicated'.") return decode_window (window)->dedicated; } -DEFUN ("set-window-buffer-dedicated", Fset_window_buffer_dedicated, - Sset_window_buffer_dedicated, 2, 2, 0, - "Make WINDOW display BUFFER and be dedicated to that buffer.\n\ -Then Emacs will not automatically change which buffer appears in WINDOW.\n\ -If BUFFER is nil, make WINDOW not be dedicated (but don't change which\n\ -buffer appears in it currently).") +DEFUN ("set-window-dedicated-p", Fset_window_dedicated_p, + Sset_window_dedicated_p, 2, 2, 0, + "Control whether WINDOW is dedicated to the buffer it displays.\n\ +If it is dedicated, Emacs will not automatically change\n\ +which buffer appears in it.\n\ +The second argument is the new value for the dedication flag;\n\ +non-nil means yes.") (window, arg) Lisp_Object window, arg; { @@ -554,10 +555,7 @@ buffer appears in it currently).") if (NILP (arg)) w->dedicated = Qnil; else - { - Fset_window_buffer (window, Fget_buffer_create (arg)); - w->dedicated = Qt; - } + w->dedicated = Qt; return w->dedicated; } @@ -2752,7 +2750,7 @@ If there is only one window, it is split regardless of this value."); defsubr (&Sset_window_point); defsubr (&Sset_window_start); defsubr (&Swindow_dedicated_p); - defsubr (&Sset_window_buffer_dedicated); + defsubr (&Sset_window_dedicated_p); defsubr (&Swindow_display_table); defsubr (&Sset_window_display_table); defsubr (&Snext_window); |
