mirror of
https://github.com/reactos/reactos.git
synced 2025-02-24 01:15:09 +00:00

* Create a branch for some evul shell experiments. svn path=/branches/shell-experiments/; revision=61927
131 lines
3.7 KiB
C
131 lines
3.7 KiB
C
/*
|
|
* Copyright (c) 1999
|
|
* Silicon Graphics Computer Systems, Inc.
|
|
*
|
|
* 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_C_LOCALE_H
|
|
#define _STLP_C_LOCALE_H
|
|
|
|
/*
|
|
* Implementation dependent definitions.
|
|
* Beware: This header is not a purely internal header, it is also included
|
|
* from the outside world when building the STLport library. So this header
|
|
* should not reference internal headers (stlport/stl/_*.h) directly.
|
|
*/
|
|
#if defined (__sgi)
|
|
# if defined (ROOT_65) /* IRIX 6.5.x */
|
|
# include <sgidefs.h>
|
|
# include <standards.h>
|
|
# include <wchar.h>
|
|
# include <ctype.h>
|
|
# else /* IRIX pre-6.5 */
|
|
# include <sgidefs.h>
|
|
# include <standards.h>
|
|
# if !defined(_SIZE_T) && !defined(_SIZE_T_)
|
|
# define _SIZE_T
|
|
# if (_MIPS_SZLONG == 32)
|
|
typedef unsigned int size_t;
|
|
# endif
|
|
# if (_MIPS_SZLONG == 64)
|
|
typedef unsigned long size_t;
|
|
# endif
|
|
# endif
|
|
# if !defined (_WCHAR_T)
|
|
# define _WCHAR_T
|
|
# if (_MIPS_SZLONG == 32)
|
|
typedef long wchar_t;
|
|
# endif
|
|
# if (_MIPS_SZLONG == 64)
|
|
typedef __int32_t wchar_t;
|
|
# endif
|
|
# endif /* _WCHAR_T */
|
|
# if !defined (_WINT_T)
|
|
# define _WINT_T
|
|
# if (_MIPS_SZLONG == 32)
|
|
typedef long wint_t;
|
|
# endif
|
|
# if (_MIPS_SZLONG == 64)
|
|
typedef __int32_t wint_t;
|
|
# endif
|
|
# endif /* _WINT_T */
|
|
# if !defined (_MBSTATE_T)
|
|
# define _MBSTATE_T
|
|
/* _MSC_VER check is here for historical reason and seems wrong as it is the macro defined
|
|
* by Microsoft compilers to give their version. But we are in a SGI platform section so it
|
|
* is weird. However _MSC_VER might also be a SGI compiler macro so we keep it this way.*/
|
|
# if defined (_MSC_VER)
|
|
typedef int mbstate_t;
|
|
# else
|
|
typedef char mbstate_t;
|
|
# endif
|
|
# endif /* _MBSTATE_T */
|
|
# endif /* ROOT65 */
|
|
#elif defined (_STLP_USE_GLIBC)
|
|
# include <ctype.h>
|
|
#endif
|
|
|
|
/*
|
|
* GENERAL FRAMEWORK
|
|
*/
|
|
|
|
/*
|
|
* Opaque types, implementation (if there is one) depends
|
|
* on platform localisation API.
|
|
*/
|
|
struct _Locale_ctype;
|
|
struct _Locale_codecvt;
|
|
struct _Locale_numeric;
|
|
struct _Locale_time;
|
|
struct _Locale_collate;
|
|
struct _Locale_monetary;
|
|
struct _Locale_messages;
|
|
|
|
/*
|
|
Bitmask macros.
|
|
*/
|
|
|
|
/*
|
|
* For narrow characters, we expose the lookup table interface.
|
|
*/
|
|
|
|
#if defined (_STLP_USE_GLIBC)
|
|
/* This section uses macros defined in the gnu libc ctype.h header */
|
|
# define _Locale_CNTRL _IScntrl
|
|
# define _Locale_UPPER _ISupper
|
|
# define _Locale_LOWER _ISlower
|
|
# define _Locale_DIGIT _ISdigit
|
|
# define _Locale_XDIGIT _ISxdigit
|
|
# define _Locale_PUNCT _ISpunct
|
|
# define _Locale_SPACE _ISspace
|
|
# define _Locale_PRINT _ISprint
|
|
# define _Locale_ALPHA _ISalpha
|
|
#else
|
|
/* Default values based on C++ Standard 22.2.1.
|
|
* Under Windows the localisation implementation take care of mapping its
|
|
* mask values to those internal values. For other platforms without real
|
|
* localization support we are free to use the most suitable values.*/
|
|
# define _Locale_SPACE 0x0001
|
|
# define _Locale_PRINT 0x0002
|
|
# define _Locale_CNTRL 0x0004
|
|
# define _Locale_UPPER 0x0008
|
|
# define _Locale_LOWER 0x0010
|
|
# define _Locale_ALPHA 0x0020
|
|
# define _Locale_DIGIT 0x0040
|
|
# define _Locale_PUNCT 0x0080
|
|
# define _Locale_XDIGIT 0x0100
|
|
#endif
|
|
|
|
#endif /* _STLP_C_LOCALE_H */
|