/* xlocinfo.h internal header for gcc Linux */ #ifndef _XLOCINFO #define _XLOCINFO #include #include _C_STD_BEGIN _C_LIB_DECL /* CTYPE CODE BITS */ #ifndef _XB #define _XB 0x400 /* extra blank */ #define _XA 0x200 /* extra alphabetic */ #define _XS 0x100 /* extra space */ #define _BB 0x80 /* BEL, BS, etc. */ #define _CN 0x40 /* CR, FF, HT, NL, VT */ #define _DI 0x20 /* '0'-'9' */ #define _LO 0x10 /* 'a'-'z' */ #define _PU 0x08 /* punctuation */ #define _SP 0x04 /* space */ #define _UP 0x02 /* 'A'-'Z' */ #define _XD 0x01 /* '0'-'9', 'A'-'F', 'a'-'f' */ #endif /* _XB */ /* SUPPLEMENTAL LOCALE MACROS AND DECLARATIONS */ #if _IS_GHS #define _X_COLLATE 0 #define _X_CTYPE 1 #define _X_MONETARY 2 #define _X_NUMERIC 3 #define _X_TIME 4 #define _X_MESSAGES 5 #define _X_MAX _X_MESSAGES /* highest real category */ #define _CAT_TO_LC(cat) _CATMASK(cat) #if defined(_MC_EXEC) #undef _NCAT #endif /* defined(_MC_EXEC) */ #ifndef _NCAT #define _NCAT (_X_MESSAGES + 1) /* maximum + 1 */ #define _CATMASK(n) \ (1 << ((n) - (_X_COLLATE < _X_CTYPE ? _X_COLLATE : _X_CTYPE))) #define _M_COLLATE _CATMASK(_X_COLLATE) #define _M_CTYPE _CATMASK(_X_CTYPE) #define _M_MONETARY _CATMASK(_X_MONETARY) #define _M_NUMERIC _CATMASK(_X_NUMERIC) #define _M_TIME _CATMASK(_X_TIME) #define _M_MESSAGES _CATMASK(_X_MESSAGES) #define _M_ALL (_CATMASK(_NCAT) - 1) #endif /* _NCAT */ /* FUNCTION DECLARATIONS */ const short *_Getctyptab(); #if !(defined(__ghs) || defined(__SC3__)) || !defined(__NoFloat) extern float _Stof(const char *, char **, long); #if defined(__ghs) && defined(_MC_EXEC) #define _Stod(a,b,c) _mc_Stod(a,b,c) #endif /* defined(__ghs), etc. */ #if defined(__ghs) && defined(__ADSPBLACKFIN__) #define _Stod _ghs_Stod #endif /* defined__ghs), etc. */ #if !defined(__ghs__) || !defined(__FloatSingle__) extern double _Stod(const char *, char **, long); extern long double _Stold(const char *, char **, long); #endif /* !defined(__ghs__), etc. */ #endif /* !defined(__ghs), etc. */ #else /* _IS_GHS */ #if defined(__BORLANDC__) #define _X_COLLATE 0 #define _X_CTYPE 1 #define _X_MONETARY 2 #define _X_NUMERIC 3 #define _X_TIME 4 #define _X_MESSAGES 5 #define _X_MAX _X_MESSAGES /* highest real category */ #define _CAT_TO_LC(cat) _CATMASK(cat) #else /* defined(__BORLANDC__) etc. */ #define _X_COLLATE LC_COLLATE #define _X_CTYPE LC_CTYPE #define _X_MONETARY LC_MONETARY #define _X_NUMERIC LC_NUMERIC #define _X_TIME LC_TIME #define _X_MESSAGES LC_MESSAGES #define _X_MAX _X_MESSAGES /* highest real category */ #endif /* defined(_BORLANDC_) etc. */ #ifndef _NCAT #define _NCAT (_X_MESSAGES + 1) /* maximum + 1 */ #if defined(__GLIBC__) && !defined(__APPLE__) #define _CATMASK(n) (1 << (n)) #else /* defined(__GLIBC__) etc. */ #define _CATMASK(n) \ (1 << ((n) - (_X_COLLATE < _X_CTYPE ? _X_COLLATE : _X_CTYPE))) #endif /* defined(__GLIBC__) etc. */ #define _M_COLLATE _CATMASK(_X_COLLATE) #define _M_CTYPE _CATMASK(_X_CTYPE) #define _M_MONETARY _CATMASK(_X_MONETARY) #define _M_NUMERIC _CATMASK(_X_NUMERIC) #define _M_TIME _CATMASK(_X_TIME) #define _M_MESSAGES _CATMASK(_X_MESSAGES) #define _M_ALL (_CATMASK(_NCAT) - 1) #endif /* _NCAT */ typedef struct _Collvec { /* stuff needed by _Strcoll, etc. */ unsigned long _Hand; // LCID unsigned int _Page; // UINT } _Collvec; typedef struct _Ctypevec { /* stuff needed by _Tolower, etc. */ unsigned long _Hand; // LCID unsigned int _Page; // UINT const short *_Table; int _Delfl; } _Ctypevec; typedef struct _Cvtvec { /* stuff needed by _Mbrtowc, etc. */ unsigned long _Hand; // LCID unsigned int _Page; // UINT } _Cvtvec; /* FUNCTION DECLARATIONS */ _CRTIMP2 const short *_Getctyptab(); extern _CRTIMP2 float _Stof(const char *, char **, long); extern _CRTIMP2 double _Stod(const char *, char **, long); extern _CRTIMP2 long double _Stold(const char *, char **, long); #endif /* _IS_GHS */ _END_C_LIB_DECL _C_STD_END #endif /* _XLOCINFO */ /* * Copyright (c) by P.J. Plauger. All rights reserved. * Consult your license regarding permissions and restrictions. V6.50:1422 +codepage*/