X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=includes%2Fuchar.h;h=97210ca61843ef62cbadbc25a82c7c47f0b2f7d5;hb=2d43dbb1c70aee6c3474c254c0a2302ef39c0c7a;hp=3b34c921dd4371124491e6c5596da7e81639fdaa;hpb=6c66631ea1ddc3110848294ea929d7761d6c9ec2;p=pdclib.old diff --git a/includes/uchar.h b/includes/uchar.h index 3b34c92..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 @@ -35,5 +35,59 @@ typedef _PDCLIB_char16_t char16_t; #define _PDCLIB_CHAR32_T_DEFINED _PDCLIB_CHAR32_T_DEFINED typedef _PDCLIB_char32_t char32_t; #endif +#endif + +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); -#endif \ No newline at end of file +/* 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