From a6d2a2166560476c9a92473e248cca177743303e Mon Sep 17 00:00:00 2001 From: Rahix <rahix@rahix.de> Date: Wed, 17 Jul 2019 19:30:51 +0200 Subject: [PATCH] fix(pycardium): Properly print line-endings for serial Signed-off-by: Rahix <rahix@rahix.de> --- pycardium/mphalport.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/pycardium/mphalport.c b/pycardium/mphalport.c index b8ae7ec3..fdfb592d 100644 --- a/pycardium/mphalport.c +++ b/pycardium/mphalport.c @@ -44,7 +44,21 @@ int DEBUG_printf(const char *fmt, ...) /* newlib syscall to allow printf to work */ long _write(int fd, const char *buf, size_t cnt) { - epic_uart_write_str(buf, cnt); + /* + * Only print one line at a time. Insert `\r` between lines so + * they are properly displayed on the serial console. + */ + size_t i, last = 0; + for (i = 0; i < cnt; i++) { + if (buf[i] == '\n') { + epic_uart_write_str(&buf[last], i - last); + epic_uart_write_str("\r", 1); + last = i; + } + } + if (last != i) { + epic_uart_write_str(&buf[last], cnt - last); + } return cnt; } -- GitLab