From b35cea4b8d82a28994351f3b550e8191ee1d94bf Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Sun, 25 Aug 2024 23:28:25 +0200 Subject: First commit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- shiftbuffer.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 shiftbuffer.c (limited to 'shiftbuffer.c') diff --git a/shiftbuffer.c b/shiftbuffer.c new file mode 100644 index 0000000..6a1213e --- /dev/null +++ b/shiftbuffer.c @@ -0,0 +1,16 @@ +/* See LICENSE file for copyright and license details. */ +#include "common.h" + + +void +shiftbuffer(struct algorithm *algorithms, size_t nalgorithms, struct buffer *buffer) +{ + size_t i, consumed = SIZE_MAX; + for (i = 0; i < nalgorithms; i++) + consumed = MIN(consumed, algorithms[i].offset); + if (!consumed) + return; + for (i = 0; i < nalgorithms; i++) + algorithms[i].offset -= consumed; + memmove(&buffer->buf[0], &buffer->buf[consumed], buffer->length -= consumed); +} -- cgit v1.2.3-70-g09d2