#ifndef _PDCLIB_UCHAR_H
#define _PDCLIB_UCHAR_H
-#include <_PDCLIB_encoding.h>
+#include <_PDCLIB_int.h>
_PDCLIB_BEGIN_EXTERN_C
/* This is mostly a placeholder. for now. This header will be completed by the
#endif
#endif
-#endif
\ No newline at end of file
+size_t mbrtoc16(
+ char16_t *_PDCLIB_restrict pc16,
+ const char *_PDCLIB_restrict s,
+ size_t n,
+ mbstate_t *_PDCLIB_restrict ps);
+
+size_t c16rtomb(
+ char *_PDCLIB_restrict s,
+ char16_t c16,
+ mbstate_t *_PDCLIB_restrict ps);
+
+size_t mbrtoc32(
+ char32_t *_PDCLIB_restrict pc32,
+ const char *_PDCLIB_restrict s,
+ size_t n,
+ mbstate_t *_PDCLIB_restrict ps);
+
+size_t c32rtomb(
+ char *_PDCLIB_restrict s,
+ char32_t c32,
+ mbstate_t *_PDCLIB_restrict ps);
+
+#if defined(_PDCLIB_EXTENSIONS)
+/* Analogous to strlen/wcslen */
+size_t _PDCLIB_c16slen(const char16_t * str);
+size_t _PDCLIB_c32slen(const char32_t * str);
+
+/* String generalizations of the above functions */
+size_t _PDCLIB_mbsrtoc16s(
+ char16_t *_PDCLIB_restrict dst,
+ const char **_PDCLIB_restrict src,
+ size_t len,
+ mbstate_t *_PDCLIB_restrict ps);
+
+size_t _PDCLIB_mbsrtoc32s(
+ char32_t *_PDCLIB_restrict dst,
+ const char **_PDCLIB_restrict src,
+ size_t len,
+ mbstate_t *_PDCLIB_restrict ps);
+
+size_t _PDCLIB_c16srtombs(
+ char *_PDCLIB_restrict dst,
+ const char16_t **_PDCLIB_restrict src,
+ size_t len,
+ mbstate_t *_PDCLIB_restrict ps);
+
+size_t _PDCLIB_c32srtombs(
+ char *_PDCLIB_restrict dst,
+ const char32_t **_PDCLIB_restrict src,
+ size_t len,
+ mbstate_t *_PDCLIB_restrict ps);
+#endif
+
+#endif