From 4f706d819af572f44a184d5f6e6b6bdae167c5ed Mon Sep 17 00:00:00 2001 From: Tim Schumacher Date: Sun, 7 Nov 2021 17:26:50 +0100 Subject: [PATCH] LibC: Implement __freadptrinc --- .../LibC/bits/stdio_file_implementation.h | 1 + Userland/Libraries/LibC/stdio.cpp | 14 ++++++++++++++ Userland/Libraries/LibC/stdio_ext.h | 1 + 3 files changed, 16 insertions(+) diff --git a/Userland/Libraries/LibC/bits/stdio_file_implementation.h b/Userland/Libraries/LibC/bits/stdio_file_implementation.h index 56b4fbc4f25825..cdccefdf206e9e 100644 --- a/Userland/Libraries/LibC/bits/stdio_file_implementation.h +++ b/Userland/Libraries/LibC/bits/stdio_file_implementation.h @@ -62,6 +62,7 @@ struct FILE { void reopen(int fd, int mode); u8 const* readptr(size_t& available_size); + void readptr_increase(size_t increment); enum Flags : u8 { None = 0, diff --git a/Userland/Libraries/LibC/stdio.cpp b/Userland/Libraries/LibC/stdio.cpp index 28486b2cb44569..e7306f9008fb93 100644 --- a/Userland/Libraries/LibC/stdio.cpp +++ b/Userland/Libraries/LibC/stdio.cpp @@ -374,6 +374,11 @@ u8 const* FILE::readptr(size_t& available_size) return m_buffer.begin_dequeue(available_size); } +void FILE::readptr_increase(size_t increment) +{ + m_buffer.did_dequeue(increment); +} + FILE::Buffer::~Buffer() { if (m_data_is_malloced) @@ -1355,6 +1360,15 @@ char const* __freadptr(FILE* stream, size_t* sizep) *sizep = available_size; return reinterpret_cast(ptr); } + +void __freadptrinc(FILE* stream, size_t increment) +{ + VERIFY(stream); + + ScopedFileLock lock(stream); + + stream->readptr_increase(increment); +} } template bool FILE::gets(u8*, size_t); diff --git a/Userland/Libraries/LibC/stdio_ext.h b/Userland/Libraries/LibC/stdio_ext.h index 5484ee172fb999..9966f2262f7b53 100644 --- a/Userland/Libraries/LibC/stdio_ext.h +++ b/Userland/Libraries/LibC/stdio_ext.h @@ -17,5 +17,6 @@ void __fpurge(FILE*); size_t __freadahead(FILE*); char const* __freadptr(FILE*, size_t*); +void __freadptrinc(FILE*, size_t); __END_DECLS