From 157f8c93ad6c9723c8f708d3c56e8f9fcf761773 Mon Sep 17 00:00:00 2001
From: Kaspar Schleiser <kaspar@schleiser.de>
Date: Thu, 19 Nov 2015 12:54:09 +0100
Subject: [PATCH] sys: fmt: add workaround for AVR libc's missing write()

---
 sys/fmt/fmt.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/sys/fmt/fmt.c b/sys/fmt/fmt.c
index 4ddc63f4b9..803b1e0d63 100644
--- a/sys/fmt/fmt.c
+++ b/sys/fmt/fmt.c
@@ -137,6 +137,10 @@ uint32_t scn_u32_dec(const char *str, size_t n)
 
 void print(const char *s, size_t n)
 {
+#ifdef __WITH_AVRLIBC__
+    /* AVR's libc doesn't offer write(), so use fwrite() instead */
+    fwrite(s, n, 1, stdout);
+#else
     while (n > 0) {
         ssize_t written = write(STDOUT_FILENO, s, n);
         if (written < 0) {
@@ -145,6 +149,7 @@ void print(const char *s, size_t n)
         n -= written;
         s += written;
     }
+#endif /* __WITH_AVRLIBC__ */
 }
 
 void print_u32_dec(uint32_t val)
-- 
GitLab