>>>>> Katsumi Yamaoka writes: >>>>> On Tue, 30 Dec 2014 19:45:57 +0000, Ivan Shmakov wrote: […] >> * lisp/files.el (dir-locals-collect-variables): Use >> default-directory in place of the file name while working on >> non-file buffers (as hack-dir-local-variables already does.) > After this change, I got to get unknown errors[1] when building > Ma Gnus. To reproduce the same result, try the following in the > Emacs source tree: > % cd lisp/gnus > % emacs -batch -Q --eval FORM > where FORM is: > '(with-temp-buffer (let ((default-directory (expand-file-name "."))) > (insert-file-contents "./auth-source.el") (hack-local-variables)))' > And you will see > (args-out-of-range "/DIR/emacs/lisp/gnus" 21 nil) > or something similar (where 21 is 1+ the number of letters of the dir > name). > The FORM above is what `custom-make-dependencies' does. ACK, thanks. Indeed, this change assumes that the result for (expand-file-name default-directory) ends with a ‘/’, yet that’s only the case when default-directory itself ends with a ‘/’, which I believe it should; consider, e. g.: (defun cd-absolute (dir) "Change current directory to given absolute file name DIR." ;; Put the name into directory syntax now, ;; because otherwise expand-file-name may give some bad results. (setq dir (file-name-as-directory dir)) …) The issue at hand could be solved by using the first of the patches MIMEd. However, I believe that such a change may easily mask bugs in the other parts of the code, so the proper solution would probably be a fix to custom-make-dependencies, as per the second patch MIMEd. Could you please check if both indeed resolve the issue at hand? TIA. […] -- FSF associate member #7257 http://boycottsystemd.org/ … 3013 B6A0 230E 334A