changeset 14182:f6ec6d171e52

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. Signed-off-by: Eric Blake <eblake@redhat.com>
author Eric Blake <eblake@redhat.com>
date Wed, 19 Jan 2011 06:17:20 -0700
parents bceb1351a723
children bbf9bddcef7d
files ChangeLog lib/binary-io.h modules/binary-io
diffstat 3 files changed, 10 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2011-01-19  Eric Blake  <eblake@redhat.com>
+
+	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  <eggert@cs.ucla.edu>
 
 	include_next: do not check for standard headers like stddef.h
--- 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
 
--- a/modules/binary-io
+++ b/modules/binary-io
@@ -5,6 +5,7 @@
 lib/binary-io.h
 
 Depends-on:
+fcntl-h
 
 configure.ac: