Ne.app NeANT
The Ne.app NeANT User module of the NeANT distribution.
_mbstate.h
Go to the documentation of this file.
1
32#ifndef _RWSTD_RW_MBSTATE_H_INCLUDED
33#define _RWSTD_RW_MBSTATE_H_INCLUDED
34
35#ifndef _RWSTD_RW_DEFS_H_INCLUDED
36# include <rw/_defs.h>
37#endif // _RWSTD_RW_DEFS_H_INCLUDED
38
39
40#if defined (_RWSTD_OS_AIX)
41
44
45// introduce typedef to avoid const qualification issues
46typedef char* __rw_mbstate_t;
47
48# define _RWSTD_MBSTATE_T _RW::__rw_mbstate_t
49
50} // namespace __rw
51
52#elif defined (_RWSTD_OS_HP_UX)
53
55# ifndef _MBSTATE_T
56# define _MBSTATE_T
57
58# if !defined (__HP_aCC) && !defined (_RWSTD_NO_LIBC_IN_STD) \
59 || defined (__HP_aCC) && defined (_NAMESPACE_STD)
60
62
63# endif // HP aCC -AA
64
65extern "C" {
66
67// HP-UX 10.00 or 11.00 do not define mbstate_t
68// HP-UX 11.11 (and higher) definition of mbstate_t
69typedef struct {
70 unsigned char __parse_size: 3;
71 unsigned char __dummy: 4;
72 unsigned char __shift_state: 1;
73 char __parse_buf [7];
74} mbstate_t;
75
76} // extern "C"
77
78# if !defined (__HP_aCC) && !defined (_RWSTD_NO_LIBC_IN_STD) \
79 || defined (__HP_aCC) && defined (_NAMESPACE_STD)
80
81} // namespace std
82
83# undef _RWSTD_NO_STD_MBSTATE_T
84# define _RWSTD_MBSTATE_T _STD::mbstate_t
85# else // if !(HP aCC -AA)
86
87 // let <cwchar> et al know that mbstate_t is not declared
88 // in namespace std (and should be introduced there via
89 // a using declaration)
90# define _RWSTD_NO_STD_MBSTATE_T
91
93
94_USING (::mbstate_t);
95
96} // namespace std
97
98# define _RWSTD_MBSTATE_T mbstate_t
99# endif // HP aCC -AA
100# else // if defined (_MBSTATE_T)
101 // /usr/include/sys/_mbstate_t.h #included and mbstate_t defined
102# ifndef _NAMESPACE_STD
103 // let <cwchar> et al know that mbstate_t is not declared
104 // in namespace std (and should be introduced there via
105 // a using declaration)
106# define _RWSTD_NO_STD_MBSTATE_T
107
109
110_USING (::mbstate_t);
111
112} // namespace std
113
114# define _RWSTD_MBSTATE_T mbstate_t
115# endif // _NAMESPACE_STD
116# endif // _MBSTATE_T
117
118#elif defined (_RWSTD_OS_IRIX64)
119
121# define _RWSTD_MBSTATE_T char
122
123#elif defined (_MSC_VER)
124
126# define _RWSTD_MBSTATE_T int
127
128#elif !defined (_RWSTD_NO_MBSTATE_T)
129
131# if defined (_RWSTD_OS_LINUX)
132
134 // define __mbstate_t at file scope (see /usr/include/wchar.h)
135#ifndef ____mbstate_t_defined
136#define ____mbstate_t_defined
137
138extern "C" {
139
140typedef struct __mbstate_t {
141 int __count;
142 union {
143 _RWSTD_WINT_T __wch;
144 char __wchb [4];
145 } __value;
146} __mbstate_t;
147
148} // extern "C"
149
150# endif // __mbstate_t_defined
151
152typedef __mbstate_t mbstate_t;
153
154# define _RWSTD_MBSTATE_T mbstate_t
155
156
157# elif defined (_RWSTD_OS_SUNOS)
158
160# ifndef _MBSTATET_H
161# define _MBSTATET_H
162
163extern "C" {
164
165// avoid namespace pollution on Solaris
166typedef struct __mbstate_t {
167
168 // Sun uses _LP64 in their header but the macro may not
169 // yetbe #defined at this point, depending on what other
170 // headers have been #included
171# if 8 == _RWSTD_LONG_SIZE // LP64
172 long __filler [4];
173# else
174 int __filler [6];
175# endif // 8 == sizeof(long)
176} __mbstate_t;
177
178} // extern "C"
179
180# endif // _MBSTATET_H
181
182# define _RWSTD_MBSTATE_T __mbstate_t
183 // let <cwchar> et al know that mbstate_t is not declared
184 // in namespace std (and should be introduced there via
185 // a using declaration)
186# define _RWSTD_NO_STD_MBSTATE_T
187
188# elif defined (_RWSTD_OS_DARWIN)
189
191 // include a system header for __mbstate_t
192# include <machine/_types.h>
193# define _RWSTD_MBSTATE_T __mbstate_t
194
195# else // if !defined (_RWSTD_OS_SUNOS)
196
198# include _RWSTD_CWCHAR
199# define _RWSTD_MBSTATE_T _RWSTD_C::mbstate_t
200
201# endif // _RWSTD_OS_SUNOS
202
203
204#elif !defined (_RWSTD_MBSTATE_T_DEFINED)
205
206# define _RWSTD_MBSTATE_T_DEFINED
207
208
209# if defined (_RWSTD_OS_SUNOS)
210
211// Solaris 6 does not define mbstate_t; the definition of
212// the struct below is taken from <wchar_impl.h> on Solaris 7
213
214# ifndef _WCHAR_IMPL_H
215# define _WCHAR_IMPL_H
216# ifndef _MBSTATET_H
217# define _MBSTATET_H
218
219extern "C" {
220
221struct __mbstate_t
222{
223
224# ifdef _LP64
225 long _C_data [4];
226# else // if !defined (_LP64)
227 int _C_data [6];
228# endif // _LP64
229
230};
231
232} // extern "C"
233
234# endif // _MBSTATET_H
235# endif // _WCHAR_IMPL_H
236# define _RWSTD_MBSTATE_T __mbstate_t
237 // let <cwchar> et al know that mbstate_t is not declared
238 // in namespace std (and should be introduced there via
239 // a using declaration)
240# define _RWSTD_NO_STD_MBSTATE_T
241# else // any other OS
242
243# ifndef _RWSTD_NO_USING_LIBC_IN_STD
244
246
247# endif // _RWSTD_NO_USING_LIBC_IN_STD
248
249extern "C" {
250
251// generic definition of mbstate_t
252struct mbstate_t
253{
254# ifdef _RWSTD_MBSTATE_T_SIZE
255 char _C_data [_RWSTD_MBSTATE_T_SIZE];
256# else
257 char _C_data [sizeof (long)];
258# endif
259
260};
261
262} // extern "C"
263
264# ifndef _RWSTD_NO_USING_LIBC_IN_STD
265
266} // namespace std
267
268# endif // _RWSTD_NO_USING_LIBC_IN_STD
269
270# define _RWSTD_MBSTATE_T _STD::mbstate_t
271
272# endif // generic OS
273#endif // _RWSTD_NO_MBSTATE_T && !_RWSTD_MBSTATE_T_DEFINED
274
275#endif // _RWSTD_RW_MBSTATE_H_INCLUDED
#define __value
Definition 17.names.cpp:425
#define _RWSTD_NAMESPACE(name)
Definition _defs.h:567
#define _USING(name)
Definition _defs.h:568
#define _RWSTD_WINT_T
Definition _defs.h:1266
Definition json.h:5363