]> pd.if.org Git - pdclib/blobdiff - internals/_PDCLIB_encoding.h
Pointer typedef resulted in non-const structure where const was intended.
[pdclib] / internals / _PDCLIB_encoding.h
index 4d17123edb1dc20f64c9fc9e42b9ef3b51ac97f4..10f1140c3e73527670d08ab20c246a4ce9572d27 100644 (file)
@@ -75,18 +75,18 @@ static inline _PDCLIB_size_t _PDCLIB_c32rtoc16(
         return 1;
     } else {
         // Supplementary plane character
-        *out = 0xD800 | (*in & 0x3FF);
+        *out = 0xD800 | (*in >> 10);
         if(bufsize >= 2) {
-            out[1] = 0xDC00 | (*in >> 10);
+            out[1] = 0xDC00 | (*in & 0x3FF);
             return 2;
         } else {
-            ps->_Surrogate = 0xDC00 | (*in >> 10);
+            ps->_Surrogate = 0xDC00 | (*in & 0x3FF);
             return 1;
         }
     }
 }
 
-struct _PDCLIB_charcodec {
+struct _PDCLIB_charcodec_t {
     /* Reads at most *_P_insz code units from *_P_inbuf and writes the result 
      * into *_P_outbuf, writing at most *_P_outsz code units. Updates 
      * *_P_outbuf, *_P_outsz, *_P_inbuf, *_P_outsz with the resulting state
@@ -99,6 +99,9 @@ struct _PDCLIB_charcodec {
      * encountered), else return false.
      */
 
+    /* mbsinit. Mandatory. */
+    _PDCLIB_bool (*__mbsinit)(const _PDCLIB_mbstate_t *_P_ps);
+
     /* UCS-4 variants. Mandatory. */
 
     _PDCLIB_bool (*__mbstoc32s)(
@@ -189,10 +192,14 @@ _PDCLIB_locale_t     _PDCLIB_restrict   l);
 
 #if _PDCLIB_WCHAR_ENCODING == _PDCLIB_WCHAR_ENCODING_UTF16
     #define _PDCLIB_mbrtocwc_l mbrtoc16_l
+    #define _PDCLIB_mbrtocwc   mbrtoc16
     #define _PDCLIB_cwcrtomb_l c16rtomb_l
+    #define _PDCLIB_cwcrtomb   c16rtomb
 #elif _PDCLIB_WCHAR_ENCODING == _PDCLIB_WCHAR_ENCODING_UCS4
     #define _PDCLIB_mbrtocwc_l mbrtoc32_l
+    #define _PDCLIB_mbrtocwc   mbrtoc32
     #define _PDCLIB_cwcrtomb_l c32rtomb_l
+    #define _PDCLIB_cwcrtomb   c32rtomb
 #else
     #error _PDCLIB_WCHAR_ENCODING not defined correctly
     #error Define to one of _PDCLIB_WCHAR_ENCODING_UCS4 or _PDCLIB_WCHAR_ENCODING_UTF16