1 #ifndef __CRT_INTERNAL_LOCALE_H
2 #define __CRT_INTERNAL_LOCALE_H
4 typedef struct MSVCRT_threadlocaleinfostruct
{
6 unsigned int lc_codepage
;
7 unsigned int lc_collate_cp
;
8 unsigned long lc_handle
[6];
18 int *lconv_intl_refcount
;
19 int *lconv_num_refcount
;
20 int *lconv_mon_refcount
;
23 unsigned short *ctype1
;
24 const unsigned short *pctype
;
25 unsigned char *pclmap
;
26 unsigned char *pcumap
;
27 struct __lc_time_data
*lc_time_curr
;
28 } MSVCRT_threadlocinfo
;
30 typedef struct MSVCRT_threadmbcinfostruct
{
35 unsigned short mbulinfo
[6];
36 unsigned char mbctype
[257];
38 } MSVCRT_threadmbcinfo
;
40 #define MSVCRT_lconv lconv
42 typedef struct MSVCRT_threadlocaleinfostruct
*MSVCRT_pthreadlocinfo
;
43 typedef struct MSVCRT_threadmbcinfostruct
*MSVCRT_pthreadmbcinfo
;
45 typedef struct MSVCRT_localeinfo_struct
47 MSVCRT_pthreadlocinfo locinfo
;
48 MSVCRT_pthreadmbcinfo mbcinfo
;
49 } MSVCRT__locale_tstruct
, *MSVCRT__locale_t
;
51 typedef struct __lc_time_data
{
70 } MSVCRT___lc_time_data
;
72 int _setmbcp_l(int, LCID
, MSVCRT_pthreadmbcinfo
) DECLSPEC_HIDDEN
;
73 MSVCRT_pthreadmbcinfo
get_mbcinfo(void) DECLSPEC_HIDDEN
;
74 LCID
MSVCRT_locale_to_LCID(const char*, unsigned short*) DECLSPEC_HIDDEN
;
76 void __init_global_locale();
77 extern MSVCRT__locale_t global_locale
;
78 #define MSVCRT_locale __get_MSVCRT_locale()
79 FORCEINLINE MSVCRT__locale_t
__get_MSVCRT_locale()
82 __init_global_locale();
86 MSVCRT_pthreadlocinfo
get_locinfo(void);
87 void __cdecl
MSVCRT__free_locale(MSVCRT__locale_t
);
88 void free_locinfo(MSVCRT_pthreadlocinfo
);
89 void free_mbcinfo(MSVCRT_pthreadmbcinfo
);
91 #endif //__CRT_INTERNAL_LOCALE_H