diff options
author | Artur Malabarba <bruce.connor.am@gmail.com> | 2015-11-10 13:14:49 +0000 |
---|---|---|
committer | Artur Malabarba <bruce.connor.am@gmail.com> | 2015-11-10 13:14:49 +0000 |
commit | 77cebbc1e77edf23bc2c23a218b56d9d6ad68e74 (patch) | |
tree | 023d4981cc5047b9c744a55a2bb5116004a7755d /lisp/files.el | |
parent | 4d82aa3abdad1871b99f0a9e56fe54ec497bd290 (diff) | |
download | emacs-77cebbc1e77edf23bc2c23a218b56d9d6ad68e74.tar.gz |
* lisp/files.el (dir-locals-read-from-file): Better handle errors
Diffstat (limited to 'lisp/files.el')
-rw-r--r-- | lisp/files.el | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/lisp/files.el b/lisp/files.el index 58ed35730fe..efba15ea15f 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -3808,6 +3808,7 @@ is found. Returns the new class name." (class-name (intern dir-name)) (files (dir-locals--all-files file)) (read-circle nil) + (success nil) (variables)) (with-demoted-errors "Error reading dir-locals: %S" (dolist (file files) @@ -3818,13 +3819,19 @@ is found. Returns the new class name." (map-merge-with 'list (lambda (a b) (map-merge 'list a b)) variables (read (current-buffer)))) - (end-of-file nil))))) + (end-of-file nil)))) + (setq success t)) (dir-locals-set-class-variables class-name variables) (dir-locals-set-directory-class dir-name class-name - (seconds-to-time (apply #'max (mapcar (lambda (file) - (time-to-seconds (nth 5 (file-attributes file)))) - files)))) + (seconds-to-time + (if success + (apply #'max (mapcar (lambda (file) + (time-to-seconds (nth 5 (file-attributes file)))) + files)) + ;; If there was a problem, use the values we could get but + ;; don't let the cache prevent future reads. + 0))) class-name)) (defcustom enable-remote-dir-locals nil |