From 4fd287655a72b9aea14cdac715ad5b90ed082ed2 Mon Sep 17 00:00:00 2001 From: Raghuram Subramani Date: Sun, 19 Jun 2022 19:47:51 +0530 Subject: add circuitpython code --- circuitpython/shared/runtime/stdout_helpers.c | 36 +++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 circuitpython/shared/runtime/stdout_helpers.c (limited to 'circuitpython/shared/runtime/stdout_helpers.c') diff --git a/circuitpython/shared/runtime/stdout_helpers.c b/circuitpython/shared/runtime/stdout_helpers.c new file mode 100644 index 0000000..500b974 --- /dev/null +++ b/circuitpython/shared/runtime/stdout_helpers.c @@ -0,0 +1,36 @@ +#include +#include +#include "py/mpconfig.h" +#include "py/mphal.h" + +/* + * Extra stdout functions + * These can be either optimized for a particular port, or reference + * implementation below can be used. + */ + +// Send "cooked" string of given length, where every occurrence of +// LF character is replaced with CR LF. +void mp_hal_stdout_tx_strn_cooked(const char *str, size_t len) { + bool last_cr = false; + while (len > 0) { + size_t i = 0; + if (str[0] == '\n' && !last_cr) { + mp_hal_stdout_tx_strn("\r", 1); + i = 1; + } + // Lump all characters on the next line together. + while ((last_cr || str[i] != '\n') && i < len) { + last_cr = str[i] == '\r'; + i++; + } + mp_hal_stdout_tx_strn(str, i); + str = &str[i]; + len -= i; + } +} + +// Send zero-terminated string +void mp_hal_stdout_tx_str(const char *str) { + mp_hal_stdout_tx_strn(str, strlen(str)); +} -- cgit v1.2.3