From cdb8d7b692cc75a0ab5c68b5fb09a0647c15d6f5 Mon Sep 17 00:00:00 2001 From: Deomid Ryabkov <rojer@cesanta.com> Date: Sat, 7 Jul 2018 16:45:52 +0300 Subject: [PATCH] Add mg_strstrip: trims whitespace at the ends of s CL: Add mg_strstrip: trims whitespace at the ends of s PUBLISHED_FROM=a7e10054ac25fa2b3a878876da93a6b30d9507b3 --- mongoose.c | 12 ++++++++++++ mongoose.h | 3 +++ 2 files changed, 15 insertions(+) diff --git a/mongoose.c b/mongoose.c index a9ea7c8d4..587422d32 100644 --- a/mongoose.c +++ b/mongoose.c @@ -1750,6 +1750,18 @@ const char *mg_strstr(const struct mg_str haystack, } return NULL; } + +struct mg_str mg_strstrip(struct mg_str s) WEAK; +struct mg_str mg_strstrip(struct mg_str s) { + while (s.len > 0 && isspace((int) *s.p)) { + s.p++; + s.len--; + } + while (s.len > 0 && isspace((int) *(s.p + s.len - 1))) { + s.len--; + } + return s; +} #ifdef MG_MODULE_LINES #line 1 "common/str_util.c" #endif diff --git a/mongoose.h b/mongoose.h index 5eeaee66e..5f9219db5 100644 --- a/mongoose.h +++ b/mongoose.h @@ -2283,6 +2283,9 @@ int mg_strncmp(const struct mg_str str1, const struct mg_str str2, size_t n); */ const char *mg_strstr(const struct mg_str haystack, const struct mg_str needle); +/* Strip whitespace at the start and the end of s */ +struct mg_str mg_strstrip(struct mg_str s); + #ifdef __cplusplus } #endif -- GitLab