From 304f94f3b19e79e505d9243c5cb77fcaa8bc2d34 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Tue, 7 Jul 2026 15:23:31 +0300 Subject: [PATCH] LibC: Implement __fpending Some gnu programs want this and I don't want to make FILE non-opaque --- userspace/libraries/LibC/include/stdio.h | 1 + userspace/libraries/LibC/stdio.cpp | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/userspace/libraries/LibC/include/stdio.h b/userspace/libraries/LibC/include/stdio.h index c6da3ce3..d98fb002 100644 --- a/userspace/libraries/LibC/include/stdio.h +++ b/userspace/libraries/LibC/include/stdio.h @@ -127,6 +127,7 @@ int vsnprintf(char* __restrict s, size_t n, const char* __restrict format, va_l int vsprintf(char* __restrict s, const char* __restrict format, va_list ap); int vsscanf(const char* __restrict s, const char* __restrict format, va_list arg); +size_t __fpending(FILE* stream); void __fseterr(FILE* stream); __END_DECLS diff --git a/userspace/libraries/LibC/stdio.cpp b/userspace/libraries/LibC/stdio.cpp index 2ea0d1e8..e7264732 100644 --- a/userspace/libraries/LibC/stdio.cpp +++ b/userspace/libraries/LibC/stdio.cpp @@ -134,6 +134,12 @@ void clearerr(FILE* file) file->error = false; } +size_t __fpending(FILE* file) +{ + ScopeLock _(file); + return file->buffer_rd_size ? 0 : file->buffer_idx; +} + void __fseterr(FILE* file) { ScopeLock _(file);