]> git.eshelyaron.com Git - emacs.git/commitdiff
(dir-locals-find-file) [ms-dos]: Run dir-locals-file through
authorEli Zaretskii <eliz@gnu.org>
Fri, 26 Dec 2008 15:01:10 +0000 (15:01 +0000)
committerEli Zaretskii <eliz@gnu.org>
Fri, 26 Dec 2008 15:01:10 +0000 (15:01 +0000)
dosified-file-name.  Compare files case-insensitively on systems whose
filesystems are case-insensitive.

lisp/files.el

index dc34ba660168c9594c92b35a43a645a77e60bbbd..1886114e485506f15c66eb89c596fa20dbfd2159 100644 (file)
@@ -3275,14 +3275,20 @@ If the file is already registered, a cons from
 `dir-locals-directory-alist' is returned.
 Otherwise this returns nil."
   (setq file (expand-file-name file))
-  (let ((locals-file (locate-dominating-file file dir-locals-file))
-       (dir-elt nil))
+  (let* ((dir-locals-file-name
+         (if (eq system-type 'ms-dos)
+             (dosified-file-name dir-locals-file)
+           dir-locals-file))
+        (locals-file (locate-dominating-file file dir-locals-file-name))
+        (dir-elt nil))
     ;; `locate-dominating-file' may have abbreviated the name.
     (when locals-file
-      (setq locals-file (expand-file-name dir-locals-file locals-file)))
+      (setq locals-file (expand-file-name dir-locals-file-name locals-file)))
     (dolist (elt dir-locals-directory-alist)
       (when (and (eq t (compare-strings file nil (length (car elt))
-                                       (car elt) nil nil))
+                                       (car elt) nil nil
+                                       (memq system-type
+                                             '(windows-nt cygwin ms-dos))))
                 (> (length (car elt)) (length (car dir-elt))))
        (setq dir-elt elt)))
     (if (and locals-file dir-elt)