summaryrefslogtreecommitdiff
path: root/target/linux/brcm63xx/patches-3.14/002-lib-add-glibc-style-strchrnul-variant.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/brcm63xx/patches-3.14/002-lib-add-glibc-style-strchrnul-variant.patch')
-rw-r--r--target/linux/brcm63xx/patches-3.14/002-lib-add-glibc-style-strchrnul-variant.patch56
1 files changed, 56 insertions, 0 deletions
diff --git a/target/linux/brcm63xx/patches-3.14/002-lib-add-glibc-style-strchrnul-variant.patch b/target/linux/brcm63xx/patches-3.14/002-lib-add-glibc-style-strchrnul-variant.patch
new file mode 100644
index 0000000..33d7c9f
--- /dev/null
+++ b/target/linux/brcm63xx/patches-3.14/002-lib-add-glibc-style-strchrnul-variant.patch
@@ -0,0 +1,56 @@
+From 11d200e95f3e84c1102e4cc9863a3614fd41f3ad Mon Sep 17 00:00:00 2001
+From: Grant Likely <grant.likely@linaro.org>
+Date: Fri, 14 Mar 2014 17:00:14 +0000
+Subject: [PATCH] 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>
+---
+ include/linux/string.h | 3 +++
+ lib/string.c | 18 ++++++++++++++++++
+ 2 files changed, 21 insertions(+)
+
+--- a/include/linux/string.h
++++ b/include/linux/string.h
+@@ -52,6 +52,9 @@ extern int strncasecmp(const char *s1, c
+ #ifndef __HAVE_ARCH_STRCHR
+ extern char * strchr(const char *,int);
+ #endif
++#ifndef __HAVE_ARCH_STRCHRNUL
++extern char * strchrnul(const char *,int);
++#endif
+ #ifndef __HAVE_ARCH_STRNCHR
+ extern char * strnchr(const char *, size_t, int);
+ #endif
+--- a/lib/string.c
++++ b/lib/string.c
+@@ -301,6 +301,24 @@ char *strchr(const char *s, int c)
+ EXPORT_SYMBOL(strchr);
+ #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
+ /**
+ * strrchr - Find the last occurrence of a character in a string