|
@@ -430,8 +430,19 @@ static unsigned parse_hex4(const char *str)
|
|
|
return h;
|
|
|
}
|
|
|
|
|
|
+/* first bytes of UTF8 encoding for a given length in bytes */
|
|
|
+static const unsigned char firstByteMark[7] =
|
|
|
+{
|
|
|
+ 0x00, /* should never happen */
|
|
|
+ 0x00, /* 0xxxxxxx */
|
|
|
+ 0xC0, /* 110xxxxx */
|
|
|
+ 0xE0, /* 1110xxxx */
|
|
|
+ 0xF0, /* 11110xxx */
|
|
|
+ 0xF8,
|
|
|
+ 0xFC
|
|
|
+};
|
|
|
+
|
|
|
/* Parse the input text into an unescaped cstring, and populate item. */
|
|
|
-static const unsigned char firstByteMark[7] = { 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC };
|
|
|
static const char *parse_string(cJSON *item,const char *str,const char **ep)
|
|
|
{
|
|
|
const char *ptr=str+1,*end_ptr=str+1;char *ptr2;char *out;int len=0;unsigned uc,uc2;
|