reformat and simplify before adding functionality
Modified: branches/xmlbuildsystem/reactos/tools/rmkdir.c
_____
Modified: branches/xmlbuildsystem/reactos/tools/rmkdir.c
--- branches/xmlbuildsystem/reactos/tools/rmkdir.c 2005-03-14
21:30:25 UTC (rev 14075)
+++ branches/xmlbuildsystem/reactos/tools/rmkdir.c 2005-03-14
21:59:25 UTC (rev 14076)
@@ -10,112 +10,101 @@
#include <sys/types.h>
#endif
-#if defined(WIN32)
-#define DIR_SEPARATOR_CHAR '\\'
-#define DIR_SEPARATOR_STRING "\\"
-#define DOS_PATHS
+#define WIN_SEPARATOR_CHAR '\\'
+#define WIN_SEPARATOR_STRING "\\"
+#define NIX_SEPARATOR_CHAR '/'
+#define NIX_SEPARATOR_STRING "/"
+
+#ifdef WIN32
+#define DIR_SEPARATOR_CHAR WIN_SEPARATOR_CHAR
+#define DIR_SEPARATOR_STRING WIN_SEPARATOR_STRING
+#define BAD_SEPARATOR_CHAR NIX_SEPARATOR_CHAR
+#define MKDIR(s) mkdir(s)
#else
-#define DIR_SEPARATOR_CHAR '/'
-#define DIR_SEPARATOR_STRING "/"
-#define UNIX_PATHS
-#endif
+#define DIR_SEPARATOR_CHAR NIX_SEPARATOR_CHAR
+#define DIR_SEPARATOR_STRING NIX_SEPARATOR_STRING
+#define BAD_SEPARATOR_CHAR WIN_SEPARATOR_CHAR
+#define MKDIR(s) mkdir(s,0755)
+#endif
-char* convert_path(char* origpath)
+char*
+convert_path(char* origpath)
{
- char* newpath;
- int i;
-
- //newpath = strdup(origpath);
- newpath=malloc(strlen(origpath)+1);
- strcpy(newpath,origpath);
-
- i = 0;
- while (newpath[i] != 0)
- {
-#ifdef UNIX_PATHS
- if (newpath[i] == '\\')
- {
- newpath[i] = '/';
- }
-#else
-#ifdef DOS_PATHS
- if (newpath[i] == '/')
- {
- newpath[i] = '\\';
- }
-#endif
-#endif
- i++;
- }
- return(newpath);
+ char* newpath;
+ int i;
+
+ newpath=malloc(strlen(origpath)+1);
+ strcpy(newpath,origpath);
+
+ i = 0;
+ while (newpath[i] != 0)
+ {
+ if (newpath[i] == BAD_SEPARATOR_CHAR)
+ {
+ newpath[i] = DIR_SEPARATOR_CHAR;
+ }
+ i++;
+ }
+ return(newpath);
}
#define TRANSFER_SIZE (65536)
int mkdir_p(char* path)
{
- if (chdir(path) == 0)
- {
+ if (chdir(path) == 0)
+ {
+ return(0);
+ }
+ if (MKDIR(path) != 0)
+ {
+ perror("Failed to create directory");
+ exit(1);
+ }
+ if (chdir(path) != 0)
+ {
+ perror("Failed to change directory");
+ exit(1);
+ }
return(0);
- }
-#ifdef UNIX_PATHS
- if (mkdir(path, 0755) != 0)
- {
- perror("Failed to create directory");
- exit(1);
- }
-#else
- if (mkdir(path) != 0)
- {
- perror("Failed to create directory");
- exit(1);
- }
-#endif
-
- if (chdir(path) != 0)
- {
- perror("Failed to change directory");
- exit(1);
- }
- return(0);
}
int main(int argc, char* argv[])
{
- char* path1;
- char* csec;
- char buf[256];
-
- if (argc != 2)
- {
- fprintf(stderr, "Too many arguments\n");
- exit(1);
- }
-
- path1 = convert_path(argv[1]);
-
- if (isalpha(path1[0]) && path1[1] == ':' && path1[2] ==
DIR_SEPARATOR_CHAR)
- {
- csec = strtok(path1, DIR_SEPARATOR_STRING);
- sprintf(buf, "%s\\", csec);
- chdir(buf);
- csec = strtok(NULL, DIR_SEPARATOR_STRING);
- }
- else if (path1[0] == DIR_SEPARATOR_CHAR)
- {
- chdir(DIR_SEPARATOR_STRING);
- csec = strtok(path1, DIR_SEPARATOR_STRING);
- }
- else
- {
- csec = strtok(path1, DIR_SEPARATOR_STRING);
- }
-
- while (csec != NULL)
- {
- mkdir_p(csec);
- csec = strtok(NULL, DIR_SEPARATOR_STRING);
- }
-
- exit(0);
+ char* path1;
+ char* csec;
+ char buf[256];
+
+ if (argc != 2)
+ {
+ fprintf(stderr, "Too many arguments\n");
+ exit(1);
+ }
+
+ path1 = convert_path(argv[1]);
+
+ if (isalpha(path1[0]) && path1[1] == ':' && path1[2] ==
DIR_SEPARATOR_CHAR)
+ {
+ csec = strtok(path1, DIR_SEPARATOR_STRING);
+ sprintf(buf, "%s\\", csec);
+ chdir(buf);
+ csec = strtok(NULL, DIR_SEPARATOR_STRING);
+ }
+ else if (path1[0] == DIR_SEPARATOR_CHAR)
+ {
+ chdir(DIR_SEPARATOR_STRING);
+ csec = strtok(path1, DIR_SEPARATOR_STRING);
+ }
+ else
+ {
+ csec = strtok(path1, DIR_SEPARATOR_STRING);
+ }
+
+ while (csec != NULL)
+ {
+ mkdir_p(csec);
+ csec = strtok(NULL, DIR_SEPARATOR_STRING);
+ }
+
+ exit(0);
}