update for HEAD-2003091401
[reactos.git] / tools / rmkdir.c
index 371402a..c3b903a 100644 (file)
@@ -2,6 +2,16 @@
 #include <string.h>
 #include <stdlib.h>
 
+#ifdef UNIX_PATHS
+#define DIR_SEPARATOR_CHAR '/'
+#define DIR_SEPARATOR_STRING "/"
+#else
+#ifdef DOS_PATHS
+#define DIR_SEPARATOR_CHAR '\\'
+#define DIR_SEPARATOR_STRING "\\"
+#endif 
+#endif 
+
 char* convert_path(char* origpath)
 {
    char* newpath;
@@ -67,6 +77,7 @@ int main(int argc, char* argv[])
    FILE* out;
    char* csec;
    int is_abs_path;
+   char buf[256];
    
    if (argc != 2)
      {
@@ -76,26 +87,27 @@ int main(int argc, char* argv[])
    
    path1 = convert_path(argv[1]);
    
-   if (isalpha(path1[0]) && path1[1] == ':' && path1[2] == '/')
+   if (isalpha(path1[0]) && path1[1] == ':' && path1[2] == DIR_SEPARATOR_CHAR)
      {
-       csec = strtok(path1, "/");
-       chdir(csec);
-       csec = strtok(NULL, "/");
+       csec = strtok(path1, DIR_SEPARATOR_STRING);
+  sprintf(buf, "%s\\", csec);
+       chdir(buf);
+       csec = strtok(NULL, DIR_SEPARATOR_STRING);
      }
-   else if (path1[0] == '/')
+   else if (path1[0] == DIR_SEPARATOR_CHAR)
      {
-       chdir("/");
-       csec = strtok(path1, "/");
+       chdir(DIR_SEPARATOR_STRING);
+       csec = strtok(path1, DIR_SEPARATOR_STRING);
      }
    else
      {
-       csec = strtok(path1, "/");
+       csec = strtok(path1, DIR_SEPARATOR_STRING);
      }
    
    while (csec != NULL)
      {
        mkdir_p(csec);
-       csec = strtok(NULL, "/");
+       csec = strtok(NULL, DIR_SEPARATOR_STRING);
      }
    
    exit(0);