[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[tyndur-devel] [PATCH 4/5] libc: fputws()



+ libc: fputws()

Signed-off-by: Antoine Kaufmann <toni@xxxxxxxxxx>
---
 src/modules/include/wchar.h      |   10 ++++++++++
 src/modules/lib/stdlibc/wstdio.c |   20 ++++++++++++++++++++
 2 files changed, 30 insertions(+), 0 deletions(-)

diff --git a/src/modules/include/wchar.h b/src/modules/include/wchar.h
index a6c0a32..3870f9d 100644
--- a/src/modules/include/wchar.h
+++ b/src/modules/include/wchar.h
@@ -586,5 +586,15 @@ wint_t fputwc(wchar_t wc, FILE* stream);
  */
 wint_t putwchar(wchar_t wc);
 
+/**
+ * Einen String aus breiten Zeichen in den angegebenen Stream schreiben.
+ *
+ * @param wcs    Zeiger auf den String aus breiten Zeichen
+ * @param stream Die geoeffnete Datei
+ *
+ * @return Bei Erfolg > 0, im Fehlerfall -1
+ */
+int fputws(const wchar_t* wcs, FILE* stream);
+
 #endif //ifndef _WCHAR_H_
 
diff --git a/src/modules/lib/stdlibc/wstdio.c b/src/modules/lib/stdlibc/wstdio.c
index 85353fb..34a6aa1 100644
--- a/src/modules/lib/stdlibc/wstdio.c
+++ b/src/modules/lib/stdlibc/wstdio.c
@@ -118,3 +118,23 @@ wint_t putwchar(wchar_t wc)
     return fputwc(wc, stdout);
 }
 
+/**
+ * Einen String aus breiten Zeichen in den angegebenen Stream schreiben. Das
+ * abschliessende L'\0' wird nicht mitgeschrieben.
+ *
+ * @param wcs    Zeiger auf den String aus breiten Zeichen
+ * @param stream Die geoeffnete Datei
+ *
+ * @return Bei Erfolg > 0, im Fehlerfall -1
+ */
+int fputws(const wchar_t* wcs, FILE* stream)
+{
+    while (*wcs) {
+        if (fputwc(*wcs, stream) == WEOF) {
+            return -1;
+        }
+        wcs++;
+    }
+    return 0;
+}
+
-- 
1.6.0.6