From 03c7b05a5a1838da1e792cb127a549358c5193d4 Mon Sep 17 00:00:00 2001 From: Patrick Rudolph Date: Thu, 29 Mar 2018 10:05:34 +0200 Subject: [PATCH] include/string: Add strrchr Copy strrchr from libpayload. To be used by Cavium's BDK or FDT parsers. Change-Id: Iab7981c25113ed16f1b8130de4935d30c29d2fa5 Signed-off-by: Patrick Rudolph Reviewed-on: https://review.coreboot.org/25447 Tested-by: build bot (Jenkins) Reviewed-by: David Hendricks --- src/include/string.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/include/string.h b/src/include/string.h index 7597323c47..d2d7bb8781 100644 --- a/src/include/string.h +++ b/src/include/string.h @@ -66,6 +66,26 @@ static inline char *strconcat(const char *s1, const char *s2) } #endif +/** + * Find a character in a string. + * + * @param s The string. + * @param c The character. + * @return A pointer to the last occurrence of the character in the + * string, or NULL if the character was not encountered within the string. + */ +static inline char *strrchr(const char *s, int c) +{ + char *p = (char *)s + strlen(s); + + for (; p >= s; p--) { + if (*p == c) + return p; + } + + return NULL; +} + static inline char *strncpy(char *to, const char *from, int count) { register char *ret = to;