mirror of
https://github.com/reactos/reactos.git
synced 2025-04-22 13:10:39 +00:00
[CRT]
- attempt to fix build svn path=/trunk/; revision=57834
This commit is contained in:
parent
b588451fcf
commit
de65d32082
3 changed files with 112 additions and 113 deletions
|
@ -7,6 +7,7 @@
|
||||||
#include <mbctype.h>
|
#include <mbctype.h>
|
||||||
#include <internal/wine/msvcrt.h>
|
#include <internal/wine/msvcrt.h>
|
||||||
#include <internal/tls.h>
|
#include <internal/tls.h>
|
||||||
|
#include <internal/locale.h>
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
|
||||||
#include <internal/wine/msvcrt.h>
|
#include <internal/wine/msvcrt.h>
|
||||||
|
|
|
@ -1,8 +1,72 @@
|
||||||
#ifndef __CRT_INTERNAL_LOCALE_H
|
#ifndef __CRT_INTERNAL_LOCALE_H
|
||||||
#define __CRT_INTERNAL_LOCALE_H
|
#define __CRT_INTERNAL_LOCALE_H
|
||||||
|
|
||||||
|
typedef struct MSVCRT_threadlocaleinfostruct {
|
||||||
|
LONG refcount;
|
||||||
|
unsigned int lc_codepage;
|
||||||
|
unsigned int lc_collate_cp;
|
||||||
|
unsigned long lc_handle[6];
|
||||||
|
LC_ID lc_id[6];
|
||||||
|
struct {
|
||||||
|
char *locale;
|
||||||
|
wchar_t *wlocale;
|
||||||
|
int *refcount;
|
||||||
|
int *wrefcount;
|
||||||
|
} lc_category[6];
|
||||||
|
int lc_clike;
|
||||||
|
int mb_cur_max;
|
||||||
|
int *lconv_intl_refcount;
|
||||||
|
int *lconv_num_refcount;
|
||||||
|
int *lconv_mon_refcount;
|
||||||
|
struct MSVCRT_lconv *lconv;
|
||||||
|
int *ctype1_refcount;
|
||||||
|
unsigned short *ctype1;
|
||||||
|
const unsigned short *pctype;
|
||||||
|
unsigned char *pclmap;
|
||||||
|
unsigned char *pcumap;
|
||||||
|
struct __lc_time_data *lc_time_curr;
|
||||||
|
} MSVCRT_threadlocinfo;
|
||||||
|
|
||||||
|
typedef struct MSVCRT_threadmbcinfostruct {
|
||||||
|
LONG refcount;
|
||||||
|
int mbcodepage;
|
||||||
|
int ismbcodepage;
|
||||||
|
int mblcid;
|
||||||
|
unsigned short mbulinfo[6];
|
||||||
|
char mbctype[257];
|
||||||
|
char mbcasemap[256];
|
||||||
|
} MSVCRT_threadmbcinfo;
|
||||||
|
|
||||||
|
struct MSVCRT_lconv {
|
||||||
|
char* decimal_point;
|
||||||
|
char* thousands_sep;
|
||||||
|
char* grouping;
|
||||||
|
char* int_curr_symbol;
|
||||||
|
char* currency_symbol;
|
||||||
|
char* mon_decimal_point;
|
||||||
|
char* mon_thousands_sep;
|
||||||
|
char* mon_grouping;
|
||||||
|
char* positive_sign;
|
||||||
|
char* negative_sign;
|
||||||
|
char int_frac_digits;
|
||||||
|
char frac_digits;
|
||||||
|
char p_cs_precedes;
|
||||||
|
char p_sep_by_space;
|
||||||
|
char n_cs_precedes;
|
||||||
|
char n_sep_by_space;
|
||||||
|
char p_sign_posn;
|
||||||
|
char n_sign_posn;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct MSVCRT_threadlocaleinfostruct *MSVCRT_pthreadlocinfo;
|
||||||
typedef struct MSVCRT_threadmbcinfostruct *MSVCRT_pthreadmbcinfo;
|
typedef struct MSVCRT_threadmbcinfostruct *MSVCRT_pthreadmbcinfo;
|
||||||
|
|
||||||
|
typedef struct MSVCRT_localeinfo_struct
|
||||||
|
{
|
||||||
|
MSVCRT_pthreadlocinfo locinfo;
|
||||||
|
MSVCRT_pthreadmbcinfo mbcinfo;
|
||||||
|
} MSVCRT__locale_tstruct, *MSVCRT__locale_t;
|
||||||
|
|
||||||
typedef struct __lc_time_data {
|
typedef struct __lc_time_data {
|
||||||
union {
|
union {
|
||||||
char *str[43];
|
char *str[43];
|
||||||
|
@ -28,5 +92,20 @@ int _setmbcp_l(int, LCID, MSVCRT_pthreadmbcinfo) DECLSPEC_HIDDEN;
|
||||||
MSVCRT_pthreadmbcinfo get_mbcinfo(void) DECLSPEC_HIDDEN;
|
MSVCRT_pthreadmbcinfo get_mbcinfo(void) DECLSPEC_HIDDEN;
|
||||||
LCID MSVCRT_locale_to_LCID(const char *locale) DECLSPEC_HIDDEN;
|
LCID MSVCRT_locale_to_LCID(const char *locale) DECLSPEC_HIDDEN;
|
||||||
|
|
||||||
|
void __init_global_locale();
|
||||||
|
extern MSVCRT__locale_t global_locale;
|
||||||
|
#define MSVCRT_locale __get_MSVCRT_locale()
|
||||||
|
extern inline MSVCRT__locale_t __get_MSVCRT_locale()
|
||||||
|
{
|
||||||
|
if(!global_locale)
|
||||||
|
__init_global_locale();
|
||||||
|
return global_locale;
|
||||||
|
}
|
||||||
|
|
||||||
|
MSVCRT_pthreadlocinfo get_locinfo(void);
|
||||||
|
void __cdecl MSVCRT__free_locale(MSVCRT__locale_t);
|
||||||
|
void free_locinfo(MSVCRT_pthreadlocinfo);
|
||||||
|
void free_mbcinfo(MSVCRT_pthreadmbcinfo);
|
||||||
|
|
||||||
#endif //__CRT_INTERNAL_LOCALE_H
|
#endif //__CRT_INTERNAL_LOCALE_H
|
||||||
|
|
||||||
|
|
|
@ -16,108 +16,42 @@
|
||||||
|
|
||||||
#include <internal/wine/eh.h>
|
#include <internal/wine/eh.h>
|
||||||
|
|
||||||
typedef struct MSVCRT_threadlocaleinfostruct {
|
|
||||||
LONG refcount;
|
|
||||||
unsigned int lc_codepage;
|
|
||||||
unsigned int lc_collate_cp;
|
|
||||||
unsigned long lc_handle[6];
|
|
||||||
LC_ID lc_id[6];
|
|
||||||
struct {
|
|
||||||
char *locale;
|
|
||||||
wchar_t *wlocale;
|
|
||||||
int *refcount;
|
|
||||||
int *wrefcount;
|
|
||||||
} lc_category[6];
|
|
||||||
int lc_clike;
|
|
||||||
int mb_cur_max;
|
|
||||||
int *lconv_intl_refcount;
|
|
||||||
int *lconv_num_refcount;
|
|
||||||
int *lconv_mon_refcount;
|
|
||||||
struct MSVCRT_lconv *lconv;
|
|
||||||
int *ctype1_refcount;
|
|
||||||
unsigned short *ctype1;
|
|
||||||
const unsigned short *pctype;
|
|
||||||
unsigned char *pclmap;
|
|
||||||
unsigned char *pcumap;
|
|
||||||
struct __lc_time_data *lc_time_curr;
|
|
||||||
} MSVCRT_threadlocinfo;
|
|
||||||
|
|
||||||
typedef struct MSVCRT_threadmbcinfostruct {
|
|
||||||
LONG refcount;
|
|
||||||
int mbcodepage;
|
|
||||||
int ismbcodepage;
|
|
||||||
int mblcid;
|
|
||||||
unsigned short mbulinfo[6];
|
|
||||||
char mbctype[257];
|
|
||||||
char mbcasemap[256];
|
|
||||||
} MSVCRT_threadmbcinfo;
|
|
||||||
|
|
||||||
struct MSVCRT_lconv {
|
|
||||||
char* decimal_point;
|
|
||||||
char* thousands_sep;
|
|
||||||
char* grouping;
|
|
||||||
char* int_curr_symbol;
|
|
||||||
char* currency_symbol;
|
|
||||||
char* mon_decimal_point;
|
|
||||||
char* mon_thousands_sep;
|
|
||||||
char* mon_grouping;
|
|
||||||
char* positive_sign;
|
|
||||||
char* negative_sign;
|
|
||||||
char int_frac_digits;
|
|
||||||
char frac_digits;
|
|
||||||
char p_cs_precedes;
|
|
||||||
char p_sep_by_space;
|
|
||||||
char n_cs_precedes;
|
|
||||||
char n_sep_by_space;
|
|
||||||
char p_sign_posn;
|
|
||||||
char n_sign_posn;
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct MSVCRT_threadlocaleinfostruct *MSVCRT_pthreadlocinfo;
|
|
||||||
typedef struct MSVCRT_threadmbcinfostruct *MSVCRT_pthreadmbcinfo;
|
|
||||||
|
|
||||||
typedef struct MSVCRT_localeinfo_struct
|
|
||||||
{
|
|
||||||
MSVCRT_pthreadlocinfo locinfo;
|
|
||||||
MSVCRT_pthreadmbcinfo mbcinfo;
|
|
||||||
} MSVCRT__locale_tstruct, *MSVCRT__locale_t;
|
|
||||||
|
|
||||||
/* TLS data */
|
/* TLS data */
|
||||||
extern DWORD tls_index;
|
extern DWORD tls_index;
|
||||||
|
|
||||||
struct __thread_data {
|
struct __thread_data {
|
||||||
DWORD tid;
|
DWORD tid;
|
||||||
HANDLE handle;
|
HANDLE handle;
|
||||||
int thread_errno;
|
int thread_errno;
|
||||||
unsigned long thread_doserrno;
|
unsigned long thread_doserrno;
|
||||||
int unk1;
|
int unk1;
|
||||||
unsigned int random_seed; /* seed for rand() */
|
unsigned int random_seed; /* seed for rand() */
|
||||||
char *strtok_next; /* next ptr for strtok() */
|
char *strtok_next; /* next ptr for strtok() */
|
||||||
wchar_t *wcstok_next; /* next ptr for wcstok() */
|
wchar_t *wcstok_next; /* next ptr for wcstok() */
|
||||||
unsigned char *mbstok_next; /* next ptr for mbstok() */
|
unsigned char *mbstok_next; /* next ptr for mbstok() */
|
||||||
char *strerror_buffer; /* buffer for strerror */
|
char *strerror_buffer; /* buffer for strerror */
|
||||||
wchar_t *wcserror_buffer; /* buffer for wcserror */
|
wchar_t *wcserror_buffer; /* buffer for wcserror */
|
||||||
char *tmpnam_buffer; /* buffer for tmpname() */
|
char *tmpnam_buffer; /* buffer for tmpname() */
|
||||||
wchar_t *wtmpnam_buffer; /* buffer for wtmpname() */
|
wchar_t *wtmpnam_buffer; /* buffer for wtmpname() */
|
||||||
void *unk2[2];
|
void *unk2[2];
|
||||||
char *asctime_buffer; /* buffer for asctime */
|
char *asctime_buffer; /* buffer for asctime */
|
||||||
wchar_t *wasctime_buffer; /* buffer for wasctime */
|
wchar_t *wasctime_buffer; /* buffer for wasctime */
|
||||||
struct tm *time_buffer; /* buffer for localtime/gmtime */
|
struct tm *time_buffer; /* buffer for localtime/gmtime */
|
||||||
char *efcvt_buffer; /* buffer for ecvt/fcvt */
|
char *efcvt_buffer; /* buffer for ecvt/fcvt */
|
||||||
int unk3[2];
|
int unk3[2];
|
||||||
void *unk4[4];
|
void *unk4[4];
|
||||||
int fpecode;
|
int fpecode;
|
||||||
MSVCRT_pthreadmbcinfo mbcinfo;
|
struct MSVCRT_threadmbcinfostruct *mbcinfo;
|
||||||
MSVCRT_pthreadlocinfo locinfo;
|
struct MSVCRT_threadlocaleinfostruct *locinfo;
|
||||||
BOOL have_locale;
|
BOOL have_locale;
|
||||||
int unk5[1];
|
int unk5[1];
|
||||||
terminate_function terminate_handler;
|
terminate_function terminate_handler;
|
||||||
unexpected_function unexpected_handler;
|
unexpected_function unexpected_handler;
|
||||||
_se_translator_function se_translator;
|
_se_translator_function se_translator;
|
||||||
void *unk6[3];
|
void *unk6[3];
|
||||||
int unk7;
|
int unk7;
|
||||||
EXCEPTION_RECORD *exc_record;
|
EXCEPTION_RECORD *exc_record;
|
||||||
void *unk8[100];
|
void *unk8[100];
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct __thread_data thread_data_t;
|
typedef struct __thread_data thread_data_t;
|
||||||
|
@ -130,21 +64,6 @@ extern inline void msvcrt_free_tls_mem(void);
|
||||||
#define MSVCRT_ENABLE_PER_THREAD_LOCALE 1
|
#define MSVCRT_ENABLE_PER_THREAD_LOCALE 1
|
||||||
#define MSVCRT_DISABLE_PER_THREAD_LOCALE 2
|
#define MSVCRT_DISABLE_PER_THREAD_LOCALE 2
|
||||||
|
|
||||||
void __init_global_locale();
|
|
||||||
extern MSVCRT__locale_t global_locale;
|
|
||||||
#define MSVCRT_locale __get_MSVCRT_locale()
|
|
||||||
extern inline MSVCRT__locale_t __get_MSVCRT_locale()
|
|
||||||
{
|
|
||||||
if(!global_locale)
|
|
||||||
__init_global_locale();
|
|
||||||
return global_locale;
|
|
||||||
}
|
|
||||||
|
|
||||||
MSVCRT_pthreadlocinfo get_locinfo(void);
|
|
||||||
void __cdecl MSVCRT__free_locale(MSVCRT__locale_t);
|
|
||||||
void free_locinfo(MSVCRT_pthreadlocinfo);
|
|
||||||
void free_mbcinfo(MSVCRT_pthreadmbcinfo);
|
|
||||||
|
|
||||||
#endif /* __MSVCRT_INTERNAL_TLS_H */
|
#endif /* __MSVCRT_INTERNAL_TLS_H */
|
||||||
|
|
||||||
/* EOF */
|
/* EOF */
|
||||||
|
|
Loading…
Reference in a new issue