From 69c33625ebf4e66de6aa4577044efb36c2918a20 Mon Sep 17 00:00:00 2001 From: Christopher Haster Date: Tue, 7 Jun 2016 09:43:40 -0500 Subject: [PATCH] Added newline conversion for stdout stdout converts the following character sequences: \n -> \r\n \r\n -> \r\n \r -> \r \n\r -> \n\r For original behaviour, a serial object can be instantiated explicitly --- hal/common/retarget.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hal/common/retarget.cpp b/hal/common/retarget.cpp index 78cab09f57..35695770ca 100644 --- a/hal/common/retarget.cpp +++ b/hal/common/retarget.cpp @@ -88,6 +88,7 @@ FileHandle::~FileHandle() { #if DEVICE_SERIAL extern int stdio_uart_inited; extern serial_t stdio_uart; +static char stdio_prev; #endif static void init_serial() { @@ -227,7 +228,11 @@ extern "C" int PREFIX(_write)(FILEHANDLE fh, const unsigned char *buffer, unsign #if DEVICE_SERIAL if (!stdio_uart_inited) init_serial(); for (unsigned int i = 0; i < length; i++) { + if (buffer[i] == '\n' && stdio_prev != '\r') { + serial_putc(&stdio_uart, '\r'); + } serial_putc(&stdio_uart, buffer[i]); + stdio_prev = buffer[i]; } #endif n = length;