OSDN Git Service

sys::Process: Add a SetWorkingDirectory method.
authorDaniel Dunbar <daniel@zuster.org>
Fri, 23 Sep 2011 23:23:36 +0000 (23:23 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Fri, 23 Sep 2011 23:23:36 +0000 (23:23 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140433 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Support/Process.h
lib/Support/Unix/Process.inc
lib/Support/Windows/Process.inc

index 3379922..27ef267 100644 (file)
@@ -138,6 +138,9 @@ namespace sys {
 
       /// Resets the terminals colors, or returns an escape sequence to do so.
       static const char *ResetColor();
+
+      /// Change the program working directory to that given by \arg Path.
+      static void SetWorkingDirectory(std::string Path);
     /// @}
   };
 }
index 5cdb11c..da440fd 100644 (file)
@@ -293,3 +293,7 @@ const char *Process::OutputBold(bool bg) {
 const char *Process::ResetColor() {
   return "\033[0m";
 }
+
+void Process::SetWorkingDirectory(std::string Path) {
+  ::chdir(Path.c_str());
+}
index 06a7f00..fe54eb1 100644 (file)
@@ -15,6 +15,7 @@
 #include <psapi.h>
 #include <malloc.h>
 #include <io.h>
+#include <direct.h>
 
 #ifdef __MINGW32__
  #if (HAVE_LIBPSAPI != 1)
@@ -219,4 +220,8 @@ const char *Process::ResetColor() {
   return 0;
 }
 
+void Process::SetWorkingDirectory(std::string Path) {
+  ::_chdir(Path.c_str());
+}
+
 }