]> pd.if.org Git - pdclib/commitdiff
PDCLIB-2 PDCLIB-12: Move _PDCLIB_mbstate_t to _PDCLIB_encoding.h, the new home for...
authorOwen Shepherd <owen.shepherd@e43.eu>
Sun, 30 Dec 2012 21:43:19 +0000 (21:43 +0000)
committerOwen Shepherd <owen.shepherd@e43.eu>
Sun, 30 Dec 2012 21:43:19 +0000 (21:43 +0000)
includes/wchar.h
internals/_PDCLIB_encoding.h
internals/_PDCLIB_int.h

index 2740d003f64155538044bc2d974a4d17ae605b33..e3d8e4924d548b0c99ac138088015f39cd1b38d3 100644 (file)
@@ -8,6 +8,7 @@
 #ifndef _PDCLIB_WCHAR_H\r
 #define _PDCLIB_WCHAR_H\r
 #include <_PDCLIB_io.h>\r
+#include <_PDCLIB_encoding.h>\r
 _PDCLIB_BEGIN_EXTERN_C\r
 /* This is VASTLY incomplete. Functions being implemented as required by other\r
    portions of the library\r
index 11e2ac5ee27c81e99903d007363dcae4553c5f27..01e60a1916389b0263827bf5d597400ce5ffebc8 100644 (file)
@@ -16,6 +16,33 @@ typedef char16_t                _PDCLIB_char16_t;
 typedef char32_t                _PDCLIB_char32_t;
 #endif
 
+/* -------------------------------------------------------------------------- */
+/* mbstate_t                                                                  */
+/* -------------------------------------------------------------------------- */
+
+typedef struct _PDCLIB_mbstate_t {
+    union {
+        /* Is this the best way to represent this? Is this big enough? */
+        _PDCLIB_uint64_t _St64[15];
+        _PDCLIB_uint32_t _St32[31];
+        _PDCLIB_uint16_t _St16[62];
+        unsigned char    _StUC[124];
+        signed   char    _StSC[124];
+                 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];
+    };
+} _PDCLIB_mbstate_t;
+
 #ifdef _PDCLIB_WCHAR_IS_UCS2
 /* Must be cauued with bufsize >= 1, in != NULL, out != NULL, ps != NULL
  *
index e9de2e4695fc0ab588c629ebce02e12ff94a15de..c0bbe00fe58d8c7e20e8ffa1ead947e1ae77f341 100644 (file)
@@ -418,12 +418,4 @@ struct _PDCLIB_ctype_t
     unsigned char collation;
 };
 
-/* -------------------------------------------------------------------------- */
-/* mbstate_t                                                                  */
-/* -------------------------------------------------------------------------- */
-
-typedef struct _PDCLIB_mbstate_t {
-    _PDCLIB_uint32_t st[4];
-} _PDCLIB_mbstate_t;
-
 #endif