diff options
author | Daniel Dunbar <daniel@zuster.org> | 2011-09-23 23:23:36 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2011-09-23 23:23:36 +0000 |
commit | bb0a6126cf1372e3ba90f0f6ff16f7f4d0381105 (patch) | |
tree | d0cb7d2de894a45f4bcccb5a5fb7bf5f4c7a88ce | |
parent | b5b7c96ce4e120297304e5cef5b4b0af8e9e8691 (diff) |
sys::Process: Add a SetWorkingDirectory method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140433 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/Support/Process.h | 3 | ||||
-rw-r--r-- | lib/Support/Unix/Process.inc | 4 | ||||
-rw-r--r-- | lib/Support/Windows/Process.inc | 5 |
3 files changed, 12 insertions, 0 deletions
diff --git a/include/llvm/Support/Process.h b/include/llvm/Support/Process.h index 33799229ff..27ef267009 100644 --- a/include/llvm/Support/Process.h +++ b/include/llvm/Support/Process.h @@ -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); /// @} }; } diff --git a/lib/Support/Unix/Process.inc b/lib/Support/Unix/Process.inc index 5cdb11cceb..da440fd48f 100644 --- a/lib/Support/Unix/Process.inc +++ b/lib/Support/Unix/Process.inc @@ -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()); +} diff --git a/lib/Support/Windows/Process.inc b/lib/Support/Windows/Process.inc index 06a7f0054d..fe54eb1a79 100644 --- a/lib/Support/Windows/Process.inc +++ b/lib/Support/Windows/Process.inc @@ -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()); +} + } |