Piotr Caban : msvcp60: Added locale::_Getfacet export.

Alexandre Julliard julliard at winehq.org
Wed Nov 28 14:14:05 CST 2012


Module: wine
Branch: master
Commit: 08280758dd84a7bfac239371896201b65c0b06ef
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=08280758dd84a7bfac239371896201b65c0b06ef

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Tue Nov 27 21:12:04 2012 +0000

msvcp60: Added locale::_Getfacet export.

---

 dlls/msvcp60/locale.c     |   42 ++++++++++++++++++++++--------------------
 dlls/msvcp60/msvcp60.spec |    4 ++--
 2 files changed, 24 insertions(+), 22 deletions(-)

diff --git a/dlls/msvcp60/locale.c b/dlls/msvcp60/locale.c
index f225b4d..d6bd542 100644
--- a/dlls/msvcp60/locale.c
+++ b/dlls/msvcp60/locale.c
@@ -42,7 +42,7 @@ char* __cdecl _Getmonths(void);
 void* __cdecl _Gettnames(void);
 unsigned int __cdecl ___lc_codepage_func(void);
 LCID* __cdecl ___lc_handle_func(void);
-static const locale_facet* locale__Getfacet(const locale*, MSVCP_size_t);
+const locale_facet* __thiscall locale__Getfacet(const locale*, MSVCP_size_t, MSVCP_bool);
 
 typedef int category;
 
@@ -1318,7 +1318,7 @@ ctype_char* ctype_char_use_facet(const locale *loc)
     const locale_facet *fac;
 
     _Lockit_ctor_locktype(&lock, _LOCK_LOCALE);
-    fac = locale__Getfacet(loc, locale_id_operator_size_t(&ctype_char_id));
+    fac = locale__Getfacet(loc, locale_id_operator_size_t(&ctype_char_id), TRUE);
     if(fac) {
         _Lockit_dtor(&lock);
         return (ctype_char*)fac;
@@ -1965,7 +1965,7 @@ ctype_wchar* ctype_wchar_use_facet(const locale *loc)
     const locale_facet *fac;
 
     _Lockit_ctor_locktype(&lock, _LOCK_LOCALE);
-    fac = locale__Getfacet(loc, locale_id_operator_size_t(&ctype_wchar_id));
+    fac = locale__Getfacet(loc, locale_id_operator_size_t(&ctype_wchar_id), TRUE);
     if(fac) {
         _Lockit_dtor(&lock);
         return (ctype_wchar*)fac;
@@ -1993,7 +1993,7 @@ ctype_wchar* ctype_short_use_facet(const locale *loc)
     const locale_facet *fac;
 
     _Lockit_ctor_locktype(&lock, _LOCK_LOCALE);
-    fac = locale__Getfacet(loc, locale_id_operator_size_t(&ctype_short_id));
+    fac = locale__Getfacet(loc, locale_id_operator_size_t(&ctype_short_id), TRUE);
     if(fac) {
         _Lockit_dtor(&lock);
         return (ctype_wchar*)fac;
@@ -2460,7 +2460,7 @@ codecvt_char* codecvt_char_use_facet(const locale *loc)
     const locale_facet *fac;
 
     _Lockit_ctor_locktype(&lock, _LOCK_LOCALE);
-    fac = locale__Getfacet(loc, locale_id_operator_size_t(&codecvt_char_id));
+    fac = locale__Getfacet(loc, locale_id_operator_size_t(&codecvt_char_id), TRUE);
     if(fac) {
         _Lockit_dtor(&lock);
         return (codecvt_char*)fac;
@@ -2698,7 +2698,7 @@ static codecvt_wchar* codecvt_wchar_use_facet(const locale *loc)
     const locale_facet *fac;
 
     _Lockit_ctor_locktype(&lock, _LOCK_LOCALE);
-    fac = locale__Getfacet(loc, locale_id_operator_size_t(&codecvt_wchar_id));
+    fac = locale__Getfacet(loc, locale_id_operator_size_t(&codecvt_wchar_id), TRUE);
     if(fac) {
         _Lockit_dtor(&lock);
         return (codecvt_wchar*)fac;
@@ -2750,7 +2750,7 @@ codecvt_wchar* codecvt_short_use_facet(const locale *loc)
     const locale_facet *fac;
 
     _Lockit_ctor_locktype(&lock, _LOCK_LOCALE);
-    fac = locale__Getfacet(loc, locale_id_operator_size_t(&codecvt_short_id));
+    fac = locale__Getfacet(loc, locale_id_operator_size_t(&codecvt_short_id), TRUE);
     if(fac) {
         _Lockit_dtor(&lock);
         return (codecvt_wchar*)fac;
@@ -3120,7 +3120,7 @@ static numpunct_char* numpunct_char_use_facet(const locale *loc)
     const locale_facet *fac;
 
     _Lockit_ctor_locktype(&lock, _LOCK_LOCALE);
-    fac = locale__Getfacet(loc, locale_id_operator_size_t(&numpunct_char_id));
+    fac = locale__Getfacet(loc, locale_id_operator_size_t(&numpunct_char_id), TRUE);
     if(fac) {
         _Lockit_dtor(&lock);
         return (numpunct_char*)fac;
@@ -3456,7 +3456,7 @@ static numpunct_wchar* numpunct_wchar_use_facet(const locale *loc)
     const locale_facet *fac;
 
     _Lockit_ctor_locktype(&lock, _LOCK_LOCALE);
-    fac = locale__Getfacet(loc, locale_id_operator_size_t(&numpunct_wchar_id));
+    fac = locale__Getfacet(loc, locale_id_operator_size_t(&numpunct_wchar_id), TRUE);
     if(fac) {
         _Lockit_dtor(&lock);
         return (numpunct_wchar*)fac;
@@ -3504,7 +3504,7 @@ static numpunct_wchar* numpunct_short_use_facet(const locale *loc)
     const locale_facet *fac;
 
     _Lockit_ctor_locktype(&lock, _LOCK_LOCALE);
-    fac = locale__Getfacet(loc, locale_id_operator_size_t(&numpunct_short_id));
+    fac = locale__Getfacet(loc, locale_id_operator_size_t(&numpunct_short_id), TRUE);
     if(fac) {
         _Lockit_dtor(&lock);
         return (numpunct_wchar*)fac;
@@ -3866,7 +3866,7 @@ static num_get* num_get_wchar_use_facet(const locale *loc)
         const locale_facet *fac;
 
         _Lockit_ctor_locktype(&lock, _LOCK_LOCALE);
-        fac = locale__Getfacet(loc, locale_id_operator_size_t(&num_get_wchar_id));
+        fac = locale__Getfacet(loc, locale_id_operator_size_t(&num_get_wchar_id), TRUE);
         if(fac) {
             _Lockit_dtor(&lock);
             return (num_get*)fac;
@@ -3906,7 +3906,7 @@ num_get* num_get_short_use_facet(const locale *loc)
     const locale_facet *fac;
 
     _Lockit_ctor_locktype(&lock, _LOCK_LOCALE);
-    fac = locale__Getfacet(loc, locale_id_operator_size_t(&num_get_short_id));
+    fac = locale__Getfacet(loc, locale_id_operator_size_t(&num_get_short_id), TRUE);
     if(fac) {
         _Lockit_dtor(&lock);
         return (num_get*)fac;
@@ -4878,7 +4878,7 @@ num_get* num_get_char_use_facet(const locale *loc)
     const locale_facet *fac;
 
     _Lockit_ctor_locktype(&lock, _LOCK_LOCALE);
-    fac = locale__Getfacet(loc, locale_id_operator_size_t(&num_get_char_id));
+    fac = locale__Getfacet(loc, locale_id_operator_size_t(&num_get_char_id), TRUE);
     if(fac) {
         _Lockit_dtor(&lock);
         return (num_get*)fac;
@@ -5632,7 +5632,7 @@ num_put* num_put_char_use_facet(const locale *loc)
     const locale_facet *fac;
 
     _Lockit_ctor_locktype(&lock, _LOCK_LOCALE);
-    fac = locale__Getfacet(loc, locale_id_operator_size_t(&num_put_char_id));
+    fac = locale__Getfacet(loc, locale_id_operator_size_t(&num_put_char_id), TRUE);
     if(fac) {
         _Lockit_dtor(&lock);
         return (num_put*)fac;
@@ -6242,7 +6242,7 @@ static num_put* num_put_wchar_use_facet(const locale *loc)
     const locale_facet *fac;
 
     _Lockit_ctor_locktype(&lock, _LOCK_LOCALE);
-    fac = locale__Getfacet(loc, locale_id_operator_size_t(&num_put_wchar_id));
+    fac = locale__Getfacet(loc, locale_id_operator_size_t(&num_put_wchar_id), TRUE);
     if(fac) {
         _Lockit_dtor(&lock);
         return (num_put*)fac;
@@ -6270,7 +6270,7 @@ num_put* num_put_short_use_facet(const locale *loc)
     const locale_facet *fac;
 
     _Lockit_ctor_locktype(&lock, _LOCK_LOCALE);
-    fac = locale__Getfacet(loc, locale_id_operator_size_t(&num_put_short_id));
+    fac = locale__Getfacet(loc, locale_id_operator_size_t(&num_put_short_id), TRUE);
     if(fac) {
         _Lockit_dtor(&lock);
         return (num_put*)fac;
@@ -7559,16 +7559,18 @@ locale* __thiscall locale__Addfac(locale *this, locale_facet *facet, MSVCP_size_
     return this;
 }
 
-/* ?_Getfacet at locale@std@@QBEPBVfacet at 12@I at Z */
-/* ?_Getfacet at locale@std@@QEBAPEBVfacet at 12@_K at Z */
-static const locale_facet* locale__Getfacet(const locale *this, MSVCP_size_t id)
+/* ?_Getfacet at locale@std@@QBEPBVfacet at 12@I_N at Z */
+/* ?_Getfacet at locale@std@@QEBAPEBVfacet at 12@_K_N at Z */
+DEFINE_THISCALL_WRAPPER(locale__Getfacet, 12)
+const locale_facet* __thiscall locale__Getfacet(const locale *this,
+        MSVCP_size_t id, MSVCP_bool allow_transparent)
 {
     locale_facet *fac;
 
     TRACE("(%p %lu)\n", this, id);
 
     fac = id < this->ptr->facet_cnt ? this->ptr->facetvec[id] : NULL;
-    if(fac || !this->ptr->transparent)
+    if(fac || !this->ptr->transparent || !allow_transparent)
         return fac;
 
     return id < global_locale->facet_cnt ? global_locale->facetvec[id] : NULL;
diff --git a/dlls/msvcp60/msvcp60.spec b/dlls/msvcp60/msvcp60.spec
index 121cf11..6e8bddd 100644
--- a/dlls/msvcp60/msvcp60.spec
+++ b/dlls/msvcp60/msvcp60.spec
@@ -2148,8 +2148,8 @@
 @ cdecl -arch=win64 ?_Getcvt at _Locinfo@std@@QEBA?AU_Cvtvec@@XZ(ptr ptr) _Locinfo__Getcvt
 @ thiscall -arch=win32 ?_Getdays at _Locinfo@std@@QBEPBDXZ(ptr) _Locinfo__Getdays
 @ cdecl -arch=win64 ?_Getdays at _Locinfo@std@@QEBAPEBDXZ(ptr) _Locinfo__Getdays
-@ stub -arch=win32 ?_Getfacet at locale@std@@QBEPBVfacet at 12@I_N at Z
-@ stub -arch=win64 ?_Getfacet at locale@std@@QEBAPEBVfacet at 12@_K_N at Z
+@ thiscall -arch=win32 ?_Getfacet at locale@std@@QBEPBVfacet at 12@I_N at Z(ptr long long) locale__Getfacet
+@ cdecl -arch=win64 ?_Getfacet at locale@std@@QEBAPEBVfacet at 12@_K_N at Z(ptr long long) locale__Getfacet
 @ thiscall -arch=win32 ?_Getfalse at _Locinfo@std@@QBEPBDXZ(ptr) _Locinfo__Getfalse
 @ cdecl -arch=win64 ?_Getfalse at _Locinfo@std@@QEBAPEBDXZ(ptr) _Locinfo__Getfalse
 @ stub -arch=win32 ?_Getffld@?$num_get at DV?$istreambuf_iterator at DU?$char_traits at D@std@@@std@@@std@@CAHPADAAV?$istreambuf_iterator at DU?$char_traits at D@std@@@2 at 1ABVlocale@2@@Z




More information about the wine-cvs mailing list