From: Collin Funk <collin.funk1@gmail.com>
Date: Mon, 7 Apr 2025 02:34:54 +0000 (-0700)
Subject: fflush: Port to recent Haiku snapshots.
X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=5c42b102980d0cff397ebf331f0e030d1bfd5c23;p=gnulib.git

fflush: Port to recent Haiku snapshots.

* lib/stdio-impl.h (_IO_IN_BACKUP) [__HAIKU__]: Define macros.
* lib/fflush.c (fp_) [!__HAIKU__]: Define to fp.
(fflush): Use fp_ instead of fp.
---

diff --git a/ChangeLog b/ChangeLog
index 6a6b7d85d5..64a96364b4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2025-04-06  Collin Funk  <collin.funk1@gmail.com>
 
+	fflush: Port to recent Haiku snapshots.
+	* lib/stdio-impl.h (_IO_IN_BACKUP) [__HAIKU__]: Define macros.
+	* lib/fflush.c (fp_) [!__HAIKU__]: Define to fp.
+	(fflush): Use fp_ instead of fp.
+
 	fbufmode: Port to recent Haiku snapshots.
 	* lib/stdio-impl.h (_IO_UNBUFFERED, _IO_LINE_BUF) [__HAIKU__]: Define
 	macros.
diff --git a/lib/fflush.c b/lib/fflush.c
index 85af768ce7..9e256f3272 100644
--- a/lib/fflush.c
+++ b/lib/fflush.c
@@ -33,12 +33,15 @@
 
 #if defined _IO_EOF_SEEN || defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1
 /* GNU libc, BeOS, Haiku, Linux libc5 */
+# if !defined __HAIKU__
+#  define fp_ fp
+# endif
 
 /* Clear the stream's ungetc buffer, preserving the value of ftello (fp).  */
 static void
 clear_ungetc_buffer_preserving_position (FILE *fp)
 {
-  if (fp->_flags & _IO_IN_BACKUP)
+  if (fp_->_flags & _IO_IN_BACKUP)
     /* _IO_free_backup_area is a bit complicated.  Simply call fseek.  */
     fseeko (fp, 0, SEEK_CUR);
 }
diff --git a/lib/stdio-impl.h b/lib/stdio-impl.h
index 2e7bf1a7c7..4b4263fe90 100644
--- a/lib/stdio-impl.h
+++ b/lib/stdio-impl.h
@@ -65,6 +65,9 @@
 # if !defined _IO_EOF_SEEN
 #  define _IO_EOF_SEEN 0x10
 # endif
+# if !defined _IO_IN_BACKUP
+#  define _IO_IN_BACKUP 0x100
+# endif
 # if !defined _IO_LINE_BUF
 #  define _IO_LINE_BUF 0x200
 # endif