Index: fusl/src/multibyte/mbrtoc32.c |
diff --git a/fusl/src/multibyte/mbrtoc32.c b/fusl/src/multibyte/mbrtoc32.c |
new file mode 100644 |
index 0000000000000000000000000000000000000000..9b6b2367398e426815dc8f0390daae3c6957779d |
--- /dev/null |
+++ b/fusl/src/multibyte/mbrtoc32.c |
@@ -0,0 +1,13 @@ |
+#include <uchar.h> |
+#include <wchar.h> |
+ |
+size_t mbrtoc32(char32_t *restrict pc32, const char *restrict s, size_t n, mbstate_t *restrict ps) |
+{ |
+ static unsigned internal_state; |
+ if (!ps) ps = (void *)&internal_state; |
+ if (!s) return mbrtoc32(0, "", 1, ps); |
+ wchar_t wc; |
+ size_t ret = mbrtowc(&wc, s, n, ps); |
+ if (ret <= 4 && pc32) *pc32 = wc; |
+ return ret; |
+} |