Skip to content

Commit

Permalink
upd
Browse files Browse the repository at this point in the history
  • Loading branch information
GyverLibs committed Mar 27, 2024
1 parent 89c0704 commit 16cb434
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 8 deletions.
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
1 change: 1 addition & 0 deletions keywords.txt
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ endArr KEYWORD2
quotes KEYWORD2
comma KEYWORD2
colon KEYWORD2
escapeDefault KEYWORD2

#######################################
# Constants (LITERAL1)
Expand Down
27 changes: 19 additions & 8 deletions src/utils/string.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 ===============
Expand Down Expand Up @@ -426,6 +426,11 @@ class string : public Printable {
s += ':';
}

// делать escape символов при прибавлении через оператор = (умолч. вкл, true)
void escapeDefault(bool esc) {
_esc = esc;
}

// =============== PRIVATE ===============
protected:
// вызывается перед запятой (после добавления значения)
Expand Down Expand Up @@ -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) {
Expand All @@ -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

0 comments on commit 16cb434

Please sign in to comment.