From b2c4a5db149ebedd0f130ce02156d86b565eb4b8 Mon Sep 17 00:00:00 2001 From: Max Kellermann <max@musicpd.org> Date: Mon, 14 Oct 2019 13:41:59 +0200 Subject: [PATCH] util/UTF8: use `uint8_t` instead of `unsigned char` --- src/util/UTF8.cxx | 44 +++++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/src/util/UTF8.cxx b/src/util/UTF8.cxx index 424582a2a..2eab30924 100644 --- a/src/util/UTF8.cxx +++ b/src/util/UTF8.cxx @@ -33,17 +33,19 @@ #include <algorithm> +#include <stdint.h> + /** * Is this a leading byte that is followed by 1 continuation byte? */ static constexpr bool -IsLeading1(unsigned char ch) noexcept +IsLeading1(uint8_t ch) noexcept { return (ch & 0xe0) == 0xc0; } -static constexpr unsigned char -MakeLeading1(unsigned char value) noexcept +static constexpr uint8_t +MakeLeading1(uint8_t value) noexcept { return 0xc0 | value; } @@ -52,13 +54,13 @@ MakeLeading1(unsigned char value) noexcept * Is this a leading byte that is followed by 2 continuation byte? */ static constexpr bool -IsLeading2(unsigned char ch) noexcept +IsLeading2(uint8_t ch) noexcept { return (ch & 0xf0) == 0xe0; } -static constexpr unsigned char -MakeLeading2(unsigned char value) noexcept +static constexpr uint8_t +MakeLeading2(uint8_t value) noexcept { return 0xe0 | value; } @@ -67,13 +69,13 @@ MakeLeading2(unsigned char value) noexcept * Is this a leading byte that is followed by 3 continuation byte? */ static constexpr bool -IsLeading3(unsigned char ch) noexcept +IsLeading3(uint8_t ch) noexcept { return (ch & 0xf8) == 0xf0; } -static constexpr unsigned char -MakeLeading3(unsigned char value) noexcept +static constexpr uint8_t +MakeLeading3(uint8_t value) noexcept { return 0xf0 | value; } @@ -82,13 +84,13 @@ MakeLeading3(unsigned char value) noexcept * Is this a leading byte that is followed by 4 continuation byte? */ static constexpr bool -IsLeading4(unsigned char ch) noexcept +IsLeading4(uint8_t ch) noexcept { return (ch & 0xfc) == 0xf8; } -static constexpr unsigned char -MakeLeading4(unsigned char value) noexcept +static constexpr uint8_t +MakeLeading4(uint8_t value) noexcept { return 0xf8 | value; } @@ -97,19 +99,19 @@ MakeLeading4(unsigned char value) noexcept * Is this a leading byte that is followed by 5 continuation byte? */ static constexpr bool -IsLeading5(unsigned char ch) noexcept +IsLeading5(uint8_t ch) noexcept { return (ch & 0xfe) == 0xfc; } -static constexpr unsigned char -MakeLeading5(unsigned char value) noexcept +static constexpr uint8_t +MakeLeading5(uint8_t value) noexcept { return 0xfc | value; } static constexpr bool -IsContinuation(unsigned char ch) noexcept +IsContinuation(uint8_t ch) noexcept { return (ch & 0xc0) == 0x80; } @@ -117,8 +119,8 @@ IsContinuation(unsigned char ch) noexcept /** * Generate a continuation byte of the low 6 bit. */ -static constexpr unsigned char -MakeContinuation(unsigned char value) noexcept +static constexpr uint8_t +MakeContinuation(uint8_t value) noexcept { return 0x80 | (value & 0x3f); } @@ -127,7 +129,7 @@ bool ValidateUTF8(const char *p) noexcept { for (; *p != 0; ++p) { - unsigned char ch = *p; + uint8_t ch = *p; if (IsASCII(ch)) continue; @@ -221,7 +223,7 @@ InnerSequenceLengthUTF8(const char *p) noexcept size_t SequenceLengthUTF8(const char *p) noexcept { - const unsigned char ch = *p++; + const uint8_t ch = *p++; if (IsASCII(ch)) return 1; @@ -272,7 +274,7 @@ Latin1ToUTF8(const char *gcc_restrict src, char *gcc_restrict buffer, char *q = std::copy(src, p, buffer); while (*p != 0) { - unsigned char ch = *p++; + uint8_t ch = *p++; if (IsASCII(ch)) { *q++ = ch;