Index: src/OFString.m ================================================================== --- src/OFString.m +++ src/OFString.m @@ -107,30 +107,32 @@ } size_t of_string_unicode_to_utf8(uint32_t c, char *buf) { + size_t i = 0; + if (c < 0x80) { - buf[0] = c; + buf[i] = c; return 1; } if (c < 0x800) { - buf[0] = 0xC0 | (c >> 6); - buf[1] = 0x80 | (c & 0x3F); + buf[i++] = 0xC0 | (c >> 6); + buf[i] = 0x80 | (c & 0x3F); return 2; } if (c < 0x10000) { - buf[0] = 0xE0 | (c >> 12); - buf[1] = 0x80 | (c >> 6 & 0x3F); - buf[2] = 0x80 | (c & 0x3F); + buf[i++] = 0xE0 | (c >> 12); + buf[i++] = 0x80 | (c >> 6 & 0x3F); + buf[i] = 0x80 | (c & 0x3F); return 3; } if (c < 0x110000) { - buf[0] = 0xF0 | (c >> 18); - buf[1] = 0x80 | (c >> 12 & 0x3F); - buf[2] = 0x80 | (c >> 6 & 0x3F); - buf[3] = 0x80 | (c & 0x3F); + buf[i++] = 0xF0 | (c >> 18); + buf[i++] = 0x80 | (c >> 12 & 0x3F); + buf[i++] = 0x80 | (c >> 6 & 0x3F); + buf[i] = 0x80 | (c & 0x3F); return 4; } return 0; } Index: src/OFXMLParser.m ================================================================== --- src/OFXMLParser.m +++ src/OFXMLParser.m @@ -19,11 +19,11 @@ #import "OFMacros.h" int _OFXMLParser_reference; static OF_INLINE OFString* -parse_numeric_entity(char *entity, size_t length) +parse_numeric_entity(const char *entity, size_t length) { uint32_t c; size_t i; char buf[4];