From a4bcf257083ce6fc7ccc827e5db1b5aa594dd9e3 Mon Sep 17 00:00:00 2001 From: Collin Funk Date: Sun, 6 Apr 2025 19:28:27 -0700 Subject: [PATCH] fbufmode: Port to recent Haiku snapshots. * lib/stdio-impl.h (_IO_UNBUFFERED, _IO_LINE_BUF) [__HAIKU__]: Define macros. * lib/fbufmode.c (fp_) [!__HAIKU__]: Define to fp. (fbufmode): Use fp_ instead of fp. --- ChangeLog | 6 ++++++ lib/fbufmode.c | 7 +++++-- lib/stdio-impl.h | 6 ++++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index d2fe415247..289624f453 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2025-04-06 Collin Funk + fbufmode: Port to recent Haiku snapshots. + * lib/stdio-impl.h (_IO_UNBUFFERED, _IO_LINE_BUF) [__HAIKU__]: Define + macros. + * lib/fbufmode.c (fp_) [!__HAIKU__]: Define to fp. + (fbufmode): Use fp_ instead of fp. + fseeko: Port to recent Haiku snapshots. * lib/stdio-impl.h (fp_) [__HAIKU__]: Define to FILE which is an incomplete type on Haiku. diff --git a/lib/fbufmode.c b/lib/fbufmode.c index 57aac73292..db0e6b456b 100644 --- a/lib/fbufmode.c +++ b/lib/fbufmode.c @@ -34,15 +34,18 @@ fbufmode (FILE *fp) , because they need it for implementing getc() and putc() as fast macros. */ #if defined _IO_EOF_SEEN || defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 +# if !defined __HAIKU__ +# define fp_ fp +# endif /* GNU libc, BeOS, Haiku, Linux libc5 */ # if HAVE___FLBF /* glibc >= 2.2 */ if (__flbf (fp)) return _IOLBF; # else - if (fp->_flags & _IO_LINE_BUF) + if (fp_->_flags & _IO_LINE_BUF) return _IOLBF; # endif - if (fp->_flags & _IO_UNBUFFERED) + if (fp_->_flags & _IO_UNBUFFERED) return _IONBF; return _IOFBF; #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__ diff --git a/lib/stdio-impl.h b/lib/stdio-impl.h index b6be050676..2e7bf1a7c7 100644 --- a/lib/stdio-impl.h +++ b/lib/stdio-impl.h @@ -59,9 +59,15 @@ int64_t _offset; \ /* More fields, not relevant here. */ \ } *) fp) +# if !defined _IO_UNBUFFERED +# define _IO_UNBUFFERED 0x2 +# endif # if !defined _IO_EOF_SEEN # define _IO_EOF_SEEN 0x10 # endif +# if !defined _IO_LINE_BUF +# define _IO_LINE_BUF 0x200 +# endif #endif /* BSD stdio derived implementations. */ -- 2.39.5