|  | @@ -818,15 +818,25 @@ static cJSON_bool print_string_ptr(const unsigned char * const input, printbuffe
 | 
	
		
			
				|  |  |      /* set "flag" to 1 if something needs to be escaped */
 | 
	
		
			
				|  |  |      for (input_pointer = input; *input_pointer; input_pointer++)
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  | -        if (strchr("\"\\\b\f\n\r\t", *input_pointer))
 | 
	
		
			
				|  |  | -        {
 | 
	
		
			
				|  |  | -            /* one character escape sequence */
 | 
	
		
			
				|  |  | -            escape_characters++;
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        else if (*input_pointer < 32)
 | 
	
		
			
				|  |  | -        {
 | 
	
		
			
				|  |  | -            /* UTF-16 escape sequence uXXXX */
 | 
	
		
			
				|  |  | -            escape_characters += 5;
 | 
	
		
			
				|  |  | +        switch (*input_pointer)
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            case '\"':
 | 
	
		
			
				|  |  | +            case '\\':
 | 
	
		
			
				|  |  | +            case '\b':
 | 
	
		
			
				|  |  | +            case '\f':
 | 
	
		
			
				|  |  | +            case '\n':
 | 
	
		
			
				|  |  | +            case '\r':
 | 
	
		
			
				|  |  | +            case '\t':
 | 
	
		
			
				|  |  | +                /* one character escape sequence */
 | 
	
		
			
				|  |  | +                escape_characters++;
 | 
	
		
			
				|  |  | +                break;
 | 
	
		
			
				|  |  | +            default:
 | 
	
		
			
				|  |  | +                if (*input_pointer < 32)
 | 
	
		
			
				|  |  | +                {
 | 
	
		
			
				|  |  | +                    /* UTF-16 escape sequence uXXXX */
 | 
	
		
			
				|  |  | +                    escape_characters += 5;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                break;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      output_length = (size_t)(input_pointer - input) + escape_characters;
 |