bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] binary-io: fix O_TEXT on Haiku


From: Eric Blake
Subject: [PATCH] binary-io: fix O_TEXT on Haiku
Date: Wed, 19 Jan 2011 06:19:53 -0700

* modules/binary-io (Depends-on): Add fcntl-h.
* lib/binary-io.h (O_TEXT): Rely on replacement <fcntl.h> rather
than blindly undefining O_TEXT.
Reported by Scott McCreary.

Signed-off-by: Eric Blake <address@hidden>
---

Even though <fcntl.h> sanitized Haiku's worthless O_TEXT,
"binary-io.h" was then nuking the sanitized version and
failing to replace it, leading to compilation errors due to
undefined O_TEXT on just Haiku.

 ChangeLog         |    8 ++++++++
 lib/binary-io.h   |   15 +--------------
 modules/binary-io |    1 +
 3 files changed, 10 insertions(+), 14 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 54c4598..6cf52b7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2011-01-19  Eric Blake  <address@hidden>
+
+       binary-io: fix O_TEXT on Haiku
+       * modules/binary-io (Depends-on): Add fcntl-h.
+       * lib/binary-io.h (O_TEXT): Rely on replacement <fcntl.h> rather
+       than blindly undefining O_TEXT.
+       Reported by Scott McCreary.
+
 2011-01-18  Paul Eggert  <address@hidden>

        include_next: do not check for standard headers like stddef.h
diff --git a/lib/binary-io.h b/lib/binary-io.h
index 2fdc642..c09dbf5 100644
--- a/lib/binary-io.h
+++ b/lib/binary-io.h
@@ -18,24 +18,13 @@
 #define _BINARY_H

 /* For systems that distinguish between text and binary I/O.
-   O_BINARY is usually declared in <fcntl.h>. */
+   O_BINARY is guaranteed by the gnulib <fcntl.h>. */
 #include <fcntl.h>

 /* The MSVC7 <stdio.h> doesn't like to be included after '#define fileno ...',
    so we include it here first.  */
 #include <stdio.h>

-#if !defined O_BINARY && defined _O_BINARY
-  /* For MSC-compatible compilers.  */
-# define O_BINARY _O_BINARY
-# define O_TEXT _O_TEXT
-#endif
-#if defined __BEOS__ || defined __HAIKU__
-  /* BeOS 5 and Haiku have O_BINARY and O_TEXT, but they have no effect.  */
-# undef O_BINARY
-# undef O_TEXT
-#endif
-
 /* SET_BINARY (fd);
    changes the file descriptor fd to perform binary I/O.  */
 #if O_BINARY
@@ -57,8 +46,6 @@
 # endif
 #else
   /* On reasonable systems, binary I/O is the default.  */
-# undef O_BINARY
-# define O_BINARY 0
 # define SET_BINARY(fd) /* do nothing */ ((void) 0)
 #endif

diff --git a/modules/binary-io b/modules/binary-io
index e97feb9..eb41ec0 100644
--- a/modules/binary-io
+++ b/modules/binary-io
@@ -5,6 +5,7 @@ Files:
 lib/binary-io.h

 Depends-on:
+fcntl-h

 configure.ac:

-- 
1.7.3.4




reply via email to

[Prev in Thread] Current Thread [Next in Thread]