IndentedPrint.cpp 523 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #include "IndentedPrint.h"
  2. void IndentedPrint::indent()
  3. {
  4. if (level<127)
  5. level++;
  6. }
  7. void IndentedPrint::unindent()
  8. {
  9. if (level>0)
  10. level--;
  11. }
  12. size_t IndentedPrint::write(uint8_t c)
  13. {
  14. size_t n = 0;
  15. if (isNewLine)
  16. n += writeTabs();
  17. n += sink.write(c);
  18. isNewLine = c == '\n';
  19. return n;
  20. }
  21. size_t IndentedPrint::writeTabs()
  22. {
  23. size_t n = 0;
  24. for (int i = 0; i<level; i++)
  25. n += sink.write(' ');
  26. return n;
  27. }