Explicitly use binary mode when opening files in the pdfium_test sample.
authorJohn Abd-El-Malek <jam@chromium.org>
Thu, 26 Jun 2014 17:18:11 +0000 (10:18 -0700)
committerJohn Abd-El-Malek <jam@chromium.org>
Thu, 26 Jun 2014 17:18:11 +0000 (10:18 -0700)
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

AUTHORS
samples/pdfium_test.cc

diff --git a/AUTHORS b/AUTHORS
index 0d72e22..0bbf656 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -18,6 +18,7 @@ Kostya Serebryany <kcc@chromium.org>
 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>
index 0c64149..c504bf4 100644 (file)
 
 #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 @@ static void WritePpm(const char* pdf_name, int num,
 
   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 @@ int main(int argc, const char* argv[]) {
   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;