[PATCH 1/3] string: add strim for ONFI code
Eric Bénard
eric at eukrea.com
Thu Jul 5 06:22:45 EDT 2012
Signed-off-by: Eric Bénard <eric at eukrea.com>
---
include/linux/string.h | 3 +++
lib/string.c | 39 +++++++++++++++++++++++++++++++++++++++
2 files changed, 42 insertions(+), 0 deletions(-)
diff --git a/include/linux/string.h b/include/linux/string.h
index 62d743e..afd0aa6 100644
--- a/include/linux/string.h
+++ b/include/linux/string.h
@@ -93,6 +93,9 @@ extern int memcmp(const void *,const void *,__kernel_size_t);
#ifndef __HAVE_ARCH_MEMCHR
extern void * memchr(const void *,int,__kernel_size_t);
#endif
+extern char * skip_spaces(const char *);
+
+extern char *strim(char *);
#ifdef __cplusplus
}
diff --git a/lib/string.c b/lib/string.c
index 2865088..db4f2ae 100644
--- a/lib/string.c
+++ b/lib/string.c
@@ -567,3 +567,42 @@ void *memchr(const void *s, int c, size_t n)
#endif
EXPORT_SYMBOL(memchr);
+/**
+ * skip_spaces - Removes leading whitespace from @str.
+ * @str: The string to be stripped.
+ *
+ * Returns a pointer to the first non-whitespace character in @str.
+ */
+char *skip_spaces(const char *str)
+{
+ while (isspace(*str))
+ ++str;
+ return (char *)str;
+}
+
+/**
+ * strim - Removes leading and trailing whitespace from @s.
+ * @s: The string to be stripped.
+ *
+ * Note that the first trailing whitespace is replaced with a %NUL-terminator
+ * in the given string @s. Returns a pointer to the first non-whitespace
+ * character in @s.
+ */
+char *strim(char *s)
+{
+ size_t size;
+ char *end;
+
+ s = skip_spaces(s);
+ size = strlen(s);
+ if (!size)
+ return s;
+
+ end = s + size - 1;
+ while (end >= s && isspace(*end))
+ end--;
+ *(end + 1) = '\0';
+
+ return s;
+}
+EXPORT_SYMBOL(strim);
--
1.7.7.6
More information about the barebox
mailing list