提交 4ba6bafe 编写于 作者: M Max Bruckner

refactor cJSONUtils_InplaceDecodePointerString

上级 378a333e
......@@ -288,22 +288,35 @@ CJSON_PUBLIC(cJSON *) cJSONUtils_GetPointer(cJSON * const object, const char *po
/* JSON Patch implementation. */
static void cJSONUtils_InplaceDecodePointerString(unsigned char *string)
{
unsigned char *s2 = string;
unsigned char *decoded_string = string;
if (string == NULL) {
return;
}
for (; *string; (void)s2++, string++)
for (; *string; (void)decoded_string++, string++)
{
*s2 = (unsigned char) ((*string != '~')
? (*string)
: ((*(++string) == '0')
? '~'
: '/'));
if (string[0] == '~')
{
if (string[1] == '0')
{
decoded_string[0] = '~';
}
else if (string[1] == '1')
{
decoded_string[1] = '/';
}
else
{
/* invalid escape sequence */
return;
}
string++;
}
}
*s2 = '\0';
decoded_string[0] = '\0';
}
/* non-broken cJSON_DetachItemFromArray */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册