X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=includes%2Fuchar.h;h=97210ca61843ef62cbadbc25a82c7c47f0b2f7d5;hb=3862b03514c94f37966f61693619e6483ead6045;hp=d93d50ce45436ef96fe98f00033d69cf8a660ff0;hpb=a12115be626cb08652930df1881ec63aa102c3cb;p=pdclib.old diff --git a/includes/uchar.h b/includes/uchar.h index d93d50c..97210ca 100644 --- a/includes/uchar.h +++ b/includes/uchar.h @@ -7,7 +7,7 @@ #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 @@ -22,7 +22,7 @@ typedef _PDCLIB_size_t size_t; #ifndef _PDCLIB_MBSTATE_T_DEFINED #define _PDCLIB_MBSTATE_T_DEFINED _PDCLIB_MBSTATE_T_DEFINED -typedef struct _PDCLIB_mbstate_t mbstate_t; +typedef _PDCLIB_mbstate_t mbstate_t; #endif #ifndef __cplusplus @@ -37,4 +37,57 @@ typedef _PDCLIB_char32_t char32_t; #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