summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/files.el6
1 files changed, 5 insertions, 1 deletions
diff --git a/lisp/files.el b/lisp/files.el
index b21e2736eb5..56d92806180 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -652,7 +652,11 @@ The buffer is not selected, just returned to the caller."
;; Run find-file-not-found-hooks until one returns non-nil.
(let ((hooks find-file-not-found-hooks))
(while (and hooks
- (not (funcall (car hooks))))
+ (not (and (funcall (car hooks))
+ ;; If a hook succeeded, clear error.
+ (progn (setq error nil)
+ ;; Also exit the loop.
+ t))))
(setq hooks (cdr hooks))))))
;; Find the file's truename, and maybe use that as visited name.
(setq buffer-file-truename (abbreviate-file-name truename))