(dir_name): Support for DOS-style file names with drive letters.
authorJim Meyering <jim@meyering.net>
Sat, 22 Jan 2000 21:29:02 +0000 (21:29 +0000)
committerJim Meyering <jim@meyering.net>
Sat, 22 Jan 2000 21:29:02 +0000 (21:29 +0000)
lib/dirname.c

index 483c338..cf62de7 100644 (file)
@@ -57,8 +57,17 @@ dir_name (const char *path)
   else
     {
       /* Remove any trailing slashes from the result.  */
+#ifdef MSDOS
+      char *lim = (path[0] >= 'A' && path[0] <= 'z' && path[1] == ':')
+                 ? path + 2 : path;
+
+      /* If canonicalized "d:/path", leave alone the root case "d:/".  */
+      while (slash > lim && *slash == '/')
+       --slash;
+#else
       while (slash > path && *slash == '/')
        --slash;
+#endif
 
       length = slash - path + 1;
     }