From bb4582cf719bcf9facf4e9b459fd3a68a97fffbd Mon Sep 17 00:00:00 2001 From: Remi Tricot-Le Breton Date: Wed, 28 Oct 2020 11:35:14 +0100 Subject: [PATCH] MINOR: ist: Add a case insensitive istmatch function Add a helper function that checks if a string starts with another string while ignoring case. --- include/import/ist.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/include/import/ist.h b/include/import/ist.h index 08e2119382..4c8979b423 100644 --- a/include/import/ist.h +++ b/include/import/ist.h @@ -315,6 +315,26 @@ static inline int istmatch(const struct ist ist1, const struct ist ist2) return 1; } +/* returns non-zero if starts like , ignoring the case (empty strings do match) */ +static inline int istmatchi(const struct ist ist1, const struct ist ist2) +{ + struct ist l = ist1; + struct ist r = ist2; + + if (l.len < r.len) + return 0; + + while (r.len--) { + if (*l.ptr != *r.ptr && + ist_lc[(unsigned char)*l.ptr] != ist_lc[(unsigned char)*r.ptr]) + return 0; + + l.ptr++; + r.ptr++; + } + return 1; +} + /* returns non-zero if starts like on the first * characters (empty strings do match). */ -- 2.39.5