diff options
author | Ted Kremenek <kremenek@apple.com> | 2007-12-18 22:07:33 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2007-12-18 22:07:33 +0000 |
commit | 79200788df8d946eae6973709b998a7f3a4cb754 (patch) | |
tree | 6644227d4f4f9db126b48d411570e4b40686cdda | |
parent | 280f4565eb599ce424c204b9ea07130d772af7e3 (diff) | |
download | external_llvm-79200788df8d946eae6973709b998a7f3a4cb754.zip external_llvm-79200788df8d946eae6973709b998a7f3a4cb754.tar.gz external_llvm-79200788df8d946eae6973709b998a7f3a4cb754.tar.bz2 |
Added "GetCurrentDirectory()" to sys::Path.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45182 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/System/Path.h | 5 | ||||
-rw-r--r-- | lib/System/Unix/Path.inc | 10 | ||||
-rw-r--r-- | lib/System/Win32/Path.inc | 9 |
3 files changed, 24 insertions, 0 deletions
diff --git a/include/llvm/System/Path.h b/include/llvm/System/Path.h index 8ae8a00..ee26b82 100644 --- a/include/llvm/System/Path.h +++ b/include/llvm/System/Path.h @@ -148,6 +148,11 @@ namespace sys { /// constructor must provide the same result as GetRootDirectory. /// @brief Construct a path to the current user's "home" directory static Path GetUserHomeDirectory(); + + /// Construct a path to the current directory for the current process. + /// @returns The current working directory. + /// @brief Returns the current working directory. + static Path GetCurrentDirectory(); /// Return the suffix commonly used on file names that contain a shared /// object, shared archive, or dynamic link library. Such files are 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. |