aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/System/Unix/Path.inc10
-rw-r--r--lib/System/Win32/Path.inc9
2 files changed, 19 insertions, 0 deletions
diff --git a/lib/System/Unix/Path.inc b/lib/System/Unix/Path.inc
index 9e90dda..0253572 100644
--- a/lib/System/Unix/Path.inc
+++ b/lib/System/Unix/Path.inc
@@ -250,6 +250,16 @@ Path::GetUserHomeDirectory() {
return GetRootDirectory();
}
+Path
+Path::GetCurrentDirectory() {
+ char pathname[MAXPATHLEN];
+ if (!getcwd(pathname,MAXPATHLEN)) {
+ assert (false && "Could not query current working directory.");
+ return Path("");
+ }
+
+ return Path(pathname);
+}
std::string
Path::getBasename() const {
diff --git a/lib/System/Win32/Path.inc b/lib/System/Win32/Path.inc
index 2484b8a..7d96529 100644
--- a/lib/System/Win32/Path.inc
+++ b/lib/System/Win32/Path.inc
@@ -222,6 +222,15 @@ Path::GetUserHomeDirectory() {
}
return GetRootDirectory();
}
+
+Path
+Path::GetCurrentDirectory() {
+ char pathname[MAX_PATH];
+ GetCurrentDirectory(pathname,MAX_PATH);
+ return Path(pathname);
+}
+
+
// FIXME: the above set of functions don't map to Windows very well.