Piotr Caban : msvcp90: Added operator+(basic_string, char) implementation.
Alexandre Julliard
julliard at winehq.org
Thu Oct 13 14:10:09 CDT 2011
Module: wine
Branch: master
Commit: 5d1af4b6f6bdcf3a8789a21bcdd26c82d8a4bb47
URL: http://source.winehq.org/git/wine.git/?a=commit;h=5d1af4b6f6bdcf3a8789a21bcdd26c82d8a4bb47
Author: Piotr Caban <piotr at codeweavers.com>
Date: Thu Oct 13 14:08:00 2011 +0200
msvcp90: Added operator+(basic_string, char) implementation.
---
dlls/msvcp90/msvcp90.spec | 16 +++++++-------
dlls/msvcp90/string.c | 52 +++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 60 insertions(+), 8 deletions(-)
diff --git a/dlls/msvcp90/msvcp90.spec b/dlls/msvcp90/msvcp90.spec
index ecde9b5..25bb0b9 100644
--- a/dlls/msvcp90/msvcp90.spec
+++ b/dlls/msvcp90/msvcp90.spec
@@ -202,12 +202,12 @@
@ stub -arch=win64 ??$?GO at std@@YA?AV?$complex at O@0 at AEBV10@AEBO at Z
@ cdecl -arch=win32 ??$?HDU?$char_traits at D@std@@V?$allocator at D@1@@std@@YA?AV?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@0 at ABV10@0 at Z(ptr ptr ptr) MSVCP_basic_string_char_concatenate
@ cdecl -arch=win64 ??$?HDU?$char_traits at D@std@@V?$allocator at D@1@@std@@YA?AV?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@0 at AEBV10@0 at Z(ptr ptr ptr) MSVCP_basic_string_char_concatenate
-@ stub -arch=win32 ??$?HDU?$char_traits at D@std@@V?$allocator at D@1@@std@@YA?AV?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@0 at ABV10@D at Z
-@ stub -arch=win64 ??$?HDU?$char_traits at D@std@@V?$allocator at D@1@@std@@YA?AV?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@0 at AEBV10@D at Z
+@ cdecl -arch=win32 ??$?HDU?$char_traits at D@std@@V?$allocator at D@1@@std@@YA?AV?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@0 at ABV10@D at Z(ptr ptr long) MSVCP_basic_string_char_concatenate_bstr_ch
+@ cdecl -arch=win64 ??$?HDU?$char_traits at D@std@@V?$allocator at D@1@@std@@YA?AV?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@0 at AEBV10@D at Z(ptr ptr long) MSVCP_basic_string_char_concatenate_bstr_ch
@ cdecl -arch=win32 ??$?HDU?$char_traits at D@std@@V?$allocator at D@1@@std@@YA?AV?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@0 at ABV10@PBD at Z(ptr ptr str) MSVCP_basic_string_char_concatenate_bstr_cstr
@ cdecl -arch=win64 ??$?HDU?$char_traits at D@std@@V?$allocator at D@1@@std@@YA?AV?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@0 at AEBV10@PEBD at Z(ptr ptr str) MSVCP_basic_string_char_concatenate_bstr_cstr
-@ stub -arch=win32 ??$?HDU?$char_traits at D@std@@V?$allocator at D@1@@std@@YA?AV?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@0 at DABV10@@Z
-@ stub -arch=win64 ??$?HDU?$char_traits at D@std@@V?$allocator at D@1@@std@@YA?AV?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@0 at DAEBV10@@Z
+@ cdecl -arch=win32 ??$?HDU?$char_traits at D@std@@V?$allocator at D@1@@std@@YA?AV?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@0 at DABV10@@Z(ptr long ptr) MSVCP_basic_string_char_concatenate_ch_bstr
+@ cdecl -arch=win64 ??$?HDU?$char_traits at D@std@@V?$allocator at D@1@@std@@YA?AV?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@0 at DAEBV10@@Z(ptr long ptr) MSVCP_basic_string_char_concatenate_ch_bstr
@ cdecl -arch=win32 ??$?HDU?$char_traits at D@std@@V?$allocator at D@1@@std@@YA?AV?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@0 at PBDABV10@@Z(ptr str ptr) MSVCP_basic_string_char_concatenate_cstr_bstr
@ cdecl -arch=win64 ??$?HDU?$char_traits at D@std@@V?$allocator at D@1@@std@@YA?AV?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@0 at PEBDAEBV10@@Z(ptr str ptr) MSVCP_basic_string_char_concatenate_cstr_bstr
@ stub -arch=win32 ??$?HGU?$char_traits at G@std@@V?$allocator at G@1@@std@@YA?AV?$basic_string at GU?$char_traits at G@std@@V?$allocator at G@2@@0 at ABV10@0 at Z
@@ -248,12 +248,12 @@
@ cdecl -arch=win64 ??$?H_WU?$char_traits at _W@std@@V?$allocator at _W@1@@std@@YA?AV?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@0 at AEBV10@0 at Z(ptr ptr ptr) MSVCP_basic_string_wchar_concatenate
@ cdecl -arch=win32 ??$?H_WU?$char_traits at _W@std@@V?$allocator at _W@1@@std@@YA?AV?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@0 at ABV10@PB_W at Z(ptr ptr wstr) MSVCP_basic_string_wchar_concatenate_bstr_cstr
@ cdecl -arch=win64 ??$?H_WU?$char_traits at _W@std@@V?$allocator at _W@1@@std@@YA?AV?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@0 at AEBV10@PEB_W at Z(ptr ptr wstr) MSVCP_basic_string_wchar_concatenate_bstr_cstr
-@ stub -arch=win32 ??$?H_WU?$char_traits at _W@std@@V?$allocator at _W@1@@std@@YA?AV?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@0 at ABV10@_W at Z
-@ stub -arch=win64 ??$?H_WU?$char_traits at _W@std@@V?$allocator at _W@1@@std@@YA?AV?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@0 at AEBV10@_W at Z
+@ cdecl -arch=win32 ??$?H_WU?$char_traits at _W@std@@V?$allocator at _W@1@@std@@YA?AV?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@0 at ABV10@_W at Z(ptr ptr long) MSVCP_basic_string_wchar_concatenate_bstr_ch
+@ cdecl -arch=win64 ??$?H_WU?$char_traits at _W@std@@V?$allocator at _W@1@@std@@YA?AV?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@0 at AEBV10@_W at Z(ptr ptr long) MSVCP_basic_string_wchar_concatenate_bstr_ch
@ cdecl -arch=win32 ??$?H_WU?$char_traits at _W@std@@V?$allocator at _W@1@@std@@YA?AV?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@0 at PB_WABV10@@Z(ptr wstr ptr) MSVCP_basic_string_wchar_concatenate_cstr_bstr
@ cdecl -arch=win64 ??$?H_WU?$char_traits at _W@std@@V?$allocator at _W@1@@std@@YA?AV?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@0 at PEB_WAEBV10@@Z(ptr wstr ptr) MSVCP_basic_string_wchar_concatenate_cstr_bstr
-@ stub -arch=win32 ??$?H_WU?$char_traits at _W@std@@V?$allocator at _W@1@@std@@YA?AV?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@0 at _WABV10@@Z
-@ stub -arch=win64 ??$?H_WU?$char_traits at _W@std@@V?$allocator at _W@1@@std@@YA?AV?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@0 at _WAEBV10@@Z
+@ cdecl -arch=win32 ??$?H_WU?$char_traits at _W@std@@V?$allocator at _W@1@@std@@YA?AV?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@0 at _WABV10@@Z(ptr long ptr) MSVCP_basic_string_wchar_concatenate_ch_bstr
+@ cdecl -arch=win64 ??$?H_WU?$char_traits at _W@std@@V?$allocator at _W@1@@std@@YA?AV?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@0 at _WAEBV10@@Z(ptr long ptr) MSVCP_basic_string_wchar_concatenate_ch_bstr
@ stub -arch=win32 ??$?KM at std@@YA?AV?$complex at M@0 at ABMABV10@@Z
@ stub -arch=win64 ??$?KM at std@@YA?AV?$complex at M@0 at AEBMAEBV10@@Z
@ stub -arch=win32 ??$?KM at std@@YA?AV?$complex at M@0 at ABV10@0 at Z
diff --git a/dlls/msvcp90/string.c b/dlls/msvcp90/string.c
index c89b793..59bc270 100644
--- a/dlls/msvcp90/string.c
+++ b/dlls/msvcp90/string.c
@@ -1078,6 +1078,30 @@ basic_string_char* __cdecl MSVCP_basic_string_char_concatenate(basic_string_char
return ret;
}
+/* ??$?HDU?$char_traits at D@std@@V?$allocator at D@1@@std@@YA?AV?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@0 at ABV10@D at Z */
+/* ??$?HDU?$char_traits at D@std@@V?$allocator at D@1@@std@@YA?AV?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@0 at AEBV10@D at Z */
+basic_string_char* __cdecl MSVCP_basic_string_char_concatenate_bstr_ch(basic_string_char *ret,
+ const basic_string_char *left, char right)
+{
+ TRACE("%p %c\n", left, right);
+
+ MSVCP_basic_string_char_copy_ctor(ret, left);
+ MSVCP_basic_string_char_append_ch(ret, right);
+ return ret;
+}
+
+/* ??$?HDU?$char_traits at D@std@@V?$allocator at D@1@@std@@YA?AV?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@0 at DABV10@@Z */
+/* ??$?HDU?$char_traits at D@std@@V?$allocator at D@1@@std@@YA?AV?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@0 at DAEBV10@@Z */
+basic_string_char* __cdecl MSVCP_basic_string_char_concatenate_ch_bstr(basic_string_char *ret,
+ char left, const basic_string_char *right)
+{
+ TRACE("%c %p\n", left, right);
+
+ MSVCP_basic_string_char_ctor_cstr_len(ret, &left, 1);
+ MSVCP_basic_string_char_append(ret, right);
+ return ret;
+}
+
/* ?compare@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QBEHIIPBDI at Z */
/* ?compare@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QEBAH_K0PEBD0 at Z */
DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_substr_cstr_len, 20)
@@ -2147,6 +2171,34 @@ basic_string_wchar* __cdecl MSVCP_basic_string_wchar_concatenate(basic_string_wc
return ret;
}
+/* ??$?H_WU?$char_traits at _W@std@@V?$allocator at _W@1@@std@@YA?AV?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@0 at ABV10@_W at Z */
+/* ??$?H_WU?$char_traits at _W@std@@V?$allocator at _W@1@@std@@YA?AV?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@0 at AEBV10@_W at Z */
+basic_string_wchar __cdecl MSVCP_basic_string_wchar_concatenate_bstr_ch(
+ const basic_string_wchar *left, wchar_t right)
+{
+ basic_string_wchar ret = { 0 };
+
+ TRACE("%p %c\n", left, right);
+
+ MSVCP_basic_string_wchar_copy_ctor(&ret, left);
+ MSVCP_basic_string_wchar_append_ch(&ret, right);
+ return ret;
+}
+
+/* ??$?H_WU?$char_traits at _W@std@@V?$allocator at _W@1@@std@@YA?AV?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@0 at _WABV10@@Z */
+/* ??$?H_WU?$char_traits at _W@std@@V?$allocator at _W@1@@std@@YA?AV?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@0 at _WAEBV10@@Z */
+basic_string_wchar __cdecl MSVCP_basic_string_wchar_concatenate_ch_bstr(
+ wchar_t left, const basic_string_wchar *right)
+{
+ basic_string_wchar ret = { 0 };
+
+ TRACE("%c %p\n", left, right);
+
+ MSVCP_basic_string_wchar_ctor_cstr_len(&ret, &left, 1);
+ MSVCP_basic_string_wchar_append(&ret, right);
+ return ret;
+}
+
/* ?compare@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QBEHIIPB_WI at Z */
/* ?compare@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QEBAH_K0PEB_W0 at Z */
DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr_cstr_len, 20)
More information about the wine-cvs
mailing list