X-Git-Url: https://pd.if.org/git/?p=pdclib;a=blobdiff_plain;f=includes%2Fuchar.h;h=bcf1eacdc932adbb7a5fa63cbde0ac89d2b399e8;hp=97210ca61843ef62cbadbc25a82c7c47f0b2f7d5;hb=d7f375a09a9912bb18ad42f1442fbf64311bfed6;hpb=0bfd3aa28ccec8c35481fe04d1dc82a0f1f522e6 diff --git a/includes/uchar.h b/includes/uchar.h index 97210ca..bcf1eac 100644 --- a/includes/uchar.h +++ b/includes/uchar.h @@ -1,19 +1,16 @@ -/* 7.28 +/* Unicode utilities - This file is part of the Public Domain C Library (PDCLib). - Permission is granted to use, modify, and / or redistribute at will. + This file is part of the Public Domain C Library (PDCLib). + Permission is granted to use, modify, and / or redistribute at will. */ - #ifndef _PDCLIB_UCHAR_H -#define _PDCLIB_UCHAR_H +#define _PDCLIB_UCHAR_H _PDCLIB_UCHAR_H #include <_PDCLIB_int.h> -_PDCLIB_BEGIN_EXTERN_C -/* This is mostly a placeholder. for now. This header will be completed by the - * release of 0.6, but at present merely exposes types needed by the rest of the - * library - */ +#ifdef __cplusplus +extern "C" { +#endif #ifndef _PDCLIB_SIZE_T_DEFINED #define _PDCLIB_SIZE_T_DEFINED _PDCLIB_SIZE_T_DEFINED @@ -26,68 +23,46 @@ typedef _PDCLIB_mbstate_t mbstate_t; #endif #ifndef __cplusplus + +/* These are built-in types in C++ */ + #ifndef _PDCLIB_CHAR16_T_DEFINED #define _PDCLIB_CHAR16_T_DEFINED _PDCLIB_CHAR16_T_DEFINED -typedef _PDCLIB_char16_t char16_t; +typedef _PDCLIB_uint_least16_t char16_t; #endif #ifndef _PDCLIB_CHAR32_T_DEFINED #define _PDCLIB_CHAR32_T_DEFINED _PDCLIB_CHAR32_T_DEFINED -typedef _PDCLIB_char32_t char32_t; +typedef _PDCLIB_uint_least32_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 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 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 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); +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); + +/* 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); + +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