From fa6448e7198d12cfdbf89702e070d785b8035d6a Mon Sep 17 00:00:00 2001 From: meep-eep Date: Sat, 4 Jan 2003 23:41:34 +0000 Subject: [PATCH] Fix for MS Windwos when a path contains a drive letter. git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@530 8092fc87-c524-0410-9efc-e669fe64eaf9 --- sc2/src/options.c | 9 ++++++--- sc2/src/sc2code/libs/file/dirs.c | 9 +++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/sc2/src/options.c b/sc2/src/options.c index df170301f..60e925ead 100644 --- a/sc2/src/options.c +++ b/sc2/src/options.c @@ -45,7 +45,8 @@ prepareConfigDir (void) { configDir = realloc (configDir, strlen (configDir) + 1); // Create the path upto the config dir, if not already existing. - mkdirhier (configDir); + if (mkdirhier (configDir) == -1) + exit (EXIT_FAILURE); } void @@ -61,7 +62,8 @@ prepareSaveDir (void) { saveDir = realloc (saveDir, strlen (saveDir) + 1); // Create the path upto the save dir, if not already existing. - mkdirhier (saveDir); + if (mkdirhier (saveDir) == -1) + exit (EXIT_FAILURE); //#ifdef DEBUG fprintf(stderr, "Saved games are kept in %s.\n", saveDir); //#endif @@ -80,6 +82,7 @@ prepareMeleeDir (void) { meleeDir = realloc (meleeDir, strlen (meleeDir) + 1); // Create the path upto the save dir, if not already existing. - mkdirhier (meleeDir); + if (mkdirhier (meleeDir) == -1) + exit (EXIT_FAILURE); } diff --git a/sc2/src/sc2code/libs/file/dirs.c b/sc2/src/sc2code/libs/file/dirs.c index 70525da4a..f24995fc4 100644 --- a/sc2/src/sc2code/libs/file/dirs.c +++ b/sc2/src/sc2code/libs/file/dirs.c @@ -65,6 +65,15 @@ mkdirhier (const char *path) ptr = buf; pathstart = path; +#ifdef WIN32 + // driveletter + semicolon on Windows. + if (isalpha(pathstart[0]) && pathstart[1] == ':') + { + *(ptr++) = *(pathstart++); + *(ptr++) = *(pathstart++); + } +#endif + if (*pathstart == '/') { *ptr = '/'; ptr++;