summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-01-28 06:42:08 +0000
committerDouglas Gregor <dgregor@apple.com>2010-01-28 06:42:08 +0000
commit21569cddc1a9df3bf4a3c9e06977273f1eba3e63 (patch)
treeec0d3fe97d75d1eb383a69876b1b28e715c5863b
parent150dfa87113e51881c75676edd8e3549eb702d99 (diff)
downloadllvm-21569cddc1a9df3bf4a3c9e06977273f1eba3e63.tar.gz
llvm-21569cddc1a9df3bf4a3c9e06977273f1eba3e63.tar.bz2
llvm-21569cddc1a9df3bf4a3c9e06977273f1eba3e63.tar.xz
Add llvm::Program::ChangeStderrToBinary().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94743 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/System/Program.h6
-rw-r--r--lib/System/Unix/Program.inc5
-rw-r--r--lib/System/Win32/Program.inc5
3 files changed, 14 insertions, 2 deletions
diff --git a/include/llvm/System/Program.h b/include/llvm/System/Program.h
index 6799562726..69ce47892e 100644
--- a/include/llvm/System/Program.h
+++ b/include/llvm/System/Program.h
@@ -120,10 +120,12 @@ namespace sys {
/// @brief Construct a Program by finding it by name.
static Path FindProgramByName(const std::string& name);
- // These methods change the specified standard stream (stdin or stdout) to
- // binary mode. They return true if an error occurred
+ // These methods change the specified standard stream (stdin,
+ // stdout, or stderr) to binary mode. They return true if an error
+ // occurred
static bool ChangeStdinToBinary();
static bool ChangeStdoutToBinary();
+ static bool ChangeStderrToBinary();
/// A convenience function equivalent to Program prg; prg.Execute(..);
/// prg.Wait(..);
diff --git a/lib/System/Unix/Program.inc b/lib/System/Unix/Program.inc
index 43c3606d98..e8c2806247 100644
--- a/lib/System/Unix/Program.inc
+++ b/lib/System/Unix/Program.inc
@@ -323,4 +323,9 @@ bool Program::ChangeStdoutToBinary(){
return false;
}
+bool Program::ChangeStderrToBinary(){
+ // Do nothing, as Unix doesn't differentiate between text and binary.
+ return false;
+}
+
}
diff --git a/lib/System/Win32/Program.inc b/lib/System/Win32/Program.inc
index a69826fdce..a3b40d0e36 100644
--- a/lib/System/Win32/Program.inc
+++ b/lib/System/Win32/Program.inc
@@ -379,4 +379,9 @@ bool Program::ChangeStdoutToBinary(){
return result == -1;
}
+bool Program::ChangeStderrToBinary(){
+ int result = _setmode( _fileno(stderr), _O_BINARY );
+ return result == -1;
+}
+
}