diff options
author | Christian Hitz <christian.hitz@aizo.com> | 2011-10-12 09:32:05 +0200 |
---|---|---|
committer | Scott Wood <scottwood@freescale.com> | 2012-01-26 16:09:02 -0600 |
commit | 5454ddbc9b6be1b3a8fe1018bda697ac2b33b202 (patch) | |
tree | e95d6010a9508907b67b29a1d67dda78ab9b420d /lib | |
parent | ff8a8a718341e42af8642f01ce630d4a77c58f82 (diff) |
nand: Sanitize ONFI strings.
[backport from linux commit 02f8c6aee8df3cdc935e9bdd4f2d020306035dbe]
This is part of the synchronization with the nand driver to the
Linux 3.0 state.
Signed-off-by: Christian Hitz <christian.hitz@aizo.com>
Cc: Scott Wood <scottwood@freescale.com>
Signed-off-by: Scott Wood <scottwood@freescale.com>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/string.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/lib/string.c b/lib/string.c index 2c4f0ec9a11..c3ad055e2ca 100644 --- a/lib/string.c +++ b/lib/string.c @@ -214,6 +214,45 @@ char * strrchr(const char * s, int c) } #endif + +/** + * 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; +} #ifndef __HAVE_ARCH_STRLEN /** * strlen - Find the length of a string |