From: Ivan Shmakov Date: Sat, 17 Jan 2015 19:02:00 +0000 (+0000) Subject: Fix dir-locals handling for non-file buffers. X-Git-Tag: emacs-25.0.90~2597^2~7 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=e000ff30b4354064ca7f9ed07e58903d7c44033f;p=emacs.git Fix dir-locals handling for non-file buffers. * lisp/files.el (dir-locals-collect-variables): Use default-directory in place of the file name while working on non-file buffers, just like hack-dir-local-variables already does. Fixes: debbugs:19140 --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index f5ad8de3f8c..55c7a366deb 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -6,6 +6,10 @@ * files.el (find-file-other-window, find-file-other-frame): Use mapc instead of mapcar. (Bug#18175) + * files.el (dir-locals-collect-variables): Use default-directory + in place of the file name while working on non-file buffers, just + like hack-dir-local-variables already does. (Bug#19140) + 2015-01-17 Stefan Monnier * emacs-lisp/eieio-core.el (eieio--class-constructor): Rename from diff --git a/lisp/files.el b/lisp/files.el index e6d80a9a4dc..e9632edacef 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -3602,7 +3602,9 @@ Returns the new list." "Collect entries from CLASS-VARIABLES into VARIABLES. ROOT is the root directory of the project. Return the new variables list." - (let* ((file-name (buffer-file-name)) + (let* ((file-name (or (buffer-file-name) + ;; Handle non-file buffers, too. + (expand-file-name default-directory))) (sub-file-name (if file-name ;; FIXME: Why not use file-relative-name? (substring file-name (length root)))))