1 /**
2  * This file has no copyright assigned and is placed in the Public Domain.
3  * This file is part of the mingw-w64 runtime package.
4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5  */
6 #ifndef _INC_LOCALE
7 #define _INC_LOCALE
8 
9 #include <crtdefs.h>
10 
11 #ifdef __cplusplus
12 #include <stdio.h>
13 #endif
14 
15 #pragma pack(push,_CRT_PACKING)
16 
17 #ifdef __cplusplus
18 extern "C" {
19 #endif
20 
21 #ifndef NULL
22 #ifdef __cplusplus
23 #ifndef _WIN64
24 #define NULL 0
25 #else
26 #define NULL 0LL
27 #endif  /* W64 */
28 #else
29 #define NULL ((void *)0)
30 #endif
31 #endif
32 
33 #define LC_ALL 0
34 #define LC_COLLATE 1
35 #define LC_CTYPE 2
36 #define LC_MONETARY 3
37 #define LC_NUMERIC 4
38 #define LC_TIME 5
39 
40 #define LC_MIN LC_ALL
41 #define LC_MAX LC_TIME
42 
43 #ifndef _LCONV_DEFINED
44 #define _LCONV_DEFINED
45   struct lconv {
46     char *decimal_point;
47     char *thousands_sep;
48     char *grouping;
49     char *int_curr_symbol;
50     char *currency_symbol;
51     char *mon_decimal_point;
52     char *mon_thousands_sep;
53     char *mon_grouping;
54     char *positive_sign;
55     char *negative_sign;
56     char int_frac_digits;
57     char frac_digits;
58     char p_cs_precedes;
59     char p_sep_by_space;
60     char n_cs_precedes;
61     char n_sep_by_space;
62     char p_sign_posn;
63     char n_sign_posn;
64   };
65 #endif
66 
67 #ifndef _CONFIG_LOCALE_SWT
68 #define _CONFIG_LOCALE_SWT
69 
70 #define _ENABLE_PER_THREAD_LOCALE 0x1
71 #define _DISABLE_PER_THREAD_LOCALE 0x2
72 #define _ENABLE_PER_THREAD_LOCALE_GLOBAL 0x10
73 #define _DISABLE_PER_THREAD_LOCALE_GLOBAL 0x20
74 #define _ENABLE_PER_THREAD_LOCALE_NEW 0x100
75 #define _DISABLE_PER_THREAD_LOCALE_NEW 0x200
76 
77 #endif
78 
79   int __cdecl _configthreadlocale(int _Flag);
80   char *__cdecl setlocale(int _Category,const char *_Locale);
81   _CRTIMP struct lconv *__cdecl localeconv(void);
82   _CRTIMP _locale_t __cdecl _get_current_locale(void);
83   _locale_t __cdecl _create_locale(int _Category,const char *_Locale);
84   void __cdecl _free_locale(_locale_t _Locale);
85   _locale_t __cdecl __get_current_locale(void);
86   _locale_t __cdecl __create_locale(int _Category,const char *_Locale);
87   void __cdecl __free_locale(_locale_t _Locale);
88 
89 #ifndef _WLOCALE_DEFINED
90 #define _WLOCALE_DEFINED
91   _CRTIMP wchar_t *__cdecl _wsetlocale(int _Category,const wchar_t *_Locale);
92 #endif
93 
94 #ifdef __cplusplus
95 }
96 #endif
97 
98 #pragma pack(pop)
99 #endif
100