aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2006-01-09 14:52:46 +0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2006-01-09 14:52:46 +0000
commit5b527901ae625675f525dd65b82f90bcb2001afd (patch)
treeac6c1aeeb01aa5a3ef2d2a7732f0650b29a45fc9 /src
parent04be39734f6a5fe2e724a0c7b813ea1dd6ed3a29 (diff)
* dirOf: return "/", not "", for paths in the root directory. Fixes NIX-26.
Diffstat (limited to 'src')
-rw-r--r--src/libmain/shared.cc2
-rw-r--r--src/libutil/util.cc4
2 files changed, 3 insertions, 3 deletions
diff --git a/src/libmain/shared.cc b/src/libmain/shared.cc
index 709b6116a..a832344c9 100644
--- a/src/libmain/shared.cc
+++ b/src/libmain/shared.cc
@@ -65,7 +65,7 @@ void setLogType(string lt)
void checkStoreNotSymlink(Path path)
{
struct stat st;
- while (path.size()) {
+ while (path != "/") {
if (lstat(path.c_str(), &st))
throw SysError(format("getting status of `%1%'") % path);
if (S_ISLNK(st.st_mode))
diff --git a/src/libutil/util.cc b/src/libutil/util.cc
index 188453d16..ee34cb18a 100644
--- a/src/libutil/util.cc
+++ b/src/libutil/util.cc
@@ -115,7 +115,7 @@ Path dirOf(const Path & path)
unsigned int pos = path.rfind('/');
if (pos == string::npos)
throw Error(format("invalid file name: %1%") % path);
- return Path(path, 0, pos);
+ return pos == 0 ? "/" : Path(path, 0, pos);
}
@@ -302,7 +302,7 @@ Path createTempDir()
void createDirs(const Path & path)
{
- if (path == "") return;
+ if (path == "/") return;
createDirs(dirOf(path));
if (!pathExists(path))
if (mkdir(path.c_str(), 0777) == -1)