mirror of
https://github.com/DaveGamble/cJSON.git
synced 2023-08-10 21:13:26 +03:00
reformatting: parse_hex4
This commit is contained in:
parent
67845e3dc6
commit
e10f2bf08d
89
cJSON.c
89
cJSON.c
@ -344,16 +344,89 @@ static char *print_number(cJSON *item, printbuffer *p)
|
||||
return str;
|
||||
}
|
||||
|
||||
/* parse 4 digit hexadecimal number */
|
||||
static unsigned parse_hex4(const char *str)
|
||||
{
|
||||
unsigned h=0;
|
||||
if (*str>='0' && *str<='9') h+=(*str)-'0'; else if (*str>='A' && *str<='F') h+=10+(*str)-'A'; else if (*str>='a' && *str<='f') h+=10+(*str)-'a'; else return 0;
|
||||
h=h<<4;str++;
|
||||
if (*str>='0' && *str<='9') h+=(*str)-'0'; else if (*str>='A' && *str<='F') h+=10+(*str)-'A'; else if (*str>='a' && *str<='f') h+=10+(*str)-'a'; else return 0;
|
||||
h=h<<4;str++;
|
||||
if (*str>='0' && *str<='9') h+=(*str)-'0'; else if (*str>='A' && *str<='F') h+=10+(*str)-'A'; else if (*str>='a' && *str<='f') h+=10+(*str)-'a'; else return 0;
|
||||
h=h<<4;str++;
|
||||
if (*str>='0' && *str<='9') h+=(*str)-'0'; else if (*str>='A' && *str<='F') h+=10+(*str)-'A'; else if (*str>='a' && *str<='f') h+=10+(*str)-'a'; else return 0;
|
||||
unsigned h = 0;
|
||||
/* first digit */
|
||||
if ((*str >= '0') && (*str <= '9'))
|
||||
{
|
||||
h += (*str) - '0';
|
||||
}
|
||||
else if ((*str >= 'A') && (*str <= 'F'))
|
||||
{
|
||||
h += 10 + (*str) - 'A';
|
||||
}
|
||||
else if ((*str >= 'a') && (*str <= 'f'))
|
||||
{
|
||||
h += 10 + (*str) - 'a';
|
||||
}
|
||||
else /* invalid */
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/* second digit */
|
||||
h = h << 4;
|
||||
str++;
|
||||
if ((*str >= '0') && (*str <= '9'))
|
||||
{
|
||||
h += (*str) - '0';
|
||||
}
|
||||
else if ((*str >= 'A') && (*str <= 'F'))
|
||||
{
|
||||
h += 10 + (*str) - 'A';
|
||||
}
|
||||
else if ((*str >= 'a') && (*str <= 'f'))
|
||||
{
|
||||
h += 10 + (*str) - 'a';
|
||||
}
|
||||
else /* invalid */
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* third digit */
|
||||
h = h << 4;
|
||||
str++;
|
||||
if ((*str >= '0') && (*str <= '9'))
|
||||
{
|
||||
h += (*str) - '0';
|
||||
}
|
||||
else if ((*str >= 'A') && (*str <= 'F'))
|
||||
{
|
||||
h += 10 + (*str) - 'A';
|
||||
}
|
||||
else if ((*str >= 'a') && (*str <= 'f'))
|
||||
{
|
||||
h += 10 + (*str) - 'a';
|
||||
}
|
||||
else /* invalid */
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* fourth digit */
|
||||
h = h << 4;
|
||||
str++;
|
||||
if ((*str >= '0') && (*str <= '9'))
|
||||
{
|
||||
h += (*str) - '0';
|
||||
}
|
||||
else if ((*str >= 'A') && (*str <= 'F'))
|
||||
{
|
||||
h += 10 + (*str) - 'A';
|
||||
}
|
||||
else if ((*str >= 'a') && (*str <= 'f'))
|
||||
{
|
||||
h += 10 + (*str) - 'a';
|
||||
}
|
||||
else /* invalid */
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
return h;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user