1 /* xlocinfo.h internal header for Microsoft C */
2 #pragma once
3 #ifndef _XLOCINFO
4 #define _XLOCINFO
5 #include <ctype.h>
6 #include <locale.h>
7 #include <wchar.h>
8 #ifndef _YVALS
9  #include <yvals.h>
10 #endif
11
12 #ifdef  _MSC_VER
13 #pragma pack(push,_CRT_PACKING)
14 #endif  /* _MSC_VER */
15
16 _C_STD_BEGIN
17 #ifndef _M_CEE_PURE
18 _C_LIB_DECL
19 #endif
20
21         /* SUPPLEMENTAL CTYPE MACROS & DECLARATIONS */
22 #define _XA        0x100        /* extra alphabetic */
23 #define _XS        0x000        /* extra space */
24 #define _BB        _CONTROL    /* BEL, BS, etc. */
25 #define _CN        _SPACE        /* CR, FF, HT, NL, VT */
26 #define _DI        _DIGIT        /* '0'-'9' */
27 #define _LO        _LOWER        /* 'a'-'z' */
28 #define _PU        _PUNCT        /* punctuation */
29 #define _SP        _BLANK        /* space */
30 #define _UP        _UPPER        /* 'A'-'Z' */
31 #define _XD        _HEX        /* '0'-'9', 'A'-'F', 'a'-'f' */
32
33         /* SUPPLEMENTAL LOCALE MACROS AND DECLARATIONS */
34 #define _X_ALL            LC_ALL
35 #define _X_COLLATE        LC_COLLATE
36 #define _X_CTYPE        LC_CTYPE
37 #define _X_MONETARY        LC_MONETARY
38 #define _X_NUMERIC        LC_NUMERIC
39 #define _X_TIME         LC_TIME
40 #define _X_MAX            LC_MAX
41 #define _X_MESSAGES        6
42 #define _NCAT            7
43
44 #define _CATMASK(n)    ((1 << (n)) >> 1)
45 #define _M_COLLATE    _CATMASK(_X_COLLATE)
46 #define _M_CTYPE    _CATMASK(_X_CTYPE)
47 #define _M_MONETARY    _CATMASK(_X_MONETARY)
48 #define _M_NUMERIC    _CATMASK(_X_NUMERIC)
49 #define _M_TIME        _CATMASK(_X_TIME)
50 #define _M_MESSAGES    _CATMASK(_X_MESSAGES)
51 #define _M_ALL        (_CATMASK(_NCAT) - 1)
52
53 typedef struct _Collvec
54     {    /* stuff needed by _Strcoll, etc. */
55     unsigned long _Hand;    // LCID
56     unsigned int _Page;        // UINT
Lines 57 ... 66 are skipped.
67 typedef struct _Cvtvec
68     {    /* stuff needed by _Mbrtowc, etc. */
69     unsigned long _Hand;    // LCID
70     unsigned int _Page;        // UINT
71     } _Cvtvec;
72
73         /* FUNCTION DECLARATIONS */
74 _CRTIMP2_PURE _Collvec __CLRCALL_PURE_OR_CDECL _Getcoll();
75 _CRTIMP2_PURE _Ctypevec __CLRCALL_PURE_OR_CDECL _Getctype();
76 _MRTIMP2 _Cvtvec __cdecl _Getcvt();
77
78 _CRTIMP2_PURE int __CLRCALL_PURE_OR_CDECL _Getdateorder();
79
80 _MRTIMP2 int __cdecl _Mbrtowc(_Out_opt_ wchar_t *, const char *, size_t,
81     mbstate_t *, const _Cvtvec *);
82 _CRTIMP2_PURE float __CLRCALL_PURE_OR_CDECL _Stof(const char *, _Out_opt_ _Deref_post_opt_valid_ char **, long);
83 _CRTIMP2_PURE double __CLRCALL_PURE_OR_CDECL _Stod(const char *, _Out_opt_ _Deref_post_opt_valid_ char **, long);
84 _CRTIMP2_PURE long double __CLRCALL_PURE_OR_CDECL _Stold(const char *, _Out_opt_ _Deref_post_opt_valid_ char **, 
85   long);
86 _CRTIMP2_PURE int __CLRCALL_PURE_OR_CDECL _Strcoll(const char *, const char *,
87     const char *, const char *, const _Collvec *);
88 _CRTIMP2_PURE size_t __CLRCALL_PURE_OR_CDECL _Strxfrm(
89   _Out_cap_x_(_End1-_String1) _Post_count_( return) char * _String1, 
90   _In_z_ char * _End1, const char *, const char *, const _Collvec *);
91 _CRTIMP2_PURE int __CLRCALL_PURE_OR_CDECL _Tolower(int, const _Ctypevec *);
92 _CRTIMP2_PURE int __CLRCALL_PURE_OR_CDECL _Toupper(int, const _Ctypevec *);
93 _MRTIMP2 int __cdecl _Wcrtomb(_Out_ char *, wchar_t, mbstate_t *,
94     const _Cvtvec *);
95 _CRTIMP2_PURE int __CLRCALL_PURE_OR_CDECL _Wcscoll(const wchar_t *, const wchar_t *,
96     const wchar_t *, const wchar_t *, const _Collvec *);
97 _CRTIMP2_PURE size_t __CLRCALL_PURE_OR_CDECL _Wcsxfrm(
98   _Out_cap_x_(_End1-_String1) _Post_count_( return) wchar_t *_String1, 
99   _In_z_ wchar_t *_End1, const wchar_t *, const wchar_t *, const _Collvec *);
100
101 _CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _Getwctype(wchar_t, const _Ctypevec *);
102 _CRTIMP2_PURE const wchar_t * __CLRCALL_PURE_OR_CDECL _Getwctypes(const wchar_t *, const wchar_t *,
103     short*, const _Ctypevec*);
104 _CRTIMP2_PURE wchar_t __CLRCALL_PURE_OR_CDECL _Towlower(wchar_t, const _Ctypevec *);
105 _CRTIMP2_PURE wchar_t __CLRCALL_PURE_OR_CDECL _Towupper(wchar_t, const _Ctypevec *);
106 #ifndef _M_CEE_PURE
107 _END_C_LIB_DECL
108 #endif
109 _C_STD_END
110
111 _C_LIB_DECL
112 _CRTIMP void *__cdecl _Gettnames();
113 _CRTIMP char *__cdecl _Getdays();
114 _CRTIMP char *__cdecl _Getmonths();
115 _CRTIMP size_t __cdecl _Strftime(
116   _Out_cap_(_Maxsize) char *, _In_ size_t _Maxsize, 
117   _In_z_ __format_string const char *, _In_ const struct tm *, void *);
118 _END_C_LIB_DECL
119
120 _C_LIB_DECL
121 _locale_t __cdecl _GetLocaleForCP(unsigned int);
122 _END_C_LIB_DECL
123
124 #ifdef  _MSC_VER
125 #pragma pack(pop)
126 #endif  /* _MSC_VER */
127
128 #endif /* _XLOCINFO */
129
130 /*
131  * Copyright (c) 1992-2006 by P.J. Plauger.  ALL RIGHTS RESERVED.
132  * Consult your license regarding permissions and restrictions.
133  V5.02:0009 */
134