added functions to remove leading and/or trailing whitespace from strings
authorHolger Schemel <info@artsoft.org>
Fri, 23 Feb 2024 17:57:48 +0000 (18:57 +0100)
committerHolger Schemel <info@artsoft.org>
Fri, 23 Feb 2024 17:58:08 +0000 (18:58 +0100)
src/libgame/misc.c
src/libgame/misc.h

index 264b7f8d9af49b2f9e410f0f4a0e42b62cd9fe71..7450c3a35fd4942d4e0a19a039738b9c997b2650 100644 (file)
@@ -1441,6 +1441,44 @@ char *getUnescapedString(const char *s)
   return s_unescaped;
 }
 
+char *chugString(char *s)
+{
+  if (s == NULL)
+    return NULL;
+
+  char *start;
+
+  for (start = (char *)s; *start && isspace(*start); start++)
+    ;
+
+  memmove(s, start, strlen(start) + 1);
+
+  return s;
+}
+
+char *chompString(char *s)
+{
+  if (s == NULL)
+    return NULL;
+
+  int len = strlen(s);
+
+  while (len--)
+  {
+    if (isspace(s[len]))
+      s[len] = '\0';
+    else
+      break;
+  }
+
+  return s;
+}
+
+char *stripString(char *s)
+{
+  return chugString(chompString(s));
+}
+
 boolean strEqual(const char *s1, const char *s2)
 {
   return (s1 == NULL && s2 == NULL ? TRUE  :
index 111610f80acc88af9be06afa8c5e45609d497302..4548892c46febebc133f32650289e594ef3720b7 100644 (file)
@@ -188,6 +188,11 @@ char **getSplitStringArray(const char *s, const char *, int);
 int getStringArrayLength(char **);
 void freeStringArray(char **);
 char *getUnescapedString(const char *);
+
+char *chugString(char *);
+char *chompString(char *);
+char *stripString(char *);
+
 boolean strEqual(const char *, const char *);
 boolean strEqualN(const char *, const char *, int);
 boolean strEqualCase(const char *, const char *);