123
This commit is contained in:
112
STLPORT/stlport/stl/_cwchar.h
Normal file
112
STLPORT/stlport/stl/_cwchar.h
Normal file
@@ -0,0 +1,112 @@
|
||||
/*
|
||||
* Copyright (c) 1999
|
||||
* Boris Fomitchev
|
||||
*
|
||||
* This material is provided "as is", with absolutely no warranty expressed
|
||||
* or implied. Any use is at your own risk.
|
||||
*
|
||||
* Permission to use or copy this software for any purpose is hereby granted
|
||||
* without fee, provided the above notices are retained on all copies.
|
||||
* Permission to modify the code and to distribute modified code is granted,
|
||||
* provided the above notices are retained, and a notice that the code was
|
||||
* modified is included with the above copyright notice.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _STLP_CWCHAR_H
|
||||
# define _STLP_CWCHAR_H
|
||||
|
||||
#ifndef _STLP_NO_WCHAR_T
|
||||
#ifdef __cplusplus
|
||||
# include <cwchar>
|
||||
#else
|
||||
# include <wchar.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
# if defined (__MRC__) || defined (__SC__) || defined (__BORLANDC__) || defined(__FreeBSD__) || (defined (__GNUC__) && defined (__APPLE__) || defined( __Lynx__ )) || defined (_STLP_NO_WCHAR_T)
|
||||
|
||||
# include _STLP_NATIVE_C_HEADER(stddef.h)
|
||||
# if defined (__FreeBSD__) || defined (__Lynx__)
|
||||
# ifndef _WINT_T
|
||||
typedef long int wint_t;
|
||||
# define _WINT_T
|
||||
# endif /* _WINT_T */
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# if defined ( _STLP_OWN_IOSTREAMS ) && defined (_STLP_NO_NATIVE_MBSTATE_T) && ! defined (_STLP_NO_MBSTATE_T) && ! defined (_MBSTATE_T) && ! defined (__mbstate_t_defined)
|
||||
# define _STLP_USE_OWN_MBSTATE_T
|
||||
# define _MBSTATE_T
|
||||
# endif
|
||||
|
||||
# ifdef _STLP_USE_OWN_MBSTATE_T
|
||||
|
||||
// to be compatible across different SUN platforms
|
||||
#ifdef __sun
|
||||
# define __stl_mbstate_t __mbstate_t
|
||||
#endif
|
||||
|
||||
struct __stl_mbstate_t;
|
||||
|
||||
# ifdef __cplusplus
|
||||
struct __stl_mbstate_t {
|
||||
__stl_mbstate_t( long __st = 0 ) { _M_state[0] = __st ; }
|
||||
__stl_mbstate_t& operator=(const long __st) {
|
||||
_M_state[0] = __st;
|
||||
return *this;
|
||||
}
|
||||
__stl_mbstate_t(const __stl_mbstate_t& __x) {_M_state[0]= __x._M_state[0]; }
|
||||
__stl_mbstate_t& operator=(const __stl_mbstate_t& __x) {
|
||||
_M_state[0]= __x._M_state[0];
|
||||
return *this;
|
||||
}
|
||||
# if defined (__sun)
|
||||
# ifdef _LP64
|
||||
long _M_state[4];
|
||||
# else
|
||||
int _M_state[6];
|
||||
# endif
|
||||
# else
|
||||
long _M_state[1];
|
||||
# endif
|
||||
};
|
||||
|
||||
inline bool operator==(const __stl_mbstate_t& __x, const __stl_mbstate_t& __y) {
|
||||
return ( __x._M_state[0] == __y._M_state[0] );
|
||||
}
|
||||
|
||||
inline bool operator!=(const __stl_mbstate_t& __x, const __stl_mbstate_t& __y) {
|
||||
return ( __x._M_state[0] == __y._M_state[0] );
|
||||
}
|
||||
# endif
|
||||
|
||||
|
||||
_STLP_BEGIN_NAMESPACE
|
||||
|
||||
typedef __stl_mbstate_t mbstate_t;
|
||||
|
||||
_STLP_END_NAMESPACE
|
||||
|
||||
# endif /* _STLP_USE_OWN_MBSTATE_T */
|
||||
|
||||
#if !defined (_STLP_NO_WCHAR_T)
|
||||
# ifndef WCHAR_MIN
|
||||
# define WCHAR_MIN 0
|
||||
// SUNpro has some bugs with casts. wchar_t is size of int there anyway.
|
||||
# if defined (__SUNPRO_CC) || defined (__DJGPP)
|
||||
# define WCHAR_MAX (~0)
|
||||
# else
|
||||
# define WCHAR_MAX ((wchar_t)~0)
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
# if defined (_STLP_IMPORT_VENDOR_CSTD) && ! defined (_STLP_VENDOR_GLOBAL_CSTD)
|
||||
_STLP_BEGIN_NAMESPACE
|
||||
using namespace _STLP_VENDOR_CSTD;
|
||||
_STLP_END_NAMESPACE
|
||||
#endif /* _STLP_IMPORT_VENDOR_CSTD */
|
||||
|
||||
#endif /* _STLP_CWCHAR_H */
|
||||
|
||||
Reference in New Issue
Block a user