]> git.eshelyaron.com Git - emacs.git/commitdiff
(msdos_downcase_filename):
authorMiles Bader <miles@gnu.org>
Tue, 2 Jul 1996 16:27:07 +0000 (16:27 +0000)
committerMiles Bader <miles@gnu.org>
Tue, 2 Jul 1996 16:27:07 +0000 (16:27 +0000)
  Always lower-case drive letters, even on systems that preserve case in
  filenames.

src/msdos.c

index a157e1c84bcf08bd06005c2b424657cf2638c195..9577e04f5694ff2b10312db676b23926ecee6781 100644 (file)
@@ -2305,6 +2305,17 @@ void
 msdos_downcase_filename (p)
      register unsigned char *p;
 {
+  /* Always lower-case drive letters a-z, even if the filesystem
+     preserves case in filenames.
+     This is so MSDOS filenames could be compared by string comparison
+     functions that are case-sensitive.  Even case-preserving filesystems
+     do not distinguish case in drive letters.  */
+  if (p[1] == ':' && *p >= 'A' && *p <= 'Z')
+    {
+      *p += 'a' - 'A';
+      p += 2;
+    }
+
   /* Under LFN we expect to get pathnames in their true case.  */
   if (NILP (Fmsdos_long_file_names ()))
     for ( ; *p; p++)