From 9ef1967af73f66c0e302cae84576fc78b4826637 Mon Sep 17 00:00:00 2001 From: Baptiste Assmann Date: Sun, 29 Mar 2020 08:10:16 +0200 Subject: [PATCH] MINOR: ist: add istadv() function The purpose of istadv() function is to move forward <.ptr> by characters. It is very useful when parsing a payload. --- include/common/ist.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/include/common/ist.h b/include/common/ist.h index 2b5178f8c..2b647a22a 100644 --- a/include/common/ist.h +++ b/include/common/ist.h @@ -740,6 +740,17 @@ static inline struct ist iststop(const struct ist ist, char chr) return ist2(ist.ptr, len - 1); } +/* + * advance <.ptr> by characters. + * If is too short, (ist.end,0) is returned. + */ +static inline struct ist istadv(const struct ist ist, const size_t nb) +{ + if (ist.len < nb) + return ist2(ist.ptr + ist.len, 0); + return ist2(ist.ptr + nb, ist.len - nb); +} + #ifndef IST_FREESTANDING /* This function allocates bytes and returns an `ist` pointing to * the allocated area with size `0`.