diff --git a/cores/arduino/Print.cpp b/cores/arduino/Print.cpp index 1e4c99a65..c240ca0fe 100644 --- a/cores/arduino/Print.cpp +++ b/cores/arduino/Print.cpp @@ -125,7 +125,7 @@ size_t Print::print(const Printable& x) size_t Print::println(void) { - return write("\r\n"); + return write(line_ending); } size_t Print::println(const String &s) @@ -198,6 +198,10 @@ size_t Print::println(const Printable& x) return n; } +void Print::set_line_ending(const char * ending){ + line_ending = ending; +} + // Private Methods ///////////////////////////////////////////////////////////// size_t Print::printNumber(unsigned long n, uint8_t base) diff --git a/cores/arduino/Print.h b/cores/arduino/Print.h index 058a2abbd..463753730 100644 --- a/cores/arduino/Print.h +++ b/cores/arduino/Print.h @@ -40,11 +40,14 @@ class Print int write_error; size_t printNumber(unsigned long, uint8_t); size_t printFloat(double, uint8_t); + const char * line_ending; protected: void setWriteError(int err = 1) { write_error = err; } public: - Print() : write_error(0) {} - + Print() : write_error(0) { + line_ending = "\r\n"; + } + int getWriteError() { return write_error; } void clearWriteError() { setWriteError(0); } @@ -87,6 +90,8 @@ class Print size_t println(const Printable&); size_t println(void); + void set_line_ending(const char * ending); + virtual void flush() { /* Empty implementation for backward compatibility */ } };