* lisp/files.el (dir-locals-read-from-dir): Reduce scope of
`read-circle' let-binding to go around the `read' call only.
Otherwise it can interfere with loading of files which use the
circular read syntax (e.g., executing the setf expression in
`dir-locals-set-class-variables' may require loading gv.elc).
Return the new class name, which is a symbol named DIR."
(let* ((class-name (intern dir))
(files (dir-locals--all-files dir))
- (read-circle nil)
;; If there was a problem, use the values we could get but
;; don't let the cache prevent future reads.
(latest 0) (success 0)
(insert-file-contents file)
(let ((newvars
(condition-case-unless-debug nil
- (read (current-buffer))
+ (let ((read-circle nil))
+ (read (current-buffer)))
(end-of-file nil))))
(setq variables
;; Try and avoid loading `map' since that also loads cl-lib