From b8a1483ab39e6f895378dcc15aa584ccd04afbef Mon Sep 17 00:00:00 2001
From: Chris Angelico <rosuav@gmail.com>
Date: Sun, 17 Mar 2013 00:17:31 +1100
Subject: [PATCH] Support binary-mode file opening, on platforms where it
 matters

---
 src/fdlib.h  | 6 ++++++
 src/object.c | 2 +-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/fdlib.h b/src/fdlib.h
index ef0fcef789..1fe5ea8f5f 100644
--- a/src/fdlib.h
+++ b/src/fdlib.h
@@ -319,7 +319,13 @@ typedef off_t PIKE_OFF_T;
 #define fd_CREAT O_CREAT
 #define fd_TRUNC O_TRUNC
 #define fd_EXCL O_EXCL
+
+#ifdef O_BINARY
+#define fd_BINARY O_BINARY
+#else
 #define fd_BINARY 0
+#endif
+
 #ifdef O_LARGEFILE
 #define fd_LARGEFILE O_LARGEFILE
 #else /* !O_LARGEFILE */
diff --git a/src/object.c b/src/object.c
index 691fe6609c..fff835e26f 100644
--- a/src/object.c
+++ b/src/object.c
@@ -476,7 +476,7 @@ static struct pike_string *low_read_file(const char *file)
   PIKE_OFF_T len;
   FD f;
 
-  while((f = fd_open(file,fd_RDONLY,0666)) <0 && errno==EINTR)
+  while((f = fd_open(file,fd_RDONLY|fd_BINARY,0666)) <0 && errno==EINTR)
     check_threads_etc();
   if(f >= 0)
   {
-- 
GitLab