@@ -88,9 +88,11 @@ FileHandle::~FileHandle() {
88
88
#if DEVICE_SERIAL
89
89
extern int stdio_uart_inited;
90
90
extern serial_t stdio_uart;
91
+ #ifdef MBED_CONF_CORE_STDIO_CONVERT_NEWLINES
91
92
static char stdio_in_prev;
92
93
static char stdio_out_prev;
93
94
#endif
95
+ #endif
94
96
95
97
static void init_serial () {
96
98
#if DEVICE_SERIAL
@@ -228,13 +230,19 @@ extern "C" int PREFIX(_write)(FILEHANDLE fh, const unsigned char *buffer, unsign
228
230
if (fh < 3 ) {
229
231
#if DEVICE_SERIAL
230
232
if (!stdio_uart_inited) init_serial ();
233
+ #ifdef MBED_CONF_CORE_STDIO_CONVERT_NEWLINES
231
234
for (unsigned int i = 0 ; i < length; i++) {
232
235
if (buffer[i] == ' \n ' && stdio_out_prev != ' \r ' ) {
233
236
serial_putc (&stdio_uart, ' \r ' );
234
237
}
235
238
serial_putc (&stdio_uart, buffer[i]);
236
239
stdio_out_prev = buffer[i];
237
240
}
241
+ #else
242
+ for (unsigned int i = 0 ; i < length; i++) {
243
+ serial_putc (&stdio_uart, buffer[i]);
244
+ }
245
+ #endif
238
246
#endif
239
247
n = length;
240
248
} else {
@@ -260,6 +268,7 @@ extern "C" int PREFIX(_read)(FILEHANDLE fh, unsigned char *buffer, unsigned int
260
268
// only read a character at a time from stdin
261
269
#if DEVICE_SERIAL
262
270
if (!stdio_uart_inited) init_serial ();
271
+ #ifdef MBED_CONF_CORE_STDIO_CONVERT_NEWLINES
263
272
while (true ) {
264
273
char c = serial_getc (&stdio_uart);
265
274
if ((c == ' \r ' && stdio_in_prev != ' \n ' ) ||
@@ -278,6 +287,9 @@ extern "C" int PREFIX(_read)(FILEHANDLE fh, unsigned char *buffer, unsigned int
278
287
break ;
279
288
}
280
289
}
290
+ #else
291
+ *buffer = serial_getc (&stdio_uart);
292
+ #endif
281
293
#endif
282
294
n = 1 ;
283
295
} else {
0 commit comments