diff options
-rw-r--r-- | bstr.c | 8 | ||||
-rw-r--r-- | bstr.h | 3 |
2 files changed, 11 insertions, 0 deletions
@@ -198,6 +198,14 @@ struct bstr bstr_getline(struct bstr str, struct bstr *rest) return str; } +bool bstr_eatstart(struct bstr *s, struct bstr prefix) +{ + if (!bstr_startswith(*s, prefix)) + return false; + *s = bstr_cut(*s, prefix.len); + return true; +} + void bstr_lower(struct bstr str) { for (int i = 0; i < str.len; i++) @@ -88,6 +88,9 @@ int bstr_parse_utf8_code_length(unsigned char b); // line breaks are stripped. struct bstr bstr_getline(struct bstr str, struct bstr *rest); +// If s starts with prefix, return true and return the rest of the string in s. +bool bstr_eatstart(struct bstr *s, struct bstr prefix); + bool bstr_case_startswith(struct bstr s, struct bstr prefix); bool bstr_case_endswith(struct bstr s, struct bstr suffix); struct bstr bstr_strip_ext(struct bstr str); |