]> git.eshelyaron.com Git - emacs.git/commitdiff
* files.el (hack-local-variables-confirm): Don't prompt for ! if
authorChong Yidong <cyd@stupidchicken.com>
Fri, 10 Mar 2006 23:22:30 +0000 (23:22 +0000)
committerChong Yidong <cyd@stupidchicken.com>
Fri, 10 Mar 2006 23:22:30 +0000 (23:22 +0000)
enable-local-variables is set to always query, or there is no
savable variable.

lisp/ChangeLog
lisp/files.el

index 7892a9b6d22d03171f14b2cf340e8fe1234bb0aa..96aae2ec1c4a97935407acc4a67fd79013a420d3 100644 (file)
@@ -1,3 +1,9 @@
+2006-03-10  Chong Yidong  <cyd@stupidchicken.com>
+
+       * files.el (hack-local-variables-confirm): Don't prompt for ! if
+       enable-local-variables is set to always query, or there is no
+       savable variable.
+
 2006-03-10  Bill Wohler  <wohler@newt.com>
 
        * image.el (image-load-path-for-library): Merge at least three
index fc6267fd002f43f9cb46de8cbb073649fa09fd8f..91a434dd33f62819b4ced1d996cce4b807805683 100644 (file)
@@ -2349,6 +2349,7 @@ asking you for confirmation."
     (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 @@ asking you for confirmation."
              (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 @@ n  -- to ignore the local variables list.
            (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 @@ n  -- to ignore the local variables list.
                      (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)