diff options
Diffstat (limited to 'lib/System')
-rw-r--r-- | lib/System/Unix/Program.inc | 8 | ||||
-rw-r--r-- | lib/System/Win32/Program.inc | 14 |
2 files changed, 22 insertions, 0 deletions
diff --git a/lib/System/Unix/Program.inc b/lib/System/Unix/Program.inc index 47810bdbeb..01eefe0d52 100644 --- a/lib/System/Unix/Program.inc +++ b/lib/System/Unix/Program.inc @@ -227,4 +227,12 @@ Program::ExecuteAndWait(const Path& path, } +void Program::ChangeStdinToBinary(){ + // Do nothing, as Unix doesn't differentiate between text and binary. +} + +void Program::ChangeStdoutToBinary(){ + // Do nothing, as Unix doesn't differentiate between text and binary. +} + } diff --git a/lib/System/Win32/Program.inc b/lib/System/Win32/Program.inc index 95f56b231f..c29adf0bd1 100644 --- a/lib/System/Win32/Program.inc +++ b/lib/System/Win32/Program.inc @@ -12,8 +12,10 @@ //===----------------------------------------------------------------------===// #include "Win32.h" +#include <cstdio> #include <malloc.h> #include <io.h> +#include <fcntl.h> //===----------------------------------------------------------------------===// //=== WARNING: Implementation here must contain only Win32 specific code @@ -218,4 +220,16 @@ Program::ExecuteAndWait(const Path& path, return status; } +void Program::ChangeStdinToBinary(){ + int result = _setmode( _fileno(stdin), _O_BINARY ); + if( result == -1 ) + throw std::string("Cannot set input mode on stdin to binary."); +} + +void Program::ChangeStdoutToBinary(){ + int result = _setmode( _fileno(stdout), _O_BINARY ); + if( result == -1 ) + throw std::string("Cannot set output mode on stdout to binary."); +} + } |