emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/files.el


From: Chong Yidong
Subject: [Emacs-diffs] Changes to emacs/lisp/files.el
Date: Fri, 10 Mar 2006 23:22:31 +0000

Index: emacs/lisp/files.el
diff -u emacs/lisp/files.el:1.816 emacs/lisp/files.el:1.817
--- emacs/lisp/files.el:1.816   Wed Mar  8 02:24:47 2006
+++ emacs/lisp/files.el Fri Mar 10 23:22:30 2006
@@ -2349,6 +2349,7 @@
     (let ((name (if buffer-file-name
                    (file-name-nondirectory buffer-file-name)
                  (concat "buffer " (buffer-name))))
+         (offer-save (and (eq enable-local-variables t) unsafe-vars))
          prompt char)
       (save-window-excursion
        (let ((buf (get-buffer-create "*Local Variables*")))
@@ -2367,9 +2368,12 @@
              (insert "A local variables list is specified in " name ".")))
          (insert "\n\nDo you want to apply it?  You can type
 y  -- to apply the local variables list.
-n  -- to ignore the local variables list.
+n  -- to ignore the local variables list.")
+         (if offer-save
+             (insert "
 !  -- to apply the local variables list, and mark these values (*) as
       safe (in the future, they can be set automatically.)\n\n")
+           (insert "\n\n"))
          (dolist (elt vars)
            (cond ((member elt unsafe-vars)
                   (insert "  * "))
@@ -2381,12 +2385,17 @@
            (insert " : ")
            (princ (cdr elt) buf)
            (insert "\n"))
-         (if (< (line-number-at-pos) (window-body-height))
-             (setq prompt "Please type y, n, or !: ")
-           (goto-char (point-min))
-           (setq prompt "Please type y, n, or !, or C-v to scroll: "))
+         (setq prompt
+               (format "Please type %s%s: "
+                       (if offer-save "y, n, or !" "y or n")
+                       (if (< (line-number-at-pos) (window-body-height))
+                           ""
+                         ", or C-v to scroll")))
+         (goto-char (point-min))
          (let ((inhibit-quit t)
                (cursor-in-echo-area t)
+               (exit-chars
+                (if offer-save '(?! ?y ?n ?\s ?\C-g) '(?y ?n ?\s ?\C-g)))
                done)
            (while (not done)
              (message prompt)
@@ -2396,21 +2405,21 @@
                      (condition-case nil
                          (scroll-up)
                        (error (goto-char (point-min))))
-                   (setq done (memq (downcase char)
-                                    '(?! ?y ?n ?\s ?\C-g))))))
+                   (setq done (memq (downcase char) exit-chars)))))
            (if (= char ?\C-g)
                (setq quit-flag nil)))
          (setq char (downcase char))
-         (when (and (= char ?!) unsafe-vars)
+         (when (and offer-save (= char ?!) unsafe-vars)
            (dolist (elt unsafe-vars)
              (add-to-list 'safe-local-variable-values elt))
            ;; When this is called from desktop-restore-file-buffer,
            ;; coding-system-for-read may be non-nil.  Reset it before
            ;; writing to .emacs.
-           (let ((coding-system-for-read nil))
-             (customize-save-variable
-              'safe-local-variable-values
-              safe-local-variable-values)))
+           (if (or custom-file user-init-file)
+               (let ((coding-system-for-read nil))
+                 (customize-save-variable
+                  'safe-local-variable-values
+                  safe-local-variable-values))))
          (kill-buffer buf)
          (or (= char ?!)
              (= char ?\s)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]