Piotr Caban : msvcp90: Added _Locinfo::_Addcats partial implementation.
Alexandre Julliard
julliard at winehq.org
Tue Dec 6 15:46:18 CST 2011
Module: wine
Branch: master
Commit: bff3f0cd3c75253c6163e6e698026c7948d94e8b
URL: http://source.winehq.org/git/wine.git/?a=commit;h=bff3f0cd3c75253c6163e6e698026c7948d94e8b
Author: Piotr Caban <piotr at codeweavers.com>
Date: Tue Dec 6 12:49:01 2011 +0100
msvcp90: Added _Locinfo::_Addcats partial implementation.
---
dlls/msvcp90/locale.c | 27 +++++++++++++++++++++++----
1 files changed, 23 insertions(+), 4 deletions(-)
diff --git a/dlls/msvcp90/locale.c b/dlls/msvcp90/locale.c
index 2614724..0cc0c58 100644
--- a/dlls/msvcp90/locale.c
+++ b/dlls/msvcp90/locale.c
@@ -814,8 +814,28 @@ void __thiscall _Locinfo_dtor(_Locinfo *this)
/* ?_Locinfo_Addcats at _Locinfo@std@@SAAEAV12 at PEAV12@HPEBD at Z */
_Locinfo* __cdecl _Locinfo__Locinfo_Addcats(_Locinfo *locinfo, int category, const char *locstr)
{
- FIXME("%p %d %s) stub\n", locinfo, category, locstr);
- return NULL;
+ const char *locale = 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_dtor(&locinfo->newlocname);
+
+ 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;
}
/* ?_Addcats at _Locinfo@std@@QAEAAV12 at HPBD@Z */
@@ -823,8 +843,7 @@ _Locinfo* __cdecl _Locinfo__Locinfo_Addcats(_Locinfo *locinfo, int category, con
DEFINE_THISCALL_WRAPPER(_Locinfo__Addcats, 12)
_Locinfo* __thiscall _Locinfo__Addcats(_Locinfo *this, int category, const char *locstr)
{
- FIXME("(%p %d %s) stub\n", this, category, locstr);
- return NULL;
+ return _Locinfo__Locinfo_Addcats(this, category, locstr);
}
/* ?_Getcoll at _Locinfo@std@@QBE?AU_Collvec@@XZ */
More information about the wine-cvs
mailing list