msvcp90: Added _Locinfo constructor implementation.
This commit is contained in:
parent
f4518b9a54
commit
e97578e407
@ -712,29 +712,35 @@ void* __thiscall _Timevec__Getptr(_Timevec *this)
|
|||||||
return this->timeptr;
|
return this->timeptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ?_Locinfo_ctor@_Locinfo@std@@SAXPAV12@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
|
|
||||||
/* ?_Locinfo_ctor@_Locinfo@std@@SAXPEAV12@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
|
|
||||||
_Locinfo* __cdecl _Locinfo__Locinfo_ctor_bstr(_Locinfo *locinfo, const basic_string_char *locstr)
|
|
||||||
{
|
|
||||||
FIXME("(%p %p) stub\n", locinfo, locstr);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ??0_Locinfo@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z */
|
|
||||||
/* ??0_Locinfo@std@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z */
|
|
||||||
DEFINE_THISCALL_WRAPPER(_Locinfo_ctor_bstr, 8)
|
|
||||||
_Locinfo* __thiscall _Locinfo_ctor_bstr(_Locinfo *this, const basic_string_char *locstr)
|
|
||||||
{
|
|
||||||
FIXME("(%p %p) stub\n", this, locstr);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ?_Locinfo_ctor@_Locinfo@std@@SAXPAV12@HPBD@Z */
|
/* ?_Locinfo_ctor@_Locinfo@std@@SAXPAV12@HPBD@Z */
|
||||||
/* ?_Locinfo_ctor@_Locinfo@std@@SAXPEAV12@HPEBD@Z */
|
/* ?_Locinfo_ctor@_Locinfo@std@@SAXPEAV12@HPEBD@Z */
|
||||||
_Locinfo* __cdecl _Locinfo__Locinfo_ctor_cat_cstr(_Locinfo *locinfo, int category, const char *locstr)
|
_Locinfo* __cdecl _Locinfo__Locinfo_ctor_cat_cstr(_Locinfo *locinfo, int category, const char *locstr)
|
||||||
{
|
{
|
||||||
FIXME("(%p %d %s) stub\n", locinfo, category, locstr);
|
const char *locale = NULL;
|
||||||
return NULL;
|
|
||||||
|
/* This function is probably modifying more global objects */
|
||||||
|
FIXME("(%p %d %s) semi-stub\n", locinfo, category, locstr);
|
||||||
|
|
||||||
|
if(!locstr)
|
||||||
|
throw_exception(EXCEPTION_RUNTIME_ERROR, "bad locale name");
|
||||||
|
|
||||||
|
_Lockit_ctor_locktype(&locinfo->lock, _LOCK_LOCALE);
|
||||||
|
MSVCP_basic_string_char_ctor_cstr(&locinfo->days, "");
|
||||||
|
MSVCP_basic_string_char_ctor_cstr(&locinfo->months, "");
|
||||||
|
MSVCP_basic_string_char_ctor_cstr(&locinfo->oldlocname, setlocale(LC_ALL, NULL));
|
||||||
|
|
||||||
|
if(category)
|
||||||
|
locale = setlocale(LC_ALL, locstr);
|
||||||
|
else
|
||||||
|
locale = setlocale(LC_ALL, NULL);
|
||||||
|
|
||||||
|
if(locale)
|
||||||
|
MSVCP_basic_string_char_ctor_cstr(&locinfo->newlocname, locale);
|
||||||
|
else
|
||||||
|
MSVCP_basic_string_char_ctor_cstr(&locinfo->newlocname, "*");
|
||||||
|
_Lockit_dtor(&locinfo->lock);
|
||||||
|
|
||||||
|
return locinfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ??0_Locinfo@std@@QAE@HPBD@Z */
|
/* ??0_Locinfo@std@@QAE@HPBD@Z */
|
||||||
@ -742,16 +748,29 @@ _Locinfo* __cdecl _Locinfo__Locinfo_ctor_cat_cstr(_Locinfo *locinfo, int categor
|
|||||||
DEFINE_THISCALL_WRAPPER(_Locinfo_ctor_cat_cstr, 12)
|
DEFINE_THISCALL_WRAPPER(_Locinfo_ctor_cat_cstr, 12)
|
||||||
_Locinfo* __thiscall _Locinfo_ctor_cat_cstr(_Locinfo *this, int category, const char *locstr)
|
_Locinfo* __thiscall _Locinfo_ctor_cat_cstr(_Locinfo *this, int category, const char *locstr)
|
||||||
{
|
{
|
||||||
FIXME("(%p %d %s) stub\n", this, category, locstr);
|
return _Locinfo__Locinfo_ctor_cat_cstr(this, category, locstr);
|
||||||
return NULL;
|
}
|
||||||
|
|
||||||
|
/* ?_Locinfo_ctor@_Locinfo@std@@SAXPAV12@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
|
||||||
|
/* ?_Locinfo_ctor@_Locinfo@std@@SAXPEAV12@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
|
||||||
|
_Locinfo* __cdecl _Locinfo__Locinfo_ctor_bstr(_Locinfo *locinfo, const basic_string_char *locstr)
|
||||||
|
{
|
||||||
|
return _Locinfo__Locinfo_ctor_cat_cstr(locinfo, 1/*FIXME*/, MSVCP_basic_string_char_c_str(locstr));
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ??0_Locinfo@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z */
|
||||||
|
/* ??0_Locinfo@std@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z */
|
||||||
|
DEFINE_THISCALL_WRAPPER(_Locinfo_ctor_bstr, 8)
|
||||||
|
_Locinfo* __thiscall _Locinfo_ctor_bstr(_Locinfo *this, const basic_string_char *locstr)
|
||||||
|
{
|
||||||
|
return _Locinfo__Locinfo_ctor_cat_cstr(this, 1/*FIXME*/, MSVCP_basic_string_char_c_str(locstr));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ?_Locinfo_ctor@_Locinfo@std@@SAXPAV12@PBD@Z */
|
/* ?_Locinfo_ctor@_Locinfo@std@@SAXPAV12@PBD@Z */
|
||||||
/* ?_Locinfo_ctor@_Locinfo@std@@SAXPEAV12@PEBD@Z */
|
/* ?_Locinfo_ctor@_Locinfo@std@@SAXPEAV12@PEBD@Z */
|
||||||
_Locinfo* __cdecl _Locinfo__Locinfo_ctor_cstr(_Locinfo *locinfo, const char *locstr)
|
_Locinfo* __cdecl _Locinfo__Locinfo_ctor_cstr(_Locinfo *locinfo, const char *locstr)
|
||||||
{
|
{
|
||||||
FIXME("(%p %s) stub\n", locinfo, locstr);
|
return _Locinfo__Locinfo_ctor_cat_cstr(locinfo, 1/*FIXME*/, locstr);
|
||||||
return NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ??0_Locinfo@std@@QAE@PBD@Z */
|
/* ??0_Locinfo@std@@QAE@PBD@Z */
|
||||||
@ -759,16 +778,20 @@ _Locinfo* __cdecl _Locinfo__Locinfo_ctor_cstr(_Locinfo *locinfo, const char *loc
|
|||||||
DEFINE_THISCALL_WRAPPER(_Locinfo_ctor_cstr, 8)
|
DEFINE_THISCALL_WRAPPER(_Locinfo_ctor_cstr, 8)
|
||||||
_Locinfo* __thiscall _Locinfo_ctor_cstr(_Locinfo *this, const char *locstr)
|
_Locinfo* __thiscall _Locinfo_ctor_cstr(_Locinfo *this, const char *locstr)
|
||||||
{
|
{
|
||||||
FIXME("(%p %s) stub\n", this, locstr);
|
return _Locinfo__Locinfo_ctor_cat_cstr(this, 1/*FIXME*/, locstr);
|
||||||
return NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ?_Locinfo_dtor@_Locinfo@std@@SAXPAV12@@Z */
|
/* ?_Locinfo_dtor@_Locinfo@std@@SAXPAV12@@Z */
|
||||||
/* ?_Locinfo_dtor@_Locinfo@std@@SAXPEAV12@@Z */
|
/* ?_Locinfo_dtor@_Locinfo@std@@SAXPEAV12@@Z */
|
||||||
_Locinfo* __cdecl _Locinfo__Locinfo_dtor(_Locinfo *locinfo)
|
void __cdecl _Locinfo__Locinfo_dtor(_Locinfo *locinfo)
|
||||||
{
|
{
|
||||||
FIXME("(%p) stub\n", locinfo);
|
TRACE("(%p)\n", locinfo);
|
||||||
return NULL;
|
|
||||||
|
setlocale(LC_ALL, MSVCP_basic_string_char_c_str(&locinfo->oldlocname));
|
||||||
|
MSVCP_basic_string_char_dtor(&locinfo->days);
|
||||||
|
MSVCP_basic_string_char_dtor(&locinfo->months);
|
||||||
|
MSVCP_basic_string_char_dtor(&locinfo->oldlocname);
|
||||||
|
MSVCP_basic_string_char_dtor(&locinfo->newlocname);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ??_F_Locinfo@std@@QAEXXZ */
|
/* ??_F_Locinfo@std@@QAEXXZ */
|
||||||
@ -776,8 +799,7 @@ _Locinfo* __cdecl _Locinfo__Locinfo_dtor(_Locinfo *locinfo)
|
|||||||
DEFINE_THISCALL_WRAPPER(_Locinfo_ctor, 4)
|
DEFINE_THISCALL_WRAPPER(_Locinfo_ctor, 4)
|
||||||
_Locinfo* __thiscall _Locinfo_ctor(_Locinfo *this)
|
_Locinfo* __thiscall _Locinfo_ctor(_Locinfo *this)
|
||||||
{
|
{
|
||||||
FIXME("(%p) stub\n", this);
|
return _Locinfo__Locinfo_ctor_cat_cstr(this, 1/*FIXME*/, "C");
|
||||||
return NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ??1_Locinfo@std@@QAE@XZ */
|
/* ??1_Locinfo@std@@QAE@XZ */
|
||||||
@ -785,7 +807,7 @@ _Locinfo* __thiscall _Locinfo_ctor(_Locinfo *this)
|
|||||||
DEFINE_THISCALL_WRAPPER(_Locinfo_dtor, 4)
|
DEFINE_THISCALL_WRAPPER(_Locinfo_dtor, 4)
|
||||||
void __thiscall _Locinfo_dtor(_Locinfo *this)
|
void __thiscall _Locinfo_dtor(_Locinfo *this)
|
||||||
{
|
{
|
||||||
FIXME("(%p) stub\n", this);
|
_Locinfo__Locinfo_dtor(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ?_Locinfo_Addcats@_Locinfo@std@@SAAAV12@PAV12@HPBD@Z */
|
/* ?_Locinfo_Addcats@_Locinfo@std@@SAAAV12@PAV12@HPBD@Z */
|
||||||
|
@ -172,7 +172,7 @@ typedef struct _basic_string_char
|
|||||||
basic_string_char* __stdcall MSVCP_basic_string_char_ctor_cstr(basic_string_char*, const char*);
|
basic_string_char* __stdcall MSVCP_basic_string_char_ctor_cstr(basic_string_char*, const char*);
|
||||||
basic_string_char* __stdcall MSVCP_basic_string_char_copy_ctor(basic_string_char*, const basic_string_char*);
|
basic_string_char* __stdcall MSVCP_basic_string_char_copy_ctor(basic_string_char*, const basic_string_char*);
|
||||||
void __stdcall MSVCP_basic_string_char_dtor(basic_string_char*);
|
void __stdcall MSVCP_basic_string_char_dtor(basic_string_char*);
|
||||||
const char* __stdcall MSVCP_basic_string_char_c_str(basic_string_char*);
|
const char* __stdcall MSVCP_basic_string_char_c_str(const basic_string_char*);
|
||||||
|
|
||||||
#define BUF_SIZE_WCHAR 8
|
#define BUF_SIZE_WCHAR 8
|
||||||
typedef struct _basic_string_wchar
|
typedef struct _basic_string_wchar
|
||||||
|
@ -882,7 +882,7 @@ MSVCP_size_t __thiscall basic_string_char_copy(const basic_string_char *this,
|
|||||||
/* ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ */
|
/* ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ */
|
||||||
/* ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAPEBDXZ */
|
/* ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAPEBDXZ */
|
||||||
DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_c_str, 4)
|
DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_c_str, 4)
|
||||||
const char* __thiscall MSVCP_basic_string_char_c_str(basic_string_char *this)
|
const char* __thiscall MSVCP_basic_string_char_c_str(const basic_string_char *this)
|
||||||
{
|
{
|
||||||
TRACE("%p\n", this);
|
TRACE("%p\n", this);
|
||||||
return basic_string_char_const_ptr(this);
|
return basic_string_char_const_ptr(this);
|
||||||
@ -2724,7 +2724,7 @@ MSVCP_size_t __thiscall basic_string_wchar_copy(const basic_string_wchar *this,
|
|||||||
/* ?data@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEPBGXZ */
|
/* ?data@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEPBGXZ */
|
||||||
/* ?data@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAPEBGXZ */
|
/* ?data@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAPEBGXZ */
|
||||||
DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_c_str, 4)
|
DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_c_str, 4)
|
||||||
const wchar_t* __thiscall MSVCP_basic_string_wchar_c_str(basic_string_wchar *this)
|
const wchar_t* __thiscall MSVCP_basic_string_wchar_c_str(const basic_string_wchar *this)
|
||||||
{
|
{
|
||||||
TRACE("%p\n", this);
|
TRACE("%p\n", this);
|
||||||
return basic_string_wchar_const_ptr(this);
|
return basic_string_wchar_const_ptr(this);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user