X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=internals%2F_PDCLIB_int.h;h=9ff9e69e321b3a1809747449bed85d697984e1ed;hb=1d4e8006a01beb9e40b23fb8b58283fcc46c0757;hp=64d921967de5465ce795da8beabfcf10ebe1f924;hpb=0e35e82c5e9a0804864839e8fc0e985b1ae41f07;p=pdclib.old diff --git a/internals/_PDCLIB_int.h b/internals/_PDCLIB_int.h index 64d9219..9ff9e69 100644 --- a/internals/_PDCLIB_int.h +++ b/internals/_PDCLIB_int.h @@ -325,29 +325,6 @@ extern int _PDCLIB_errno; */ int * _PDCLIB_errno_func( void ) _PDCLIB_nothrow; -/* -------------------------------------------------------------------------- */ -/* lookup tables */ -/* -------------------------------------------------------------------------- */ - -#define _PDCLIB_CTYPE_ALPHA 1 -#define _PDCLIB_CTYPE_BLANK 2 -#define _PDCLIB_CTYPE_CNTRL 4 -#define _PDCLIB_CTYPE_GRAPH 8 -#define _PDCLIB_CTYPE_PUNCT 16 -#define _PDCLIB_CTYPE_SPACE 32 -#define _PDCLIB_CTYPE_LOWER 64 -#define _PDCLIB_CTYPE_UPPER 128 -#define _PDCLIB_CTYPE_DIGIT 256 -#define _PDCLIB_CTYPE_XDIGT 512 - -struct _PDCLIB_ctype_t -{ - _PDCLIB_uint16_t flags; - unsigned char upper; - unsigned char lower; - unsigned char collation; -}; - /* -------------------------------------------------------------------------- */ /* locale / wchar / uchar */ /* -------------------------------------------------------------------------- */ @@ -371,22 +348,31 @@ typedef struct _PDCLIB_mbstate { char _StC [124]; }; - union { - /* c16/related functions: Surrogate storage - * - * If zero, no surrogate pending. If nonzero, surrogate. - */ - _PDCLIB_uint16_t _Surrogate; - - /* Reserved for potential mbtoutf8/etc functions */ - unsigned char _U8[4]; - }; + /* c16/related functions: Surrogate storage + * + * If zero, no surrogate pending. If nonzero, surrogate. + */ + _PDCLIB_uint16_t _Surrogate; + + /* In cases where the underlying codec is capable of regurgitating a + * character without consuming any extra input (e.g. a surrogate pair in a + * UCS-4 to UTF-16 conversion) then these fields are used to track that + * state. In particular, they are used to buffer/fake the input for mbrtowc + * and similar functions. + * + * See _PDCLIB_encoding.h for values of _PendState and the resultant value + * in _PendChar. + */ + unsigned char _PendState; + char _PendChar; } _PDCLIB_mbstate_t; -typedef struct _PDCLIB_charcodec _PDCLIB_charcodec_t; -typedef struct _PDCLIB_locale _PDCLIB_locale_t; +typedef struct _PDCLIB_charcodec *_PDCLIB_charcodec_t; +typedef struct _PDCLIB_locale *_PDCLIB_locale_t; typedef struct lconv _PDCLIB_lconv_t; +_PDCLIB_size_t _PDCLIB_mb_cur_max( void ); + /* -------------------------------------------------------------------------- */ /* stdio */ /* -------------------------------------------------------------------------- */