aboutsummaryrefslogtreecommitdiffstats
path: root/src/string_utils.h
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2024-09-27 13:06:07 -0400
committerDavid Robillard <d@drobilla.net>2024-09-27 13:06:07 -0400
commita4acf0c7414451d22b6264f2fabfa5eb348fbb62 (patch)
tree2856d682de758070f514fa08b53dcee7b7cf200a /src/string_utils.h
parent1dd97fa51d474520c9b8ca002b58603e4234abab (diff)
downloadserd-a4acf0c7414451d22b6264f2fabfa5eb348fbb62.tar.gz
serd-a4acf0c7414451d22b6264f2fabfa5eb348fbb62.tar.bz2
serd-a4acf0c7414451d22b6264f2fabfa5eb348fbb62.zip
Use tighter types for UTF-8
Diffstat (limited to 'src/string_utils.h')
-rw-r--r--src/string_utils.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/string_utils.h b/src/string_utils.h
index 2ce90ac9..7c8348ca 100644
--- a/src/string_utils.h
+++ b/src/string_utils.h
@@ -107,7 +107,7 @@ serd_strcasecmp(const char* s1, const char* s2)
return (c1 == c2) ? 0 : (c1 < c2) ? -1 : +1;
}
-static inline uint32_t
+static inline uint8_t
utf8_num_bytes(const uint8_t leading)
{
return ((leading & 0x80U) == 0x00U) ? 1U // Starts with `0'
@@ -119,18 +119,18 @@ utf8_num_bytes(const uint8_t leading)
/// Return the code point of a UTF-8 character with known length
static inline uint32_t
-parse_counted_utf8_char(const uint8_t* utf8, size_t size)
+parse_counted_utf8_char(const uint8_t* const utf8, const uint8_t size)
{
uint32_t c = utf8[0] & ((1U << (8U - size)) - 1U);
for (size_t i = 1; i < size; ++i) {
- c = (c << 6) | (utf8[i] & 0x3FU);
+ c = (c << 6U) | (utf8[i] & 0x3FU);
}
return c;
}
/// Parse a UTF-8 character, set *size to the length, and return the code point
static inline uint32_t
-parse_utf8_char(const uint8_t* utf8, size_t* size)
+parse_utf8_char(const uint8_t* const utf8, uint8_t* const size)
{
switch (*size = utf8_num_bytes(utf8[0])) {
case 1: