Home | History | Annotate | Download | only in stl
      1 /*
      2  * Copyright (c) 1999
      3  * Boris Fomitchev
      4  *
      5  * This material is provided "as is", with absolutely no warranty expressed
      6  * or implied. Any use is at your own risk.
      7  *
      8  * Permission to use or copy this software for any purpose is hereby granted
      9  * without fee, provided the above notices are retained on all copies.
     10  * Permission to modify the code and to distribute modified code is granted,
     11  * provided the above notices are retained, and a notice that the code was
     12  * modified is included with the above copyright notice.
     13  *
     14  */
     15 
     16 #ifndef _STLP_INTERNAL_MBSTATE_T
     17 #define _STLP_INTERNAL_MBSTATE_T
     18 
     19 #if (defined (__OpenBSD__) || defined (__FreeBSD__) || defined (__hpux)) && defined (__GNUC__) && !defined (_GLIBCPP_HAVE_MBSTATE_T)
     20 #  define _STLP_CPP_MBSTATE_T /* mbstate_t defined in native <cwchar>, so not defined in C! */
     21 #endif
     22 
     23 #if defined (_STLP_NO_NATIVE_MBSTATE_T) || defined (_STLP_CPP_MBSTATE_T) && !defined (_MBSTATE_T)
     24 #  define _STLP_USE_OWN_MBSTATE_T
     25 #  define _MBSTATE_T
     26 #endif
     27 
     28 #if defined (_STLP_USE_OWN_MBSTATE_T)
     29 #  if !defined (_STLP_CPP_MBSTATE_T) || !defined (__cplusplus) || !defined (_STLP_USE_NEW_C_HEADERS)
     30 #    if !defined (__ANDROID__) /* mbstate_t conflicts with Android's definition */
     31 typedef int mbstate_t;
     32 #    endif
     33 #  endif
     34 
     35 #  if !defined (_STLP_CPP_MBSTATE_T) && defined (__cplusplus) && defined (_STLP_USE_NAMESPACES)
     36 _STLP_BEGIN_NAMESPACE
     37 using ::mbstate_t;
     38 _STLP_END_NAMESPACE
     39 #  endif
     40 
     41 #endif /* _STLP_USE_OWN_MBSTATE_T */
     42 
     43 #endif /* _STLP_INTERNAL_MBSTATE_T */
     44