aboutsummaryrefslogtreecommitdiff
path: root/newlib/libc/stdlib/wctob.c
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/stdlib/wctob.c')
-rw-r--r--newlib/libc/stdlib/wctob.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/newlib/libc/stdlib/wctob.c b/newlib/libc/stdlib/wctob.c
new file mode 100644
index 0000000..4288c54
--- /dev/null
+++ b/newlib/libc/stdlib/wctob.c
@@ -0,0 +1,25 @@
+#include <wchar.h>
+#include <wchar.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <reent.h>
+
+int
+wctob (wint_t c)
+{
+ mbstate_t mbs;
+ int retval = 0;
+ unsigned char pwc;
+
+ /* Put mbs in initial state. */
+ memset (&mbs, '\0', sizeof (mbs));
+
+ _REENT_CHECK_MISC(_REENT);
+
+ retval = _wctomb_r (_REENT, &pwc, c, &mbs);
+
+ if (c == EOF || retval != 1)
+ return WEOF;
+ else
+ return (int)pwc;
+}