# HG changeset patch # User mikael # Date 1112637651 0 # Node ID f78ffe7ce43d7f502afa88b42c1434494230ddf0 # Parent bb9172f2cbf1215b0d61f92faa363ee1ece42e32 [/trunk] Changeset 50 by mikael * Fix a bug in the UTF-8 encoder. diff -r bb9172f2cbf1 -r f78ffe7ce43d mcabber/src/utf8.c --- a/mcabber/src/utf8.c Mon Apr 04 12:12:42 2005 +0000 +++ b/mcabber/src/utf8.c Mon Apr 04 18:00:51 2005 +0000 @@ -41,17 +41,20 @@ char *utf8_encode(const char *src) { char *ret = calloc(1, (strlen(src) * 2) + 1); - char *aux = ret; + unsigned char *aux = ret; while (*src) { unsigned char ch = *src++; - if (ch < 0x80) { - *aux = ch; - } else { /* if (ch < 0x800) { */ - *aux++ = 0xc0 | (ch >> 6 & 0x1f); - *aux = 0xc0 | (0x80 | (ch & 0x3f)); + if (ch < 0x80U) { + *aux++ = ch; + } else if (ch < 0x800U) { /* if (ch < 0x800) { */ + *aux++ = 0xc0 | (ch >> 6); + *aux++ = 0x80 | (ch & 0x3f); + } else { + *aux++ = 0xe0 | (ch >> 12); + *aux++ = 0x80 | ((ch >> 6) & 0x3f); + *aux++ = 0x80 | (ch & 0x3f); } - aux++; } return ret;