mirror of https://github.com/ARMmbed/mbed-os.git
Added config option for newline conversion
parent
2330dcc49a
commit
1480c231e9
|
|
@ -88,9 +88,11 @@ FileHandle::~FileHandle() {
|
|||
#if DEVICE_SERIAL
|
||||
extern int stdio_uart_inited;
|
||||
extern serial_t stdio_uart;
|
||||
#ifdef MBED_CONF_CORE_STDIO_CONVERT_NEWLINES
|
||||
static char stdio_in_prev;
|
||||
static char stdio_out_prev;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
static void init_serial() {
|
||||
#if DEVICE_SERIAL
|
||||
|
|
@ -228,6 +230,7 @@ extern "C" int PREFIX(_write)(FILEHANDLE fh, const unsigned char *buffer, unsign
|
|||
if (fh < 3) {
|
||||
#if DEVICE_SERIAL
|
||||
if (!stdio_uart_inited) init_serial();
|
||||
#ifdef MBED_CONF_CORE_STDIO_CONVERT_NEWLINES
|
||||
for (unsigned int i = 0; i < length; i++) {
|
||||
if (buffer[i] == '\n' && stdio_out_prev != '\r') {
|
||||
serial_putc(&stdio_uart, '\r');
|
||||
|
|
@ -235,6 +238,11 @@ extern "C" int PREFIX(_write)(FILEHANDLE fh, const unsigned char *buffer, unsign
|
|||
serial_putc(&stdio_uart, buffer[i]);
|
||||
stdio_out_prev = buffer[i];
|
||||
}
|
||||
#else
|
||||
for (unsigned int i = 0; i < length; i++) {
|
||||
serial_putc(&stdio_uart, buffer[i]);
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
n = length;
|
||||
} else {
|
||||
|
|
@ -260,6 +268,7 @@ extern "C" int PREFIX(_read)(FILEHANDLE fh, unsigned char *buffer, unsigned int
|
|||
// only read a character at a time from stdin
|
||||
#if DEVICE_SERIAL
|
||||
if (!stdio_uart_inited) init_serial();
|
||||
#ifdef MBED_CONF_CORE_STDIO_CONVERT_NEWLINES
|
||||
while (true) {
|
||||
char c = serial_getc(&stdio_uart);
|
||||
if ((c == '\r' && stdio_in_prev != '\n') ||
|
||||
|
|
@ -278,6 +287,9 @@ extern "C" int PREFIX(_read)(FILEHANDLE fh, unsigned char *buffer, unsigned int
|
|||
break;
|
||||
}
|
||||
}
|
||||
#else
|
||||
*buffer = serial_getc(&stdio_uart);
|
||||
#endif
|
||||
#endif
|
||||
n = 1;
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"name": "core",
|
||||
"config": {
|
||||
"stdio-convert-newlines": {
|
||||
"help": "Enable conversion to standard newlines on stdin/stdout"
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue