diff options
author | Joe Hershberger <joe.hershberger@ni.com> | 2012-12-11 22:16:18 -0600 |
---|---|---|
committer | Tom Rini <trini@ti.com> | 2012-12-13 11:46:07 -0700 |
commit | e772cb30f649c1bb8c9cb15e4c05cbf0760f2f61 (patch) | |
tree | 743ebd506adabfbe4961a63da5f4a4ac591dfea6 /lib/linux_string.c | |
parent | 9960d9a8bccebc8418857c15de94a7bc23049573 (diff) | |
download | u-boot-e772cb30f649c1bb8c9cb15e4c05cbf0760f2f61.zip u-boot-e772cb30f649c1bb8c9cb15e4c05cbf0760f2f61.tar.gz u-boot-e772cb30f649c1bb8c9cb15e4c05cbf0760f2f61.tar.bz2 |
Make linux kernel string funcs available to tools
isspace() and strim() are not in the typical user-mode string.h, so
put them in a separate compilation unit so that they can be built into
tools that need them independent of the other common string functions.
This allows code shared by u-boot and the linux user-mode tools to link.
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Diffstat (limited to 'lib/linux_string.c')
-rw-r--r-- | lib/linux_string.c | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/lib/linux_string.c b/lib/linux_string.c new file mode 100644 index 0000000..d5a5e08 --- /dev/null +++ b/lib/linux_string.c @@ -0,0 +1,51 @@ +/* + * linux/lib/string.c + * + * Copyright (C) 1991, 1992 Linus Torvalds + */ + +#ifdef USE_HOSTCC +#include <stdio.h> +#endif + +#include <linux/ctype.h> +#include <linux/string.h> + +/** + * 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; +} |