GNU bug report logs -
#8095
dir-locals-directory-cache confusion
Previous Next
Reported by: Glenn Morris <rgm <at> gnu.org>
Date: Tue, 22 Feb 2011 08:32:01 UTC
Severity: normal
Found in version 23.2.94
Fixed in version 24.1
Done: Glenn Morris <rgm <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Thu, 24 Feb 2011 03:58:24 -0500
with message-id <xpfwrdu7v3.fsf <at> fencepost.gnu.org>
and subject line Re: bug#8095: dir-locals-directory-cache confusion
has caused the GNU bug report #8095,
regarding dir-locals-directory-cache confusion
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
8095: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8095
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Package: emacs
Version: 23.2.94
There is some weirdness going on with caching of dir-locals files:
mkdir foo
cat <<EOF > foo/.dir-locals.el
((nil . ((sentence-end-double-space . t))))
EOF
emacs -q foo/.dir-locals.el
C-h v sentence-end-double-space
This variable is a directory local variable
from the file "/home/gm/tmp/foo/".
^^^^^^^^^^^^^^^^^^^^^^^
That's a directory, not a file. Then do:
M-: (setq dir-locals-directory-cache nil)
and repeat:
C-h v sentence-end-double-space
This variable is a directory local variable
from the file "/home/gm/tmp/foo/.dir-locals.el".
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
OK, now it's a directory.
Analysis: dir-locals-find-file is either going to return a file (if it
did not find a matching entry in the cache), or a directory (if it did
find an entry in the cache).
Further comment: This line in dir-locals-find-file
(equal (nth 2 dir-elt)
(nth 5 (file-attributes (car dir-elt))))
compares the mtime element from the cache with the current mtime of the
*directory*. The mtime element in the cache is set by
dir-locals-read-from-file and is the mtime of the *file*.
So in summary there is some confusion between directory and files that
messes up the caching. The whole thing should be consistent about
whether it wants to refer to directories or files.
[Message part 3 (message/rfc822, inline)]
Version: 24.1
I believe I fixed this mess in the trunk.
This bug report was last modified 14 years and 150 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.