Explicitly use binary mode when opening files in the pdfium_test sample.
This patch adds the 'b' (binary mode) flag to the fopen calls.
Before the fix the PPM images written with --write_images were corrupted
under Windows because on this platform in text mode all occurrences of
the byte 0xa (line feed) are replaced with the bytes 0x0d (carriage
return) and 0x0a (line feed).
On UNIX platforms the 'b' flag is supported but ignored, because no
translation of the line feed character takes place.
BUG=18
R=jam@chromium.org
Original patch by Michael Doppler <m.doppler@gmail.com>
Review URL: https://codereview.chromium.org/343303004
diff --git a/AUTHORS b/AUTHORS
index 0d72e22..0bbf656 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -18,6 +18,7 @@
Lei Zhang <thestig@chromium.org>
Lucas Nihlen <luken@chromium.org>
Matt Giuca <mgiuca@chromium.org>
+Michael Doppler <m.doppler@gmail.com>
Nico Weber <thakis@chromium.org>
Raymes Khoury <raymes@chromium.org>
Reid Kleckner <rnk@chromium.org>
diff --git a/samples/pdfium_test.cc b/samples/pdfium_test.cc
index 0c64149..c504bf4 100644
--- a/samples/pdfium_test.cc
+++ b/samples/pdfium_test.cc
@@ -20,10 +20,6 @@
#ifdef _WIN32
#define snprintf _snprintf
- /* in Windows, rb for open and read binary file */
- #define FOPEN_READ "rb"
-#else
- #define FOPEN_READ "r"
#endif
static void WritePpm(const char* pdf_name, int num,
@@ -39,7 +35,7 @@
char filename[256];
snprintf(filename, sizeof(filename), "%s.%d.ppm", pdf_name, num);
- FILE* fp = fopen(filename, "w");
+ FILE* fp = fopen(filename, "wb");
if (!fp)
return;
fprintf(fp, "P6\n# PDF test render\n%d %d\n255\n", width, height);
@@ -283,7 +279,7 @@
while (!files.empty()) {
const char* filename = files.front();
files.pop_front();
- FILE* file = fopen(filename, FOPEN_READ);
+ FILE* file = fopen(filename, "rb");
if (!file) {
fprintf(stderr, "Failed to open: %s\n", filename);
continue;