From: Glenn Morris Date: Thu, 24 Feb 2011 08:02:45 +0000 (-0800) Subject: More dir-locals fixes for files.el. X-Git-Tag: emacs-pretest-24.0.90~104^2~275^2~736 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=07915ed93c1a21776f7371e615b43d0d79eaebfd;p=emacs.git More dir-locals fixes for files.el. * lisp/files.el (hack-local-variables-confirm, hack-local-variables-filter): Doc fix (say _which_ directory `dir-name' is). (hack-dir-local-variables): Fix setting of `dir-name'. Previous value seems clearly wrong. Eg put a risky variable in a dir-locals file, visit a file in a subdirectory, see which directory it says the risky variables come from. It should be the one with the associated directory variables, not the one containing the visited file. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index d77e6b7ccd8..cb0708aa0fa 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2011-02-24 Glenn Morris + * 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. diff --git a/lisp/files.el b/lisp/files.el index e4cc782b1d1..5890bf9b8c9 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -2919,8 +2919,8 @@ variable to set.") ALL-VARS is the list of all variables to be set up. UNSAFE-VARS is the list of those that aren't marked as safe or risky. RISKY-VARS is the list of those that are marked as risky. -DIR-NAME is a directory name if these settings come from -directory-local variables, or nil otherwise." +If these settings come from directory-local variables, then +DIR-NAME is the name of the associated directory. Otherwise it is nil." (if noninteractive nil (save-window-excursion @@ -3062,8 +3062,8 @@ VARIABLES is the alist of variable-value settings. This alist is `enable-local-eval', `enable-local-variables', and (if necessary) user interaction. The results are added to `file-local-variables-alist', without applying them. -DIR-NAME is a directory name if these settings come from - directory-local variables, or nil otherwise." +If these settings come from directory-local variables, then +DIR-NAME is the name of the associated directory. Otherwise it is nil." ;; Find those variables that we may want to save to ;; `safe-local-variable-values'. (let (all-vars risky-vars unsafe-vars) @@ -3547,11 +3547,8 @@ and `file-local-variables-alist', without applying them." (dir-name nil)) (cond ((stringp variables-file) - ;; FIXME seems like the wrong dir-name. - (setq dir-name (if (buffer-file-name) - (file-name-directory (buffer-file-name)) - default-directory)) - (setq class (dir-locals-read-from-file variables-file))) + (setq dir-name (file-name-directory variables-file) + class (dir-locals-read-from-file variables-file))) ((consp variables-file) (setq dir-name (nth 0 variables-file)) (setq class (nth 1 variables-file))))