]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
unichar: Use surrogate macros in ucs4 validity check
authorAki Tuomi <aki.tuomi@dovecot.fi>
Mon, 23 Oct 2017 12:03:30 +0000 (15:03 +0300)
committerAki Tuomi <aki.tuomi@dovecot.fi>
Mon, 23 Oct 2017 12:03:43 +0000 (15:03 +0300)
src/lib/unichar.h

index 67c95a688af2280c90ecf6dd81e48cb839a2b15c..f32d7c59ab7f71db74b035f826df99439a6745d0 100644 (file)
@@ -49,8 +49,9 @@ extern const uint8_t *const uni_utf8_non1_bytes;
 
 static inline bool ATTR_PURE uni_is_valid_ucs4(unichar_t chr)
 {
-       return (chr & 0xfff800) != UTF16_SURROGATE_HIGH_FIRST &&
-               chr <= UNICHAR_T_MAX;
+       return (!UTF16_VALID_HIGH_SURROGATE(chr) &&
+               !UTF16_VALID_LOW_SURROGATE(chr) &&
+               chr <= UNICHAR_T_MAX);
 };
 
 /* Returns number of characters in a NUL-terminated unicode string */