19720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block/*
29720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Copyright (c) 1999
39720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Boris Fomitchev
49720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block *
59720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * This material is provided "as is", with absolutely no warranty expressed
69720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * or implied. Any use is at your own risk.
79720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block *
89720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Permission to use or copy this software for any purpose is hereby granted
99720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * without fee, provided the above notices are retained on all copies.
109720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Permission to modify the code and to distribute modified code is granted,
119720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * provided the above notices are retained, and a notice that the code was
129720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * modified is included with the above copyright notice.
139720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block *
149720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block */
159720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
169720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#ifndef _STLP_INTERNAL_MBSTATE_T
179720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define _STLP_INTERNAL_MBSTATE_T
189720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
19e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if (defined (__OpenBSD__) || defined (__FreeBSD__) || defined (__hpux)) && defined (__GNUC__) && !defined (_GLIBCPP_HAVE_MBSTATE_T)
20e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  define _STLP_CPP_MBSTATE_T /* mbstate_t defined in native <cwchar>, so not defined in C! */
219720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif
229720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
23e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if defined (_STLP_NO_NATIVE_MBSTATE_T) || defined (_STLP_CPP_MBSTATE_T) && !defined (_MBSTATE_T)
249720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  define _STLP_USE_OWN_MBSTATE_T
259720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  define _MBSTATE_T
269720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif
279720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
289720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#if defined (_STLP_USE_OWN_MBSTATE_T)
29e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  if !defined (_STLP_CPP_MBSTATE_T) || !defined (__cplusplus) || !defined (_STLP_USE_NEW_C_HEADERS)
307924895a54b8f0b67514224a7ad9d67c79b3eeafAndrew Hsieh#    if !defined (__ANDROID__) /* mbstate_t conflicts with Android's definition */
319720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blocktypedef int mbstate_t;
32e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#    endif
33e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  endif
349720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
35e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  if !defined (_STLP_CPP_MBSTATE_T) && defined (__cplusplus) && defined (_STLP_USE_NAMESPACES)
369720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block_STLP_BEGIN_NAMESPACE
379720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing ::mbstate_t;
389720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block_STLP_END_NAMESPACE
399720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  endif
409720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
419720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif /* _STLP_USE_OWN_MBSTATE_T */
429720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
439720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif /* _STLP_INTERNAL_MBSTATE_T */
44