From 303f9ae0146c9bc42985e98a07b86be0cb1c6eca Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Thu, 24 Feb 2011 00:26:25 -0800 Subject: [PATCH] Fix for another bit of bug#8095, re dir-locals. * lisp/help-fns.el (describe-variable): Return consistent results when a dir-local from a file came from the cache or did not. If a dir-local has no associated file, say it came from a "directory". --- lisp/ChangeLog | 6 +++++- lisp/help-fns.el | 20 +++++++++++++------- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index cb0708aa0f..05bddd0a7d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,11 +1,15 @@ 2011-02-24 Glenn Morris + * help-fns.el (describe-variable): Return consistent results when a + dir-local from a file came from the cache or did not. (Bug#8095) + If a dir-local has no associated file, say it came from a "directory". + * files.el (hack-dir-local-variables): Fix setting of `dir-name'. (hack-local-variables-confirm, hack-local-variables-filter): Doc fix. * files.el (dir-locals-find-file): Doc fix. Fix the check for cache elements that have no associated file, - and the mtime check for those that do. + and the mtime check for those that do. (Bug#8095) * dired-x.el (dired-hack-local-variables): Handle interrupts during hacking local variables. (Bug#5216) diff --git a/lisp/help-fns.el b/lisp/help-fns.el index 1cd5526fcf..38e331dc99 100644 --- a/lisp/help-fns.el +++ b/lisp/help-fns.el @@ -748,15 +748,21 @@ it is displayed along with the global value." (setq extra-line t) (if (member (cons variable val) dir-local-variables-alist) (let ((file (and (buffer-file-name) - (not (file-remote-p (buffer-file-name))) - (dir-locals-find-file (buffer-file-name))))) + (not (file-remote-p (buffer-file-name))) + (dir-locals-find-file + (buffer-file-name)))) + (type "file")) (princ " This variable is a directory local variable") (when file - (princ (concat "\n from the file \"" - (if (consp file) - (car file) - file) - "\""))) + (if (consp file) ; result from cache + ;; If the cache element has an mtime, we + ;; assume it came from a file. + (if (nth 2 file) + (setq file (expand-file-name + dir-locals-file (car file))) + ;; Otherwise, assume it was set directly. + (setq type "directory"))) + (princ (format "\n from the %s \"%s\"" type file))) (princ ".\n")) (princ " This variable is a file local variable.\n"))) -- 2.20.1