aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf
diff options
context:
space:
mode:
Diffstat (limited to 'libqpdf')
-rw-r--r--libqpdf/QPDFWriter.cc1
-rw-r--r--libqpdf/QUtil.cc10
2 files changed, 11 insertions, 0 deletions
diff --git a/libqpdf/QPDFWriter.cc b/libqpdf/QPDFWriter.cc
index eb146bd2..b4b4b6d2 100644
--- a/libqpdf/QPDFWriter.cc
+++ b/libqpdf/QPDFWriter.cc
@@ -50,6 +50,7 @@ QPDFWriter::QPDFWriter(QPDF& pdf, char const* filename) :
this->filename = "standard output";
QTC::TC("qpdf", "QPDFWriter write to stdout");
file = stdout;
+ QUtil::binary_stdout();
}
else
{
diff --git a/libqpdf/QUtil.cc b/libqpdf/QUtil.cc
index 3ac467d4..c3df35da 100644
--- a/libqpdf/QUtil.cc
+++ b/libqpdf/QUtil.cc
@@ -5,9 +5,11 @@
#include <ctype.h>
#include <stdlib.h>
#include <string.h>
+#include <fcntl.h>
#ifdef _WIN32
#include <Windows.h>
#include <direct.h>
+#include <io.h>
#else
#include <unistd.h>
#endif
@@ -104,6 +106,14 @@ QUtil::copy_string(std::string const& str)
return result;
}
+void
+QUtil::binary_stdout()
+{
+#ifdef _WIN32
+ _setmode(_fileno(stdout), _O_BINARY);
+#endif
+}
+
bool
QUtil::get_env(std::string const& var, std::string* value)
{