From: Wilfried Goesgens Date: Fri, 19 Aug 2011 17:12:32 +0000 (+0000) Subject: Fix detecting of UTF8 Sequences X-Git-Tag: v8.01~71 X-Git-Url: https://code.citadel.org/?p=citadel.git;a=commitdiff_plain;h=ceac59570da7c88bbe4d8e82b5396bcc19552c8d Fix detecting of UTF8 Sequences - we need to exactly check for both highest bits to be set, not one of them. --- diff --git a/libcitadel/lib/stringbuf.c b/libcitadel/lib/stringbuf.c index aadd92d19..02b715397 100644 --- a/libcitadel/lib/stringbuf.c +++ b/libcitadel/lib/stringbuf.c @@ -3331,7 +3331,7 @@ static inline int Ctdl_GetUtf8SequenceLength(const char *CharS, const char *Char int n = 0; unsigned char test = (1<<7); - if ((*CharS & 0xC0) == 0) + if ((*CharS & 0xC0) != 0xC0) return 1; while ((n < 8) && @@ -3354,7 +3354,7 @@ static inline int Ctdl_GetUtf8SequenceLength(const char *CharS, const char *Char static inline int Ctdl_IsUtf8SequenceStart(const char Char) { /** 11??.???? indicates an UTF8 Sequence. */ - return ((Char & 0xC0) != 0); + return ((Char & 0xC0) == 0xC0); } /**