From 2967df439482ce08a1d790df95b7de8ee3553917 Mon Sep 17 00:00:00 2001 From: ishmal Date: Sat, 18 Nov 2006 02:06:29 +0000 Subject: [PATCH] Fixed absolute paths in createDirectory() --- build.xml | 3 ++- buildtool.cpp | 9 +++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/build.xml b/build.xml index 76ab1f66d..e393c9948 100644 --- a/build.xml +++ b/build.xml @@ -14,6 +14,7 @@ + #ifndef _CONFIG_H_ #define _CONFIG_H_ @@ -142,7 +143,7 @@ - -Wall -O3 + -Wall -g -O3 -mms-bitfields diff --git a/buildtool.cpp b/buildtool.cpp index 97c5a179d..eba0dc865 100644 --- a/buildtool.cpp +++ b/buildtool.cpp @@ -3903,7 +3903,7 @@ bool MakeBase::createDirectory(const String &dirname) struct stat finfo; String nativeDir = getNativePath(dirname); char *cnative = (char *) nativeDir.c_str(); - if (stat(dirname.c_str(), &finfo)==0) + if (stat(cnative, &finfo)==0) { if (!S_ISDIR(finfo.st_mode)) { @@ -3920,9 +3920,10 @@ bool MakeBase::createDirectory(const String &dirname) //## 2: pull off the last path segment, if any, //## to make the dir 'above' this one, if necessary unsigned int pos = dirname.find_last_of('/'); - if (pos != dirname.npos) + if (pos>0 && pos != dirname.npos) { String subpath = dirname.substr(0, pos); + //A letter root (c:) ? if (!createDirectory(subpath)) return false; } @@ -3930,7 +3931,7 @@ bool MakeBase::createDirectory(const String &dirname) //## 3: now make if (mkdir(cnative)<0) { - error("cannot make directory %s", cnative); + error("cannot make directory '%s'", cnative); return false; } @@ -6563,7 +6564,7 @@ public: error(" requires 'dir=\"dirname\"' attribute"); return false; } - //trace("dirname:%s", dirName.c_str()); + trace("dirname:%s", dirName.c_str()); return true; } -- 2.30.2