• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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