History

[PATCH] strstrip() API

Add a new strstrip() function to lib/string.c for removing leading and trailing whitespace from a string.

Pekka Enberg committed 20 years ago

Commit 481fad41 parent 3fa21642 files · +31 −0Browse files

Showing the changes to lib/string.c (1 of 2 files). Show all

Unified · Split

lib/string.c+30−0
@@ -301,6 +301,36 @@ char *strnchr(const char *s, size_t count, int c) · 300 unmodified lines
301301 EXPORT_SYMBOL(strnchr);
302302 #endif
303303
304+/**
305+ * strstrip - Removes leading and trailing whitespace from @s.
306+ * @s: The string to be stripped.
307+ *
308+ * Note that the first trailing whitespace is replaced with a %NUL-terminator
309+ * in the given string @s. Returns a pointer to the first non-whitespace
310+ * character in @s.
311+ */
312+char *strstrip(char *s)
313+{
314+ size_t size;
315+ char *end;
316+
317+ size = strlen(s);
318+
319+ if (!size)
320+ return s;
321+
322+ end = s + size - 1;
323+ while (end != s && isspace(*end))
324+ end--;
325+ *(end + 1) = '\0';
326+
327+ while (*s && isspace(*s))
328+ s++;
329+
330+ return s;
331+}
332+EXPORT_SYMBOL(strstrip);
333+
304334 #ifndef __HAVE_ARCH_STRLEN
305335 /**
306336 * strlen - Find the length of a string