From 16cb43460f893f85f93630988d98349e5679b9dc Mon Sep 17 00:00:00 2001 From: GyverLibs Date: Wed, 27 Mar 2024 21:02:15 +0300 Subject: [PATCH] upd --- README.md | 3 +++ keywords.txt | 1 + src/utils/string.h | 27 +++++++++++++++++++-------- 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 5562c1f..3fb5ee6 100644 --- a/README.md +++ b/README.md @@ -166,6 +166,9 @@ String s; // доступ к строке void clear(); // очистить строку bool reserve(uint16_t res); // зарезервировать строку +// делать escape символов при прибавлении через оператор = (умолч. вкл, true) +void escapeDefault(bool esc); + // прибавить gson::string. Будет добавлена запятая string& add(string& str); diff --git a/keywords.txt b/keywords.txt index 81cef59..d862090 100644 --- a/keywords.txt +++ b/keywords.txt @@ -67,6 +67,7 @@ endArr KEYWORD2 quotes KEYWORD2 comma KEYWORD2 colon KEYWORD2 +escapeDefault KEYWORD2 ####################################### # Constants (LITERAL1) diff --git a/src/utils/string.h b/src/utils/string.h index 3024bd4..987e52c 100644 --- a/src/utils/string.h +++ b/src/utils/string.h @@ -153,31 +153,31 @@ class string : public Printable { // добавить строку (строка любого типа) void operator=(const char* value) { - addStringEsc(value); + _addString(value); } void operator+=(const char* value) { - addStringEsc(value); + _addString(value); } void operator=(const __FlashStringHelper* value) { - addStringEsc(value); + _addString(value); } void operator+=(const __FlashStringHelper* value) { - addStringEsc(value); + _addString(value); } void operator=(const String& value) { - addStringEsc(value); + _addString(value); } void operator+=(const String& value) { - addStringEsc(value); + _addString(value); } void operator=(const su::Text& value) { - addStringEsc(value); + _addString(value); } void operator+=(const su::Text& value) { - addStringEsc(value); + _addString(value); } // =============== BOOL =============== @@ -426,6 +426,11 @@ class string : public Printable { s += ':'; } + // делать escape символов при прибавлении через оператор = (умолч. вкл, true) + void escapeDefault(bool esc) { + _esc = esc; + } + // =============== PRIVATE =============== protected: // вызывается перед запятой (после добавления значения) @@ -464,6 +469,8 @@ class string : public Printable { } private: + bool _esc = true; + void _addRaw(const su::Text& text, bool quot, bool esc) { if (quot) quotes(); if (esc) { @@ -483,6 +490,10 @@ class string : public Printable { if (sym) s += sym; } } + void _addString(const su::Text& text) { + _addRaw(text, true, _esc); + comma(); + } }; } // namespace gson \ No newline at end of file