X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=opt%2Fbasecodecs%2F_PDCLIB_utf8.c;h=22fa808c963fa33b4a1bfbd71565bfc141c5bc84;hb=798f3aed35f8ee4102804620de84e947bbd9b8b8;hp=2b3f4f6c5fe42465df0f4c6e3cda8cc5568a346c;hpb=ed01ab8d9fcc47f6a4089ef72a73ef7a084d1ed3;p=pdclib.old diff --git a/opt/basecodecs/_PDCLIB_utf8.c b/opt/basecodecs/_PDCLIB_utf8.c index 2b3f4f6..22fa808 100644 --- a/opt/basecodecs/_PDCLIB_utf8.c +++ b/opt/basecodecs/_PDCLIB_utf8.c @@ -17,6 +17,9 @@ * _St32[1] is the character accumulated so far */ +static bool utf8_mbsinit( const mbstate_t *p_s ) +{ return p_s->_StUC[0] == 0; } + enum { DecStart = 0, @@ -52,6 +55,7 @@ end_conversion: \ _PDCLIB_UNDEFINED(accum); \ state = DecStart; \ } while(0) + #define CHECK_CONTINUATION \ do { if((c & 0xC0) != 0x80) return false; } while(0) @@ -228,9 +232,11 @@ static bool c32toutf8( END_CONVERSION; } -struct _PDCLIB_charcodec _PDCLIB_utf8_codec = { +const struct _PDCLIB_charcodec _PDCLIB_utf8_codec = { + .__mbsinit = utf8_mbsinit, .__mbstoc32s = utf8toc32, .__c32stombs = c32toutf8, + .__mb_max = 4, }; #endif