From: Lennart Poettering Date: Wed, 18 Jul 2018 10:21:39 +0000 (+0200) Subject: utf8: update utf8_is_valid() a bit X-Git-Tag: v240~674^2~4 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e71fb4b3020dd5881d8a55d169deb02b4c5f9638;p=thirdparty%2Fsystemd.git utf8: update utf8_is_valid() a bit Let's avoid a few casts in the function. Also, let's drop the "const" when returning the string, for similar reasons as strchr() and friends drop it: so that we don't add a const if the user passes in a non-const string. --- diff --git a/src/basic/utf8.c b/src/basic/utf8.c index a5ce1a2944a..40d4fbda629 100644 --- a/src/basic/utf8.c +++ b/src/basic/utf8.c @@ -154,22 +154,23 @@ bool utf8_is_printable_newline(const char* str, size_t length, bool newline) { return true; } -const char *utf8_is_valid(const char *str) { - const uint8_t *p; +char *utf8_is_valid(const char *str) { + const char *p; assert(str); - for (p = (const uint8_t*) str; *p; ) { + p = str; + while (*p) { int len; - len = utf8_encoded_valid_unichar((const char *)p); + len = utf8_encoded_valid_unichar(p); if (len < 0) return NULL; p += len; } - return str; + return (char*) str; } char *utf8_escape_invalid(const char *str) { diff --git a/src/basic/utf8.h b/src/basic/utf8.h index e8af7a576b8..f5e9f8cacb9 100644 --- a/src/basic/utf8.h +++ b/src/basic/utf8.h @@ -14,7 +14,7 @@ bool unichar_is_valid(char32_t c); -const char *utf8_is_valid(const char *s) _pure_; +char *utf8_is_valid(const char *s) _pure_; char *ascii_is_valid(const char *s) _pure_; char *ascii_is_valid_n(const char *str, size_t len);