diff --git a/cores/esp8266/Print.cpp b/cores/esp8266/Print.cpp index bbe2861ba..f6fd2ec74 100644 --- a/cores/esp8266/Print.cpp +++ b/cores/esp8266/Print.cpp @@ -181,12 +181,6 @@ size_t Print::print(double n, int digits) { return printFloat(n, digits); } -size_t Print::println(const __FlashStringHelper *ifsh) { - size_t n = print(ifsh); - n += println(); - return n; -} - size_t Print::print(const Printable& x) { return x.printTo(*this); } @@ -195,76 +189,56 @@ size_t Print::println(void) { return print("\r\n"); } +size_t Print::println(const __FlashStringHelper* ifsh) { + return _println(ifsh); +} + size_t Print::println(const String &s) { - size_t n = print(s); - n += println(); - return n; + return _println(s); } size_t Print::println(const char c[]) { - size_t n = print(c); - n += println(); - return n; + return _println(c); } size_t Print::println(char c) { - size_t n = print(c); - n += println(); - return n; + return _println(c); } size_t Print::println(unsigned char b, int base) { - size_t n = print(b, base); - n += println(); - return n; + return _println(b, base); } size_t Print::println(int num, int base) { - size_t n = print(num, base); - n += println(); - return n; + return _println(num, base); } size_t Print::println(unsigned int num, int base) { - size_t n = print(num, base); - n += println(); - return n; + return _println(num, base); } size_t Print::println(long num, int base) { - size_t n = print(num, base); - n += println(); - return n; + return _println(num, base); } size_t Print::println(unsigned long num, int base) { - size_t n = print(num, base); - n += println(); - return n; + return _println(num, base); } size_t Print::println(long long num, int base) { - size_t n = print(num, base); - n += println(); - return n; + return _println(num, base); } size_t Print::println(unsigned long long num, int base) { - size_t n = print(num, base); - n += println(); - return n; + return _println(num, base); } size_t Print::println(double num, int digits) { - size_t n = print(num, digits); - n += println(); - return n; + return _println(num, digits); } size_t Print::println(const Printable& x) { - size_t n = print(x); - n += println(); - return n; + return _println(x); } // Private Methods ///////////////////////////////////////////////////////////// diff --git a/cores/esp8266/Print.h b/cores/esp8266/Print.h index 218f58d26..edfd7f7d6 100644 --- a/cores/esp8266/Print.h +++ b/cores/esp8266/Print.h @@ -39,6 +39,14 @@ class Print { size_t printNumber(unsigned long, uint8_t); size_t printNumber(unsigned long long, uint8_t); size_t printFloat(double, uint8_t); + + template inline size_t _println(T v, P... args) + { + size_t n = print(v, args...); + n += println(); + return n; + }; + protected: void setWriteError(int err = 1) { write_error = err;