The patch titled string: factorize skip_spaces and export it to be generally available has been removed from the -mm tree. Its filename was string-factorize-skip_spaces-and-export-it-to-be-generally-available.patch This patch was dropped because it was merged into mainline or a subsystem tree The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ ------------------------------------------------------ Subject: string: factorize skip_spaces and export it to be generally available From: André Goddard Rosa <andre.goddard@xxxxxxxxx> On the following sentence: while (*s && isspace(*s)) s++; If *s == 0, isspace() evaluates to ((_ctype[*s] & 0x20) != 0), which evaluates to ((0x08 & 0x20) != 0) which equals to 0 as well. If *s == 1, we depend on isspace() result anyway. In other words, "a char equals zero is never a space", so remove this check. Also, *s != 0 is most common case (non-null string). Fixed const return as noticed by Jan Engelhardt and James Bottomley. Fixed unnecessary extra cast on strstrip() as noticed by Jan Engelhardt. Signed-off-by: André Goddard Rosa <andre.goddard@xxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- include/linux/ctype.h | 1 + include/linux/string.h | 1 + lib/string.c | 19 +++++++++++++++---- 3 files changed, 17 insertions(+), 4 deletions(-) diff -puN include/linux/ctype.h~string-factorize-skip_spaces-and-export-it-to-be-generally-available include/linux/ctype.h --- a/include/linux/ctype.h~string-factorize-skip_spaces-and-export-it-to-be-generally-available +++ a/include/linux/ctype.h @@ -27,6 +27,7 @@ extern const unsigned char _ctype[]; #define islower(c) ((__ismask(c)&(_L)) != 0) #define isprint(c) ((__ismask(c)&(_P|_U|_L|_D|_SP)) != 0) #define ispunct(c) ((__ismask(c)&(_P)) != 0) +/* Note: isspace() must return false for %NUL-terminator */ #define isspace(c) ((__ismask(c)&(_S)) != 0) #define isupper(c) ((__ismask(c)&(_U)) != 0) #define isxdigit(c) ((__ismask(c)&(_D|_X)) != 0) diff -puN include/linux/string.h~string-factorize-skip_spaces-and-export-it-to-be-generally-available include/linux/string.h --- a/include/linux/string.h~string-factorize-skip_spaces-and-export-it-to-be-generally-available +++ a/include/linux/string.h @@ -62,6 +62,7 @@ extern char * strnchr(const char *, size #ifndef __HAVE_ARCH_STRRCHR extern char * strrchr(const char *,int); #endif +extern char * __must_check skip_spaces(const char *); extern char * __must_check strstrip(char *); #ifndef __HAVE_ARCH_STRSTR extern char * strstr(const char *,const char *); diff -puN lib/string.c~string-factorize-skip_spaces-and-export-it-to-be-generally-available lib/string.c --- a/lib/string.c~string-factorize-skip_spaces-and-export-it-to-be-generally-available +++ a/lib/string.c @@ -338,6 +338,20 @@ EXPORT_SYMBOL(strnchr); #endif /** + * skip_spaces - Removes leading whitespace from @s. + * @s: The string to be stripped. + * + * Returns a pointer to the first non-whitespace character in @s. + */ +char *skip_spaces(const char *str) +{ + while (isspace(*str)) + ++str; + return (char *)str; +} +EXPORT_SYMBOL(skip_spaces); + +/** * strstrip - Removes leading and trailing whitespace from @s. * @s: The string to be stripped. * @@ -360,10 +374,7 @@ char *strstrip(char *s) end--; *(end + 1) = '\0'; - while (*s && isspace(*s)) - s++; - - return s; + return skip_spaces(s); } EXPORT_SYMBOL(strstrip); _ Patches currently in -mm which might be from andre.goddard@xxxxxxxxx are origin.patch pid-tighten-pidmap-spinlock-critical-section-by-removing-kfree.patch pid-reduce-code-size-by-using-a-pointer-to-iterate-over-array.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html