From e71fb4b3020dd5881d8a55d169deb02b4c5f9638 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 18 Jul 2018 12:21:39 +0200 Subject: [PATCH] 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. --- src/basic/utf8.c | 11 ++++++----- src/basic/utf8.h | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/basic/utf8.c b/src/basic/utf8.c index a5ce1a2944..40d4fbda62 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 e8af7a576b..f5e9f8cacb 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);