]> git.eshelyaron.com Git - emacs.git/commitdiff
More dir-locals fixes for files.el.
authorGlenn Morris <rgm@gnu.org>
Thu, 24 Feb 2011 08:02:45 +0000 (00:02 -0800)
committerGlenn Morris <rgm@gnu.org>
Thu, 24 Feb 2011 08:02:45 +0000 (00:02 -0800)
* 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.

lisp/ChangeLog
lisp/files.el

index d77e6b7ccd8a315fd653116d9ba4b8869df05131..cb0708aa0fa3d1f181d6c2ddb913f7633e30481a 100644 (file)
@@ -1,5 +1,8 @@
 2011-02-24  Glenn Morris  <rgm@gnu.org>
 
+       * 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.
index e4cc782b1d151c14cb44e7ec18b2e484faf036cb..5890bf9b8c9a12159bb91f7428f44321e4d4438c 100644 (file)
@@ -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))))