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: Wed, 15 Feb 2006 01:21:32 +0000

Index: emacs/lisp/files.el
diff -u emacs/lisp/files.el:1.809 emacs/lisp/files.el:1.810
--- emacs/lisp/files.el:1.809   Tue Feb 14 19:54:25 2006
+++ emacs/lisp/files.el Wed Feb 15 01:21:31 2006
@@ -2227,56 +2227,66 @@
                  (concat "buffer " (buffer-name))))
          char)
       (save-window-excursion
-       (with-output-to-temp-buffer "*Local Variables*"
+       (let ((buf (get-buffer-create "*Local Variables*"))
+             (prompt))
+         (pop-to-buffer buf)
+         (set (make-local-variable 'cursor-type) nil)
+         (erase-buffer)
          (if unsafe-vars
-             (progn (princ "The local variables list in ")
-                    (princ name)
-                    (princ "\ncontains values that may not be safe (*)")
-                    (if risky-vars
-                        (princ ", and variables that are risky (**).")
-                      (princ ".")))
+             (insert "The local variables list in " name
+                     "\ncontains values that may not be safe (*)"
+                     (if risky-vars
+                         ", and variables that are risky (**)."
+                       "."))
            (if risky-vars
-               (progn (princ "The local variables list in ")
-                      (princ name)
-                      (princ "\ncontains variables that are risky (**)."))
-             (princ "A local variables list is specified in ")
-             (princ name)
-             (princ ".")))
-         (princ "\n\nDo you want to apply it?  You can type
+               (insert "The local variables list in " name
+                       "\ncontains variables that are risky (**).")
+             (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.
 !  -- to apply the local variables list, and mark these values (*) as
       safe (in the future, they can be set automatically.)\n\n")
          (dolist (elt vars)
            (cond ((member elt unsafe-vars)
-                  (princ "  * "))
+                  (insert "  * "))
                  ((member elt risky-vars)
-                  (princ " ** "))
+                  (insert " ** "))
                  (t
-                  (princ "    ")))
-           (princ (car elt))
-           (princ " : ")
-           (princ (cdr elt))
-           (princ "\n")))
-       (message "Please type y, n, or !: ")
-       (let ((inhibit-quit t)
-             (cursor-in-echo-area t))
-         (while (or (not (numberp (setq char (read-event))))
-                    (not (memq (downcase char)
-                               '(?! ?y ?n ?\s ?\C-g))))
-           (message "Please type y, n, or !: "))
-         (if (= char ?\C-g)
-             (setq quit-flag nil)))
-       (setq char (downcase char))
-       (when (and (= char ?!) unsafe-vars)
-         (dolist (elt unsafe-vars)
-           (push elt safe-local-variable-values))
-         (customize-save-variable
-          'safe-local-variable-values
-          safe-local-variable-values))
-       (or (= char ?!)
-           (= char ?\s)
-           (= char ?y))))))
+                  (insert "    ")))
+           (princ (car elt) buf)
+           (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: "))
+         (let ((inhibit-quit t)
+               (cursor-in-echo-area t)
+               done)
+           (while (not done)
+             (message prompt)
+             (setq char (read-event))
+             (if (numberp char)
+                 (if (eq char ?\C-v)
+                     (condition-case nil
+                         (scroll-up)
+                       (error (goto-char (point-min))))
+                   (setq done (memq (downcase char)
+                                    '(?! ?y ?n ?\s ?\C-g))))))
+           (if (= char ?\C-g)
+               (setq quit-flag nil)))
+         (setq char (downcase char))
+         (when (and (= char ?!) unsafe-vars)
+           (dolist (elt unsafe-vars)
+             (add-to-list 'safe-local-variable-values elt))
+           (customize-save-variable
+            'safe-local-variable-values
+            safe-local-variable-values))
+         (or (= char ?!)
+             (= char ?\s)
+             (= char ?y)))))))
 
 (defun hack-local-variables-prop-line (&optional mode-only)
   "Return local variables specified in the -*- line.




reply via email to

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