Sync trunk head (r47697).
[reactos.git] / include / crt / xlocinfo.h
1 /**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the w64 mingw-runtime package.
4 * No warranty is given; refer to the file DISCLAIMER within this package.
5 */
6 #ifndef _XLOCINFO
7 #define _XLOCINFO
8 #include <ctype.h>
9 #include <locale.h>
10 #include <wchar.h>
11 #include <yvals.h>
12
13 #pragma pack(push,_CRT_PACKING)
14
15 _C_STD_BEGIN
16 _C_LIB_DECL
17
18 #define _XA 0x100
19 #define _XS 0x000
20 #define _BB _CONTROL
21 #define _CN _SPACE
22 #define _DI _DIGIT
23 #define _LO _LOWER
24 #define _PU _PUNCT
25 #define _SP _BLANK
26 #define _UP _UPPER
27 #define _XD _HEX
28
29 #define _X_ALL LC_ALL
30 #define _X_COLLATE LC_COLLATE
31 #define _X_CTYPE LC_CTYPE
32 #define _X_MONETARY LC_MONETARY
33 #define _X_NUMERIC LC_NUMERIC
34 #define _X_TIME LC_TIME
35 #define _X_MAX LC_MAX
36 #define _X_MESSAGES 6
37 #define _NCAT 7
38
39 #define _CATMASK(n) ((1 << (n)) >> 1)
40 #define _M_COLLATE _CATMASK(_X_COLLATE)
41 #define _M_CTYPE _CATMASK(_X_CTYPE)
42 #define _M_MONETARY _CATMASK(_X_MONETARY)
43 #define _M_NUMERIC _CATMASK(_X_NUMERIC)
44 #define _M_TIME _CATMASK(_X_TIME)
45 #define _M_MESSAGES _CATMASK(_X_MESSAGES)
46 #define _M_ALL (_CATMASK(_NCAT) - 1)
47
48 typedef struct _Collvec {
49 unsigned long _Hand;
50 unsigned int _Page;
51 } _Collvec;
52
53 typedef struct _Ctypevec {
54 unsigned long _Hand;
55 unsigned int _Page;
56 const short *_Table;
57 int _Delfl;
58 } _Ctypevec;
59
60 typedef struct _Cvtvec {
61 unsigned long _Hand;
62 unsigned int _Page;
63 } _Cvtvec;
64
65 _CRTIMP _Collvec __cdecl _Getcoll();
66 _CRTIMP _Ctypevec __cdecl _Getctype();
67 _CRTIMP _Cvtvec __cdecl _Getcvt();
68 _CRTIMP int __cdecl _Getdateorder();
69 _CRTIMP int __cdecl _Mbrtowc(wchar_t *,const char *,size_t,mbstate_t *,const _Cvtvec *);
70 _CRTIMP float __cdecl _Stof(const char *,char **,long);
71 _CRTIMP double __cdecl _Stod(const char *,char **,long);
72 _CRTIMP long double __cdecl _Stold(const char *,char **,long);
73 _CRTIMP int __cdecl _Strcoll(const char *,const char *,const char *,const char *,const _Collvec *);
74 _CRTIMP size_t __cdecl _Strxfrm(char *_String1,char *_End1,const char *,const char *,const _Collvec *);
75 _CRTIMP int __cdecl _Tolower(int,const _Ctypevec *);
76 _CRTIMP int __cdecl _Toupper(int,const _Ctypevec *);
77 _CRTIMP int __cdecl _Wcrtomb(char *,wchar_t,mbstate_t *,const _Cvtvec *);
78 _CRTIMP int __cdecl _Wcscoll(const wchar_t *,const wchar_t *,const wchar_t *,const wchar_t *,const _Collvec *);
79 _CRTIMP size_t __cdecl _Wcsxfrm(wchar_t *_String1,wchar_t *_End1,const wchar_t *,const wchar_t *,const _Collvec *);
80 _CRTIMP short __cdecl _Getwctype(wchar_t,const _Ctypevec *);
81 _CRTIMP const wchar_t *__cdecl _Getwctypes(const wchar_t *,const wchar_t *,short*,const _Ctypevec*);
82 _CRTIMP wchar_t __cdecl _Towlower(wchar_t,const _Ctypevec *);
83 _CRTIMP wchar_t __cdecl _Towupper(wchar_t,const _Ctypevec *);
84 _END_C_LIB_DECL
85 _C_STD_END
86
87 _C_LIB_DECL
88 _CRTIMP void *__cdecl _Gettnames();
89 _CRTIMP char *__cdecl _Getdays();
90 _CRTIMP char *__cdecl _Getmonths();
91 _CRTIMP size_t __cdecl _Strftime(char *,size_t _Maxsize,const char *,const struct tm *,void *);
92 _END_C_LIB_DECL
93
94 _C_LIB_DECL
95 _locale_t __cdecl _GetLocaleForCP(unsigned int);
96 _END_C_LIB_DECL
97
98 #pragma pack(pop)
99 #endif