mirror of
https://github.com/torvalds/linux.git
synced 2024-12-30 14:52:05 +00:00
lib: add glibc style strchrnul() variant
The strchrnul() variant helpfully returns a the end of the string instead of a NULL if the requested character is not found. This can simplify string parsing code since it doesn't need to expicitly check for a NULL return. If a valid string pointer is passed in, then a valid null terminated string will always come back out. Signed-off-by: Grant Likely <grant.likely@linaro.org>
This commit is contained in:
parent
b44aa25d20
commit
11d200e95f
@ -52,6 +52,9 @@ extern int strncasecmp(const char *s1, const char *s2, size_t n);
|
|||||||
#ifndef __HAVE_ARCH_STRCHR
|
#ifndef __HAVE_ARCH_STRCHR
|
||||||
extern char * strchr(const char *,int);
|
extern char * strchr(const char *,int);
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef __HAVE_ARCH_STRCHRNUL
|
||||||
|
extern char * strchrnul(const char *,int);
|
||||||
|
#endif
|
||||||
#ifndef __HAVE_ARCH_STRNCHR
|
#ifndef __HAVE_ARCH_STRNCHR
|
||||||
extern char * strnchr(const char *, size_t, int);
|
extern char * strnchr(const char *, size_t, int);
|
||||||
#endif
|
#endif
|
||||||
|
18
lib/string.c
18
lib/string.c
@ -301,6 +301,24 @@ char *strchr(const char *s, int c)
|
|||||||
EXPORT_SYMBOL(strchr);
|
EXPORT_SYMBOL(strchr);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef __HAVE_ARCH_STRCHRNUL
|
||||||
|
/**
|
||||||
|
* strchrnul - Find and return a character in a string, or end of string
|
||||||
|
* @s: The string to be searched
|
||||||
|
* @c: The character to search for
|
||||||
|
*
|
||||||
|
* Returns pointer to first occurrence of 'c' in s. If c is not found, then
|
||||||
|
* return a pointer to the null byte at the end of s.
|
||||||
|
*/
|
||||||
|
char *strchrnul(const char *s, int c)
|
||||||
|
{
|
||||||
|
while (*s && *s != (char)c)
|
||||||
|
s++;
|
||||||
|
return (char *)s;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(strchrnul);
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef __HAVE_ARCH_STRRCHR
|
#ifndef __HAVE_ARCH_STRRCHR
|
||||||
/**
|
/**
|
||||||
* strrchr - Find the last occurrence of a character in a string
|
* strrchr - Find the last occurrence of a character in a string
|
||||||
|
Loading…
Reference in New Issue
Block a user