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