Piotr Caban : msvcp90: Added numpunct<char> class implementation.

Alexandre Julliard julliard at winehq.org
Thu Dec 29 12:15:49 CST 2011


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

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Thu Dec 29 12:45:30 2011 +0100

msvcp90: Added numpunct<char> class implementation.

---

 dlls/msvcp90/locale.c |   59 +++++++++++++++++++++++++++++-------------------
 1 files changed, 36 insertions(+), 23 deletions(-)

diff --git a/dlls/msvcp90/locale.c b/dlls/msvcp90/locale.c
index 21faf77..aef22f0 100644
--- a/dlls/msvcp90/locale.c
+++ b/dlls/msvcp90/locale.c
@@ -2592,10 +2592,12 @@ MSVCP_size_t __cdecl numpunct_char__Getcat(const locale_facet **facet, const loc
 /* ?do_decimal_point@?$numpunct at D@std@@MBEDXZ */
 /* ?do_decimal_point@?$numpunct at D@std@@MEBADXZ */
 DEFINE_THISCALL_WRAPPER(numpunct_char_do_decimal_point, 4)
+#define call_numpunct_char_do_decimal_point(this) CALL_VTBL_FUNC(this, 4, \
+        char, (const numpunct_char *this), (this))
 char __thiscall numpunct_char_do_decimal_point(const numpunct_char *this)
 {
-    FIXME("(%p) stub\n", this);
-    return 0;
+    TRACE("(%p)\n", this);
+    return this->dp;
 }
 
 /* ?decimal_point@?$numpunct at D@std@@QBEDXZ */
@@ -2603,17 +2605,19 @@ char __thiscall numpunct_char_do_decimal_point(const numpunct_char *this)
 DEFINE_THISCALL_WRAPPER(numpunct_char_decimal_point, 4)
 char __thiscall numpunct_char_decimal_point(const numpunct_char *this)
 {
-    FIXME("(%p) stub\n", this);
-    return 0;
+    TRACE("(%p)\n", this);
+    return call_numpunct_char_do_decimal_point(this);
 }
 
 /* ?do_thousands_sep@?$numpunct at D@std@@MBEDXZ */
 /* ?do_thousands_sep@?$numpunct at D@std@@MEBADXZ */
 DEFINE_THISCALL_WRAPPER(numpunct_char_do_thousands_sep, 4)
+#define call_numpunct_char_do_thousands_sep(this) CALL_VTBL_FUNC(this, 8, \
+        char, (const numpunct_char*), (this))
 char __thiscall numpunct_char_do_thousands_sep(const numpunct_char *this)
 {
-    FIXME("(%p) stub\n", this);
-    return 0;
+    TRACE("(%p)\n", this);
+    return this->sep;
 }
 
 /* ?thousands_sep@?$numpunct at D@std@@QBEDXZ */
@@ -2621,17 +2625,20 @@ char __thiscall numpunct_char_do_thousands_sep(const numpunct_char *this)
 DEFINE_THISCALL_WRAPPER(numpunct_char_thousands_sep, 4)
 char __thiscall numpunct_char_thousands_sep(const numpunct_char *this)
 {
-    FIXME("(%p) stub\n", this);
-    return 0;
+    TRACE("(%p)\n", this);
+    return call_numpunct_char_do_thousands_sep(this);
 }
 
 /* ?do_grouping@?$numpunct at D@std@@MBE?AV?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@2 at XZ */
 /* ?do_grouping@?$numpunct at D@std@@MEBA?AV?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@2 at XZ */
 DEFINE_THISCALL_WRAPPER(numpunct_char_do_grouping, 8)
-basic_string_char* __thiscall numpunct_char_do_grouping(const numpunct_char *this, basic_string_char *ret)
+#define call_numpunct_char_do_grouping(this, ret) CALL_VTBL_FUNC(this, 12, \
+        basic_string_char*, (const numpunct_char*, basic_string_char*), (this, ret))
+basic_string_char* __thiscall numpunct_char_do_grouping(
+        const numpunct_char *this, basic_string_char *ret)
 {
-    FIXME("(%p) stub\n", this);
-    return ret;
+    TRACE("(%p)\n", this);
+    return MSVCP_basic_string_char_ctor_cstr(ret, this->grouping);
 }
 
 /* ?grouping@?$numpunct at D@std@@QBE?AV?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@2 at XZ */
@@ -2639,17 +2646,20 @@ basic_string_char* __thiscall numpunct_char_do_grouping(const numpunct_char *thi
 DEFINE_THISCALL_WRAPPER(numpunct_char_grouping, 8)
 basic_string_char* __thiscall numpunct_char_grouping(const numpunct_char *this, basic_string_char *ret)
 {
-    FIXME("(%p) stub\n", this);
-    return ret;
+    TRACE("(%p)\n", this);
+    return call_numpunct_char_do_grouping(this, ret);
 }
 
 /* ?do_falsename@?$numpunct at D@std@@MBE?AV?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@2 at XZ */
 /* ?do_falsename@?$numpunct at D@std@@MEBA?AV?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@2 at XZ */
 DEFINE_THISCALL_WRAPPER(numpunct_char_do_falsename, 8)
-basic_string_char* __thiscall numpunct_char_do_falsename(const numpunct_char *this, basic_string_char *ret)
+#define call_numpunct_char_do_falsename(this, ret) CALL_VTBL_FUNC(this, 16, \
+        basic_string_char*, (const numpunct_char*, basic_string_char*), (this, ret))
+basic_string_char* __thiscall numpunct_char_do_falsename(
+        const numpunct_char *this, basic_string_char *ret)
 {
-    FIXME("(%p) stub\n", this);
-    return ret;
+    TRACE("(%p)\n", this);
+    return MSVCP_basic_string_char_ctor_cstr(ret, this->false_name);
 }
 
 /* ?falsename@?$numpunct at D@std@@QBE?AV?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@2 at XZ */
@@ -2657,17 +2667,20 @@ basic_string_char* __thiscall numpunct_char_do_falsename(const numpunct_char *th
 DEFINE_THISCALL_WRAPPER(numpunct_char_falsename, 8)
 basic_string_char* __thiscall numpunct_char_falsename(const numpunct_char *this, basic_string_char *ret)
 {
-    FIXME("(%p) stub\n", this);
-    return ret;
+    TRACE("(%p)\n", this);
+    return call_numpunct_char_do_falsename(this, ret);
 }
 
 /* ?do_truename@?$numpunct at D@std@@MBE?AV?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@2 at XZ */
 /* ?do_truename@?$numpunct at D@std@@MEBA?AV?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@2 at XZ */
 DEFINE_THISCALL_WRAPPER(numpunct_char_do_truename, 8)
-basic_string_char* __thiscall numpunct_char_do_truename(const numpunct_char *this, basic_string_char *ret)
+#define call_numpunct_char_do_truename(this, ret) CALL_VTBL_FUNC(this, 20, \
+        basic_string_char*, (const numpunct_char*, basic_string_char*), (this, ret))
+basic_string_char* __thiscall numpunct_char_do_truename(
+        const numpunct_char *this, basic_string_char *ret)
 {
-    FIXME("(%p) stub\n", this);
-    return ret;
+    TRACE("(%p)\n", this);
+    return MSVCP_basic_string_char_ctor_cstr(ret, this->true_name);
 }
 
 /* ?truename@?$numpunct at D@std@@QBE?AV?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@2 at XZ */
@@ -2675,8 +2688,8 @@ basic_string_char* __thiscall numpunct_char_do_truename(const numpunct_char *thi
 DEFINE_THISCALL_WRAPPER(numpunct_char_truename, 8)
 basic_string_char* __thiscall numpunct_char_truename(const numpunct_char *this, basic_string_char *ret)
 {
-    FIXME("(%p) stub\n", this);
-    return ret;
+    TRACE("(%p)\n", this);
+    return call_numpunct_char_do_truename(this, ret);
 }
 
 /* ?id@?$numpunct at _W@std@@2V0locale at 2@A */




More information about the wine-cvs mailing list