|  | @@ -853,18 +853,49 @@ char *cJSON_PrintBuffered(cJSON *item, int prebuffer, int fmt)
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  /* Parser core - when encountering text, process appropriately. */
 |  |  /* Parser core - when encountering text, process appropriately. */
 | 
											
												
													
														|  | -static const char *parse_value(cJSON *item,const char *value,const char **ep)
 |  | 
 | 
											
												
													
														|  | 
 |  | +static const char *parse_value(cJSON *item, const char *value, const char **ep)
 | 
											
												
													
														|  |  {
 |  |  {
 | 
											
												
													
														|  | -	if (!value)						return 0;	/* Fail on null. */
 |  | 
 | 
											
												
													
														|  | -	if (!strncmp(value,"null",4))	{ item->type=cJSON_NULL;  return value+4; }
 |  | 
 | 
											
												
													
														|  | -	if (!strncmp(value,"false",5))	{ item->type=cJSON_False; return value+5; }
 |  | 
 | 
											
												
													
														|  | -	if (!strncmp(value,"true",4))	{ item->type=cJSON_True; item->valueint=1;	return value+4; }
 |  | 
 | 
											
												
													
														|  | -	if (*value=='\"')				{ return parse_string(item,value,ep); }
 |  | 
 | 
											
												
													
														|  | -	if (*value=='-' || (*value>='0' && *value<='9'))	{ return parse_number(item,value); }
 |  | 
 | 
											
												
													
														|  | -	if (*value=='[')				{ return parse_array(item,value,ep); }
 |  | 
 | 
											
												
													
														|  | -	if (*value=='{')				{ return parse_object(item,value,ep); }
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -	*ep=value;return 0;	/* failure. */
 |  | 
 | 
											
												
													
														|  | 
 |  | +    if (!value)
 | 
											
												
													
														|  | 
 |  | +    {
 | 
											
												
													
														|  | 
 |  | +        /* Fail on null. */
 | 
											
												
													
														|  | 
 |  | +        return 0;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /* parse the different types of values */
 | 
											
												
													
														|  | 
 |  | +    if (!strncmp(value, "null", 4))
 | 
											
												
													
														|  | 
 |  | +    {
 | 
											
												
													
														|  | 
 |  | +        item->type = cJSON_NULL;
 | 
											
												
													
														|  | 
 |  | +        return value + 4;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +    if (!strncmp(value, "false", 5))
 | 
											
												
													
														|  | 
 |  | +    {
 | 
											
												
													
														|  | 
 |  | +        item->type = cJSON_False;
 | 
											
												
													
														|  | 
 |  | +        return value + 5;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +    if (!strncmp(value, "true", 4))
 | 
											
												
													
														|  | 
 |  | +    {
 | 
											
												
													
														|  | 
 |  | +        item->type = cJSON_True;
 | 
											
												
													
														|  | 
 |  | +        item->valueint = 1;
 | 
											
												
													
														|  | 
 |  | +        return value + 4;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +    if (*value == '\"')
 | 
											
												
													
														|  | 
 |  | +    {
 | 
											
												
													
														|  | 
 |  | +        return parse_string(item, value, ep);
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +    if ((*value == '-') || ((*value >= '0') && (*value <= '9')))
 | 
											
												
													
														|  | 
 |  | +    {
 | 
											
												
													
														|  | 
 |  | +        return parse_number(item, value);
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +    if (*value == '[')
 | 
											
												
													
														|  | 
 |  | +    {
 | 
											
												
													
														|  | 
 |  | +        return parse_array(item, value, ep);
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +    if (*value == '{')
 | 
											
												
													
														|  | 
 |  | +    {
 | 
											
												
													
														|  | 
 |  | +        return parse_object(item, value, ep);
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    *ep=value;return 0;	/* failure. */
 | 
											
												
													
														|  |  }
 |  |  }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  /* Render a value to text. */
 |  |  /* Render a value to text. */
 |