From c190063f9658153988d735a333a7a3c7aeadc001 Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Mon, 20 Nov 2023 20:47:52 +0100 Subject: stdio: set and test stream orientation in low-level input function __srget_r This allows to set and test orientation correctly if input is only using macros from stdio.h. Wide-char-oriented functions must call __srefill_r directly. Signed-off-by: Corinna Vinschen --- newlib/libc/stdio/rget.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'newlib') diff --git a/newlib/libc/stdio/rget.c b/newlib/libc/stdio/rget.c index a9a0d2f2f..38e8b5dd1 100644 --- a/newlib/libc/stdio/rget.c +++ b/newlib/libc/stdio/rget.c @@ -39,6 +39,11 @@ __srget_r (struct _reent *ptr, we call __srefill_r so we may access the true read buffer. */ CHECK_INIT(ptr, fp); + /* Have to set and check orientation here, otherwise the macros in + stdio.h never set it. */ + if (ORIENT (fp, -1) != -1) + return EOF; + if (__srefill_r (ptr, fp) == 0) { fp->_r--; -- cgit v1.2.3