From 5c99fa375da1c7cc4a42a93e002e98b9fb34754b Mon Sep 17 00:00:00 2001 From: Keno Fischer Date: Fri, 29 Jun 2018 12:32:10 +0200 Subject: cutils: Provide strchrnul strchrnul is a GNU extension and thus unavailable on a number of targets. In the review for a commit removing strchrnul from 9p, I was asked to create a qemu_strchrnul helper to factor out this functionality. Do so, and use it in a number of other places in the code base that inlined the replacement pattern in a place where strchrnul could be used. Signed-off-by: Keno Fischer Acked-by: Greg Kurz Reviewed-by: Markus Armbruster Signed-off-by: Greg Kurz --- util/cutils.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'util/cutils.c') diff --git a/util/cutils.c b/util/cutils.c index 0de69e6db4..9205e09031 100644 --- a/util/cutils.c +++ b/util/cutils.c @@ -544,6 +544,21 @@ int qemu_strtou64(const char *nptr, const char **endptr, int base, return check_strtox_error(nptr, ep, endptr, errno); } +/** + * Searches for the first occurrence of 'c' in 's', and returns a pointer + * to the trailing null byte if none was found. + */ +#ifndef HAVE_STRCHRNUL +const char *qemu_strchrnul(const char *s, int c) +{ + const char *e = strchr(s, c); + if (!e) { + e = s + strlen(s); + } + return e; +} +#endif + /** * parse_uint: * -- cgit 1.4.1