Module: wine Branch: master Commit: ab7914ce967097e74c544eea7b18f8ead0e4bcb7 URL: http://source.winehq.org/git/wine.git/?a=commit;h=ab7914ce967097e74c544eea7b... Author: Piotr Caban <piotr(a)codeweavers.com> Date: Wed Jun 22 19:15:05 2011 +0200 msvcp90: Added basic_string operator== implementation. --- dlls/msvcp90/msvcp90.spec | 24 +++++++++++----------- dlls/msvcp90/string.c | 48 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+), 12 deletions(-) diff --git a/dlls/msvcp90/msvcp90.spec b/dlls/msvcp90/msvcp90.spec index 0dbd473..abed9c4 100644 --- a/dlls/msvcp90/msvcp90.spec +++ b/dlls/msvcp90/msvcp90.spec @@ -86,12 +86,12 @@ @ stub -arch=win64 ??$?6_WU?$char_traits(a)_W@std@@@std@@YAAEAV?$basic_ostream(a)_WU?$char_traits(a)_W@std@@@0(a)AEAV10@_W(a)Z @ stub -arch=win32 ??$?6_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@1@@std@@YAAAV?$basic_ostream(a)_WU?$char_traits(a)_W@std@@@0(a)AAV10@ABV?$basic_string(a)_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@2@@0@@Z @ stub -arch=win64 ??$?6_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@1@@std@@YAAEAV?$basic_ostream(a)_WU?$char_traits(a)_W@std@@@0(a)AEAV10@AEBV?$basic_string(a)_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@2@@0@@Z -@ stub -arch=win32 ??$?8DU?$char_traits(a)D@std@@V?$allocator(a)D@1@@std@@YA_NABV?$basic_string(a)DU?$char_traits(a)D@std@@V?$allocator(a)D@2@@0(a)0@Z -@ stub -arch=win64 ??$?8DU?$char_traits(a)D@std@@V?$allocator(a)D@1@@std@@YA_NAEBV?$basic_string(a)DU?$char_traits(a)D@std@@V?$allocator(a)D@2@@0(a)0@Z -@ stub -arch=win32 ??$?8DU?$char_traits(a)D@std@@V?$allocator(a)D@1@@std@@YA_NABV?$basic_string(a)DU?$char_traits(a)D@std@@V?$allocator(a)D@2@@0(a)PBD@Z -@ stub -arch=win64 ??$?8DU?$char_traits(a)D@std@@V?$allocator(a)D@1@@std@@YA_NAEBV?$basic_string(a)DU?$char_traits(a)D@std@@V?$allocator(a)D@2@@0(a)PEBD@Z -@ stub -arch=win32 ??$?8DU?$char_traits(a)D@std@@V?$allocator(a)D@1@@std@@YA_NPBDABV?$basic_string(a)DU?$char_traits(a)D@std@@V?$allocator(a)D@2@@0@@Z -@ stub -arch=win64 ??$?8DU?$char_traits(a)D@std@@V?$allocator(a)D@1@@std@@YA_NPEBDAEBV?$basic_string(a)DU?$char_traits(a)D@std@@V?$allocator(a)D@2@@0@@Z +@ cdecl -arch=win32 ??$?8DU?$char_traits(a)D@std@@V?$allocator(a)D@1@@std@@YA_NABV?$basic_string(a)DU?$char_traits(a)D@std@@V?$allocator(a)D@2@@0(a)0@Z(ptr ptr) MSVCP_basic_string_char_equal +@ cdecl -arch=win64 ??$?8DU?$char_traits(a)D@std@@V?$allocator(a)D@1@@std@@YA_NAEBV?$basic_string(a)DU?$char_traits(a)D@std@@V?$allocator(a)D@2@@0(a)0@Z(ptr ptr) MSVCP_basic_string_char_equal +@ cdecl -arch=win32 ??$?8DU?$char_traits(a)D@std@@V?$allocator(a)D@1@@std@@YA_NABV?$basic_string(a)DU?$char_traits(a)D@std@@V?$allocator(a)D@2@@0(a)PBD@Z(ptr str) MSVCP_basic_string_char_equal_str_cstr +@ cdecl -arch=win64 ??$?8DU?$char_traits(a)D@std@@V?$allocator(a)D@1@@std@@YA_NAEBV?$basic_string(a)DU?$char_traits(a)D@std@@V?$allocator(a)D@2@@0(a)PEBD@Z(ptr str) MSVCP_basic_string_char_equal_str_cstr +@ cdecl -arch=win32 ??$?8DU?$char_traits(a)D@std@@V?$allocator(a)D@1@@std@@YA_NPBDABV?$basic_string(a)DU?$char_traits(a)D@std@@V?$allocator(a)D@2@@0@@Z(str ptr) MSVCP_basic_string_char_equal_cstr_str +@ cdecl -arch=win64 ??$?8DU?$char_traits(a)D@std@@V?$allocator(a)D@1@@std@@YA_NPEBDAEBV?$basic_string(a)DU?$char_traits(a)D@std@@V?$allocator(a)D@2@@0@@Z(str ptr) MSVCP_basic_string_char_equal_cstr_str @ stub -arch=win32 ??$?8GU?$char_traits(a)G@std@@V?$allocator(a)G@1@@std@@YA_NABV?$basic_string(a)GU?$char_traits(a)G@std@@V?$allocator(a)G@2@@0(a)0@Z @ stub -arch=win64 ??$?8GU?$char_traits(a)G@std@@V?$allocator(a)G@1@@std@@YA_NAEBV?$basic_string(a)GU?$char_traits(a)G@std@@V?$allocator(a)G@2@@0(a)0@Z @ stub -arch=win32 ??$?8GU?$char_traits(a)G@std@@V?$allocator(a)G@1@@std@@YA_NABV?$basic_string(a)GU?$char_traits(a)G@std@@V?$allocator(a)G@2@@0(a)PBG@Z @@ -116,12 +116,12 @@ @ stub -arch=win64 ??$?8O(a)std@@YA_NAEBV?$complex(a)O@0(a)0@Z @ stub -arch=win32 ??$?8O(a)std@@YA_NABV?$complex(a)O@0(a)ABO@Z @ stub -arch=win64 ??$?8O(a)std@@YA_NAEBV?$complex(a)O@0(a)AEBO@Z -@ stub -arch=win32 ??$?8_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@1@@std@@YA_NABV?$basic_string(a)_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@2@@0(a)0@Z -@ stub -arch=win64 ??$?8_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@1@@std@@YA_NAEBV?$basic_string(a)_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@2@@0(a)0@Z -@ stub -arch=win32 ??$?8_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@1@@std@@YA_NABV?$basic_string(a)_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@2@@0(a)PB_W@Z -@ stub -arch=win64 ??$?8_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@1@@std@@YA_NAEBV?$basic_string(a)_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@2@@0(a)PEB_W@Z -@ stub -arch=win32 ??$?8_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@1@@std@@YA_NPB_WABV?$basic_string(a)_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@2@@0@@Z -@ stub -arch=win64 ??$?8_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@1@@std@@YA_NPEB_WAEBV?$basic_string(a)_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@2@@0@@Z +@ cdecl -arch=win32 ??$?8_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@1@@std@@YA_NABV?$basic_string(a)_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@2@@0(a)0@Z(ptr ptr) MSVCP_basic_string_wchar_equal +@ cdecl -arch=win64 ??$?8_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@1@@std@@YA_NAEBV?$basic_string(a)_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@2@@0(a)0@Z(ptr ptr) MSVCP_basic_string_wchar_equal +@ cdecl -arch=win32 ??$?8_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@1@@std@@YA_NABV?$basic_string(a)_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@2@@0(a)PB_W@Z(ptr ptr) MSVCP_basic_string_wchar_equal_str_cstr +@ cdecl -arch=win64 ??$?8_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@1@@std@@YA_NAEBV?$basic_string(a)_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@2@@0(a)PEB_W@Z(ptr ptr) MSVCP_basic_string_wchar_equal_str_cstr +@ cdecl -arch=win32 ??$?8_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@1@@std@@YA_NPB_WABV?$basic_string(a)_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@2@@0@@Z(ptr ptr) MSVCP_basic_string_wchar_equal_cstr_str +@ cdecl -arch=win64 ??$?8_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@1@@std@@YA_NPEB_WAEBV?$basic_string(a)_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@2@@0@@Z(ptr ptr) MSVCP_basic_string_wchar_equal_cstr_str @ stub -arch=win32 ??$?9DU?$char_traits(a)D@std@@V?$allocator(a)D@1@@std@@YA_NABV?$basic_string(a)DU?$char_traits(a)D@std@@V?$allocator(a)D@2@@0(a)0@Z @ stub -arch=win64 ??$?9DU?$char_traits(a)D@std@@V?$allocator(a)D@1@@std@@YA_NAEBV?$basic_string(a)DU?$char_traits(a)D@std@@V?$allocator(a)D@2@@0(a)0@Z @ stub -arch=win32 ??$?9DU?$char_traits(a)D@std@@V?$allocator(a)D@1@@std@@YA_NABV?$basic_string(a)DU?$char_traits(a)D@std@@V?$allocator(a)D@2@@0(a)PBD@Z diff --git a/dlls/msvcp90/string.c b/dlls/msvcp90/string.c index 88a542a..7bcc663 100644 --- a/dlls/msvcp90/string.c +++ b/dlls/msvcp90/string.c @@ -1042,6 +1042,30 @@ int __thiscall MSVCP_basic_string_char_compare( basic_string_char_const_ptr(compare), compare->size); } +/* ??$?8DU?$char_traits(a)D@std@@V?$allocator(a)D@1@@std@@YA_NABV?$basic_string(a)DU?$char_traits(a)D@std@@V?$allocator(a)D@2@@0(a)0@Z */ +/* ??$?8DU?$char_traits(a)D@std@@V?$allocator(a)D@1@@std@@YA_NAEBV?$basic_string(a)DU?$char_traits(a)D@std@@V?$allocator(a)D@2@@0(a)0@Z */ +MSVCP_bool __cdecl MSVCP_basic_string_char_equal( + const basic_string_char *left, const basic_string_char *right) +{ + return MSVCP_basic_string_char_compare(left, right) == 0; +} + +/* ??$?8DU?$char_traits(a)D@std@@V?$allocator(a)D@1@@std@@YA_NABV?$basic_string(a)DU?$char_traits(a)D@std@@V?$allocator(a)D@2@@0(a)PBD@Z */ +/* ??$?8DU?$char_traits(a)D@std@@V?$allocator(a)D@1@@std@@YA_NAEBV?$basic_string(a)DU?$char_traits(a)D@std@@V?$allocator(a)D@2@@0(a)PEBD@Z */ +MSVCP_bool __cdecl MSVCP_basic_string_char_equal_str_cstr( + const basic_string_char *left, const char *right) +{ + return MSVCP_basic_string_char_compare_cstr(left, right) == 0; +} + +/* ??$?8DU?$char_traits(a)D@std@@V?$allocator(a)D@1@@std@@YA_NPBDABV?$basic_string(a)DU?$char_traits(a)D@std@@V?$allocator(a)D@2@@0@@Z */ +/* ??$?8DU?$char_traits(a)D@std@@V?$allocator(a)D@1@@std@@YA_NPEBDAEBV?$basic_string(a)DU?$char_traits(a)D@std@@V?$allocator(a)D@2@@0@@Z */ +MSVCP_bool __cdecl MSVCP_basic_string_char_equal_cstr_str( + const char *left, const basic_string_char *right) +{ + return MSVCP_basic_string_char_compare_cstr(right, left) == 0; +} + /* ??$?MDU?$char_traits(a)D@std@@V?$allocator(a)D@1@@std@@YA_NABV?$basic_string(a)DU?$char_traits(a)D@std@@V?$allocator(a)D@2@@0(a)0@Z */ /* ??$?MDU?$char_traits(a)D@std@@V?$allocator(a)D@1@@std@@YA_NAEBV?$basic_string(a)DU?$char_traits(a)D@std@@V?$allocator(a)D@2@@0(a)0@Z */ MSVCP_bool __cdecl MSVCP_basic_string_char_lower( @@ -1812,6 +1836,30 @@ int __thiscall MSVCP_basic_string_wchar_compare( basic_string_wchar_const_ptr(compare), compare->size); } +/* ??$?8_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@1@@std@@YA_NABV?$basic_string(a)_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@2@@0(a)0@Z */ +/* ??$?8_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@1@@std@@YA_NAEBV?$basic_string(a)_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@2@@0(a)0@Z */ +MSVCP_bool __cdecl MSVCP_basic_string_wchar_equal( + const basic_string_wchar *left, const basic_string_wchar *right) +{ + return MSVCP_basic_string_wchar_compare(left, right) == 0; +} + +/* ??$?8_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@1@@std@@YA_NABV?$basic_string(a)_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@2@@0(a)PB_W@Z */ +/* ??$?8_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@1@@std@@YA_NAEBV?$basic_string(a)_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@2@@0(a)PEB_W@Z */ +MSVCP_bool __cdecl MSVCP_basic_string_wchar_equal_str_cstr( + const basic_string_wchar *left, const wchar_t *right) +{ + return MSVCP_basic_string_wchar_compare_cstr(left, right) == 0; +} + +/* ??$?8_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@1@@std@@YA_NPB_WABV?$basic_string(a)_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@2@@0@@Z */ +/* ??$?8_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@1@@std@@YA_NPEB_WAEBV?$basic_string(a)_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@2@@0@@Z */ +MSVCP_bool __cdecl MSVCP_basic_string_wchar_equal_cstr_str( + const wchar_t *left, const basic_string_wchar *right) +{ + return MSVCP_basic_string_wchar_compare_cstr(right, left) == 0; +} + /* ??$?M_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@1@@std@@YA_NABV?$basic_string(a)_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@2@@0(a)0@Z */ /* ??$?M_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@1@@std@@YA_NAEBV?$basic_string(a)_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@2@@0(a)0@Z */ MSVCP_bool __cdecl MSVCP_basic_string_wchar_lower(