mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-11-01 08:48:30 +01:00 
			
		
		
		
	Test an object with comma, quote and column in the value
This commit is contained in:
		| @@ -11,33 +11,50 @@ size_t IndentedPrintDecorator::write(uint8_t c) | ||||
|     { | ||||
|     case '{': | ||||
|         indent++; | ||||
|         emptyBlock = true; | ||||
|         previousChar = c; | ||||
|         return sink.write(c); | ||||
|  | ||||
|     case '}': | ||||
|         indent--; | ||||
|  | ||||
|         if (emptyBlock) | ||||
|         if (previousChar == '{') | ||||
|         { | ||||
|             previousChar = c; | ||||
|             return sink.write(c); | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|             previousChar = c; | ||||
|             return writeln() + sink.write(c); | ||||
|         } | ||||
|          | ||||
|     case ',': | ||||
|         previousChar = c; | ||||
|         if (isInAString) | ||||
|         { | ||||
|             return sink.write(c); | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|             return writeln() + sink.write(c); | ||||
|             return sink.write(c) + writeln(); | ||||
|         } | ||||
|  | ||||
|     case ',': | ||||
|         return sink.write(c) + writeln(); | ||||
|     case '\"': | ||||
|         if (previousChar != '\\') | ||||
|         { | ||||
|             isInAString = !isInAString; | ||||
|         } | ||||
|  | ||||
|     default: | ||||
|  | ||||
|         if (emptyBlock) | ||||
|         if (previousChar == '{') | ||||
|         { | ||||
|             emptyBlock = false; | ||||
|             previousChar = c; | ||||
|             return writeln() + sink.write(c); | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|             previousChar = c; | ||||
|             return sink.write(c); | ||||
|         } | ||||
|     } | ||||
|   | ||||
| @@ -13,16 +13,19 @@ class IndentedPrintDecorator : public Print | ||||
| public: | ||||
|  | ||||
|     IndentedPrintDecorator(Print& p) | ||||
|         : indent(0), sink(p), emptyBlock(false) | ||||
|         : indent(0), sink(p) | ||||
|     { | ||||
|         previousChar = 0; | ||||
|         isInAString = false; | ||||
|     } | ||||
|  | ||||
|     virtual size_t write(uint8_t); | ||||
|  | ||||
| private: | ||||
|     int indent; | ||||
|     bool emptyBlock; | ||||
|     uint8_t previousChar; | ||||
|     Print& sink; | ||||
|     bool isInAString; | ||||
|  | ||||
|     size_t writeln(); | ||||
| }; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user