ArduinoCore-avr icon indicating copy to clipboard operation
ArduinoCore-avr copied to clipboard

[enhancement] let println() set the endline characters

Open atesin opened this issue 3 years ago • 1 comments

hi.... something that set me itchy sometimes is the inability to change the hardcoded \r\n line endings in println()...

additionally with adding an EXTRA BYTE to every println() (maybe not in source code but in printing for sure), there are many consoles and terminal emulators and systems that can perfectly handle just \n (come on... that \r\n thing is from telegraph and teletype writers epoch)....

and would be also easier to code... for example for received strings, a single Stream.readBytesUntil(buffer, '\n') would do the trick, without the need to trim the remaining trailing \r that could complicate things further.... could even add support for other protocols (some uses \r, \0, \xFF ; or other line ending instead of \n)

i know how to do it for myself alone... it would suffice with editing cores/Print.h|cpp and define some macro to println(), that way i could just redefine the macro in my sketch.... but i am really talking about include it in the next release so everyone could enjoy this enhancement natively, not just me

atesin avatar Sep 11 '22 07:09 atesin

i propose these changes, as you will see they are very easy!...

core/arduino/Print.h: line ~36 (in preproc defines, before Print class definition)

#define PRINTLN_NEWLINE "\r\n"

core/arduino/Print.cpp: lines ~126-129

size_t Print::println(void)
{
  return write(PRINTLN_NEWLINE);
}

atesin avatar Sep 13 '22 23:09 atesin