Piotr Caban : msvcp90: Added basic_string::_Pdif implementation.
Alexandre Julliard
julliard at winehq.org
Tue Sep 13 12:18:09 CDT 2011
Module: wine
Branch: master
Commit: 8ed4f6e07b76c3c5afb021a1f48b2ae648b0cb39
URL: http://source.winehq.org/git/wine.git/?a=commit;h=8ed4f6e07b76c3c5afb021a1f48b2ae648b0cb39
Author: Piotr Caban <piotr at codeweavers.com>
Date: Tue Sep 13 10:31:27 2011 +0200
msvcp90: Added basic_string::_Pdif implementation.
---
dlls/msvcp90/msvcp90.spec | 8 ++++----
dlls/msvcp90/string.c | 28 ++++++++++++++++++++++++++++
2 files changed, 32 insertions(+), 4 deletions(-)
diff --git a/dlls/msvcp90/msvcp90.spec b/dlls/msvcp90/msvcp90.spec
index 515e05f..51a2ea1 100644
--- a/dlls/msvcp90/msvcp90.spec
+++ b/dlls/msvcp90/msvcp90.spec
@@ -2676,12 +2676,12 @@
@ stub -arch=win64 ?_Osfx@?$basic_ostream at GU?$char_traits at G@std@@@std@@QEAAXXZ
@ stub -arch=win32 ?_Osfx@?$basic_ostream at _WU?$char_traits at _W@std@@@std@@QAEXXZ
@ stub -arch=win64 ?_Osfx@?$basic_ostream at _WU?$char_traits at _W@std@@@std@@QEAAXXZ
-@ stub -arch=win32 ?_Pdif@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@KAIV?$_String_const_iterator at DU?$char_traits at D@std@@V?$allocator at D@2@@2 at 0@Z
-@ stub -arch=win64 ?_Pdif@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@KA_KV?$_String_const_iterator at DU?$char_traits at D@std@@V?$allocator at D@2@@2 at 0@Z
+@ cdecl -arch=win32 ?_Pdif@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@KAIV?$_String_const_iterator at DU?$char_traits at D@std@@V?$allocator at D@2@@2 at 0@Z(ptr ptr ptr ptr) MSVCP_basic_string_char_Pdif
+@ cdecl -arch=win64 ?_Pdif@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@KA_KV?$_String_const_iterator at DU?$char_traits at D@std@@V?$allocator at D@2@@2 at 0@Z(ptr ptr) MSVCP_basic_string_char_Pdif
@ stub -arch=win32 ?_Pdif@?$basic_string at GU?$char_traits at G@std@@V?$allocator at G@2@@std@@KAIV?$_String_const_iterator at GU?$char_traits at G@std@@V?$allocator at G@2@@2 at 0@Z
@ stub -arch=win64 ?_Pdif@?$basic_string at GU?$char_traits at G@std@@V?$allocator at G@2@@std@@KA_KV?$_String_const_iterator at GU?$char_traits at G@std@@V?$allocator at G@2@@2 at 0@Z
-@ stub -arch=win32 ?_Pdif@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@KAIV?$_String_const_iterator at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@2 at 0@Z
-@ stub -arch=win64 ?_Pdif@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@KA_KV?$_String_const_iterator at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@2 at 0@Z
+@ cdecl -arch=win32 ?_Pdif@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@KAIV?$_String_const_iterator at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@2 at 0@Z(ptr ptr ptr ptr) MSVCP_basic_string_wchar_Pdif
+@ cdecl -arch=win64 ?_Pdif@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@KA_KV?$_String_const_iterator at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@2 at 0@Z(ptr ptr ptr ptr) MSVCP_basic_string_wchar_Pdif
@ thiscall -arch=win32 ?_Pnavail@?$basic_streambuf at DU?$char_traits at D@std@@@std@@IBEHXZ(ptr) basic_streambuf_char__Pnavail
@ cdecl -arch=win64 ?_Pnavail@?$basic_streambuf at DU?$char_traits at D@std@@@std@@IEBA_JXZ(ptr) basic_streambuf_char__Pnavail
@ stub -arch=win32 ?_Pnavail@?$basic_streambuf at GU?$char_traits at G@std@@@std@@IBEHXZ
diff --git a/dlls/msvcp90/string.c b/dlls/msvcp90/string.c
index 47c0c03..300c8bd 100644
--- a/dlls/msvcp90/string.c
+++ b/dlls/msvcp90/string.c
@@ -1505,6 +1505,20 @@ String_reverse_iterator_char __thiscall MSVCP_basic_string_char_rend(basic_strin
return ret;
}
+/* ?_Pdif@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@KAIV?$_String_const_iterator at DU?$char_traits at D@std@@V?$allocator at D@2@@2 at 0@Z */
+/* ?_Pdif@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@KA_KV?$_String_const_iterator at DU?$char_traits at D@std@@V?$allocator at D@2@@2 at 0@Z */
+MSVCP_size_t __cdecl MSVCP_basic_string_char_Pdif(String_iterator_char i1, String_iterator_char i2)
+{
+ TRACE("(%p %p) (%p %p)\n", i1.bstr, i1.pos, i2.bstr, i2.pos);
+
+ if((!i1.bstr && i1.pos) || i1.bstr!=i2.bstr) {
+ _invalid_parameter(NULL, NULL, NULL, 0, 0);
+ return 0;
+ }
+
+ return !i1.pos ? 0 : i1.pos-i2.pos;
+}
+
/* basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t>> */
/* ?npos@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@2IB */
/* ?npos@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@2_KB */
@@ -2492,3 +2506,17 @@ String_reverse_iterator_wchar __thiscall MSVCP_basic_string_wchar_rend(basic_str
ret.pos = basic_string_wchar_const_ptr(this);
return ret;
}
+
+/* ?_Pdif@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@KAIV?$_String_const_iterator at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@2 at 0@Z */
+/* ?_Pdif@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@KA_KV?$_String_const_iterator at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@2 at 0@Z */
+MSVCP_size_t __cdecl MSVCP_basic_string_wchar_Pdif(String_iterator_wchar i1, String_iterator_wchar i2)
+{
+ TRACE("(%p %p) (%p %p)\n", i1.bstr, i1.pos, i2.bstr, i2.pos);
+
+ if((!i1.bstr && i1.pos) || i1.bstr!=i2.bstr) {
+ _invalid_parameter(NULL, NULL, NULL, 0, 0);
+ return 0;
+ }
+
+ return !i1.pos ? 0 : i1.pos-i2.pos;
+}
More information about the wine-cvs
mailing list