Added "GetCurrentDirectory()" to sys::Path.
authorTed Kremenek <kremenek@apple.com>
Tue, 18 Dec 2007 22:07:33 +0000 (22:07 +0000)
committerTed Kremenek <kremenek@apple.com>
Tue, 18 Dec 2007 22:07:33 +0000 (22:07 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45182 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/System/Path.h
lib/System/Unix/Path.inc
lib/System/Win32/Path.inc

index 8ae8a006f8d0b3e7cf3bfd0da34b83ccd21eda3b..ee26b82c713fb6ec7db0abf4f15b2f4885e3b91f 100644 (file)
@@ -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
index 9e90dda04e0522eaf579a45c4b7a6303d435a5aa..025357258dc76768b9e5475070a53c0866352938 100644 (file)
@@ -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 {
index 2484b8a744e15f4fe8f21f8108f2da0eac5548b0..7d9652916130015ce12d4f97c58ddbcba7f8c8e1 100644 (file)
@@ -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.