]> git.eshelyaron.com Git - emacs.git/commitdiff
(find-file-noselect-1): Limit the scope of the
authorLuc Teirlinck <teirllm@auburn.edu>
Thu, 20 May 2004 23:32:27 +0000 (23:32 +0000)
committerLuc Teirlinck <teirllm@auburn.edu>
Thu, 20 May 2004 23:32:27 +0000 (23:32 +0000)
`inhibit-read-only' binding.  Make sure that `inhibit-read-only'
is, by default, nil during the execution of
`find-file-not-found-functions' and `find-file-hook'.

lisp/ChangeLog
lisp/files.el

index a6271544405aa23a060dfcb72530910e20dd76ad..00e75ded5ecc1cd53ee011ab178f4be799b2f1b6 100644 (file)
@@ -1,3 +1,10 @@
+2004-05-20  Luc Teirlinck  <teirllm@auburn.edu>
+
+       * files.el (find-file-noselect-1): Limit the scope of the
+       `inhibit-read-only' binding.  Make sure that `inhibit-read-only'
+       is, by default, nil during the execution of
+       `find-file-not-found-functions' and `find-file-hook'.
+
 2004-05-20  Michael Mauger  <mmaug@yahoo.com>
 
        * facemenu.el (facemenu-color-name-equal): New function.
index 99cad16cf5bd817b99a62bc45d5970249208fa14..dd3a45e09e17e354db69d66685f71e26654e6e2e 100644 (file)
@@ -1357,41 +1357,42 @@ that are visiting the various files."
                                rawfile truename number))))))
 
 (defun find-file-noselect-1 (buf filename nowarn rawfile truename number)
-  (let ((inhibit-read-only t)
-       error)
+  (let (error)
     (with-current-buffer buf
       (kill-local-variable 'find-file-literally)
       ;; Needed in case we are re-visiting the file with a different
       ;; text representation.
       (kill-local-variable 'buffer-file-coding-system)
       (kill-local-variable 'cursor-type)
-      (erase-buffer)
-      (and (default-value 'enable-multibyte-characters)
-          (not rawfile)
-          (set-buffer-multibyte t))
-      (if rawfile
-         (condition-case ()
-             (insert-file-contents-literally filename t)
-           (file-error
-            (when (and (file-exists-p filename)
-                       (not (file-readable-p filename)))
-              (kill-buffer buf)
-              (signal 'file-error (list "File is not readable"
-                                        filename)))
-            ;; Unconditionally set error
-            (setq error t)))
-       (condition-case ()
-           (insert-file-contents filename t)
-         (file-error
-          (when (and (file-exists-p filename)
-                     (not (file-readable-p filename)))
-            (kill-buffer buf)
-            (signal 'file-error (list "File is not readable"
-                                      filename)))
-          ;; Run find-file-not-found-hooks until one returns non-nil.
-          (or (run-hook-with-args-until-success 'find-file-not-found-functions)
-              ;; If they fail too, set error.
+      (let ((inhibit-read-only t))
+       (erase-buffer)
+       (and (default-value 'enable-multibyte-characters)
+            (not rawfile)
+            (set-buffer-multibyte t))
+       (if rawfile
+           (condition-case ()
+               (insert-file-contents-literally filename t)
+             (file-error
+              (when (and (file-exists-p filename)
+                         (not (file-readable-p filename)))
+                (kill-buffer buf)
+                (signal 'file-error (list "File is not readable"
+                                          filename)))
+              ;; Unconditionally set error
               (setq error t)))))
+      (condition-case ()
+         (let ((inhibit-read-only t))
+           (insert-file-contents filename t))
+       (file-error
+        (when (and (file-exists-p filename)
+                   (not (file-readable-p filename)))
+          (kill-buffer buf)
+          (signal 'file-error (list "File is not readable"
+                                    filename)))
+        ;; Run find-file-not-found-hooks until one returns non-nil.
+        (or (run-hook-with-args-until-success 'find-file-not-found-functions)
+            ;; If they fail too, set error.
+            (setq error t))))
       ;; Record the file's truename, and maybe use that as visited name.
       (if (equal filename buffer-file-name)
          (setq buffer-file-truename truename)