forked from bblanchon/ArduinoJson
Added setTabSize()
This commit is contained in:
@ -4,7 +4,7 @@ using namespace ArduinoJson::Generator;
|
||||
|
||||
void IndentedPrint::indent()
|
||||
{
|
||||
if (level<127)
|
||||
if (level < MAX_LEVEL)
|
||||
level++;
|
||||
}
|
||||
|
||||
@ -14,6 +14,12 @@ void IndentedPrint::unindent()
|
||||
level--;
|
||||
}
|
||||
|
||||
void IndentedPrint::setTabSize(uint8_t n)
|
||||
{
|
||||
if (n < MAX_TAB_SIZE)
|
||||
tabSize = n;
|
||||
}
|
||||
|
||||
size_t IndentedPrint::write(uint8_t c)
|
||||
{
|
||||
size_t n = 0;
|
||||
@ -32,7 +38,7 @@ size_t IndentedPrint::writeTabs()
|
||||
{
|
||||
size_t n = 0;
|
||||
|
||||
for (int i = 0; i<level; i++)
|
||||
for (int i = 0; i < level*tabSize; i++)
|
||||
n += sink.write(' ');
|
||||
|
||||
return n;
|
||||
|
@ -19,6 +19,7 @@ namespace ArduinoJson
|
||||
: sink(p)
|
||||
{
|
||||
level = 0;
|
||||
tabSize = 1;
|
||||
isNewLine = true;
|
||||
}
|
||||
|
||||
@ -26,13 +27,18 @@ namespace ArduinoJson
|
||||
|
||||
void indent();
|
||||
void unindent();
|
||||
void setTabSize(uint8_t n);
|
||||
|
||||
private:
|
||||
Print& sink;
|
||||
uint8_t level : 7;
|
||||
uint8_t level : 4;
|
||||
uint8_t tabSize : 3;
|
||||
bool isNewLine : 1;
|
||||
|
||||
size_t writeTabs();
|
||||
|
||||
const int MAX_LEVEL = 15; // because it's only 4 bits
|
||||
const int MAX_TAB_SIZE = 7; // because it's only 3 bits
|
||||
};
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user