From 11adc1aef7a1a6e9ba3fda8eb34eb5fadedc0385 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Thu, 21 Aug 2014 16:10:59 +0200 Subject: [PATCH] util: change return value of startswith() to non-const This way we can use it on non-const strings, and don't end up with a const'ified result. This is similar to libc's strstr() which also takes a const string but returns a non-const one. --- src/shared/util.h | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/shared/util.h b/src/shared/util.h index 87ad31731..8cd47b829 100644 --- a/src/shared/util.h +++ b/src/shared/util.h @@ -158,15 +158,23 @@ static inline bool isempty(const char *p) { return !p || !p[0]; } -static inline const char *startswith(const char *s, const char *prefix) { - if (strncmp(s, prefix, strlen(prefix)) == 0) - return s + strlen(prefix); +static inline char *startswith(const char *s, const char *prefix) { + size_t l; + + l = strlen(prefix); + if (strncmp(s, prefix, l) == 0) + return (char*) s + l; + return NULL; } -static inline const char *startswith_no_case(const char *s, const char *prefix) { - if (strncasecmp(s, prefix, strlen(prefix)) == 0) - return s + strlen(prefix); +static inline char *startswith_no_case(const char *s, const char *prefix) { + size_t l; + + l = strlen(prefix); + if (strncasecmp(s, prefix, l) == 0) + return (char*) s + l; + return NULL; } -- 2.30.2