msvcp90: Added char_traits<char> 64-bit exports.
authorPiotr Caban <piotr@codeweavers.com>
Mon, 16 Aug 2010 09:05:39 +0000 (11:05 +0200)
committerAlexandre Julliard <julliard@winehq.org>
Mon, 16 Aug 2010 15:28:56 +0000 (17:28 +0200)
dlls/msvcp90/msvcp90.spec
dlls/msvcp90/string.c

index ff1cecfbd50e0381e042d5797769db7a24718c28..a87cdfa21e2f9c158edcbf6d1274a8b891904bab 100644 (file)
 @ stub -arch=win32 ?_Copy_s@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPA_WIII@Z
 @ stub -arch=win64 ?_Copy_s@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEA_W_K11@Z
 @ cdecl -arch=win32 ?_Copy_s@?$char_traits@D@std@@SAPADPADIPBDI@Z(ptr long ptr long) MSVCP_char_traits_char__Copy_s
-@ stub -arch=win64 ?_Copy_s@?$char_traits@D@std@@SAPEADPEAD_KPEBD1@Z
+@ cdecl -arch=win64 ?_Copy_s@?$char_traits@D@std@@SAPEADPEAD_KPEBD1@Z(ptr long ptr long) MSVCP_char_traits_char__Copy_s
 @ cdecl -arch=win32 ?_Copy_s@?$char_traits@G@std@@SAPAGPAGIPBGI@Z(ptr long ptr long) MSVCP_char_traits_short__Copy_s
 @ stub -arch=win64 ?_Copy_s@?$char_traits@G@std@@SAPEAGPEAG_KPEBG1@Z
 @ cdecl -arch=win32 ?_Copy_s@?$char_traits@_W@std@@SAPA_WPA_WIPB_WI@Z(ptr long ptr long) MSVCP_char_traits_wchar__Copy_s
 @ stub -arch=win32 ?_Makpat@?$_Mpunct@_W@std@@AAEXAAUpattern@money_base@2@III@Z
 @ stub -arch=win64 ?_Makpat@?$_Mpunct@_W@std@@AEAAXAEAUpattern@money_base@2@III@Z
 @ cdecl -arch=win32 ?_Move_s@?$char_traits@D@std@@SAPADPADIPBDI@Z(ptr long ptr long) MSVCP_char_traits_char__Move_s
-@ stub -arch=win64 ?_Move_s@?$char_traits@D@std@@SAPEADPEAD_KPEBD1@Z
+@ cdecl -arch=win64 ?_Move_s@?$char_traits@D@std@@SAPEADPEAD_KPEBD1@Z(ptr long ptr long) MSVCP_char_traits_char__Move_s
 @ cdecl -arch=win32 ?_Move_s@?$char_traits@G@std@@SAPAGPAGIPBGI@Z(ptr long ptr long) MSVCP_char_traits_short__Move_s
 @ stub -arch=win64 ?_Move_s@?$char_traits@G@std@@SAPEAGPEAG_KPEBG1@Z
 @ cdecl -arch=win32 ?_Move_s@?$char_traits@_W@std@@SAPA_WPA_WIPB_WI@Z(ptr long ptr long) MSVCP_char_traits_wchar__Move_s
 @ stub -arch=win32 ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@0@Z
 @ stub -arch=win64 ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K_W@Z
 @ cdecl -arch=win32 ?assign@?$char_traits@D@std@@SAPADPADID@Z(ptr long long) MSVCP_char_traits_char_assignn
-@ stub -arch=win64 ?assign@?$char_traits@D@std@@SAPEADPEAD_KD@Z
+@ cdecl -arch=win64 ?assign@?$char_traits@D@std@@SAPEADPEAD_KD@Z(ptr long long) MSVCP_char_traits_char_assignn
 @ cdecl -arch=win32 ?assign@?$char_traits@D@std@@SAXAADABD@Z(ptr ptr) MSVCP_char_traits_char_assign
-@ stub -arch=win64 ?assign@?$char_traits@D@std@@SAXAEADAEBD@Z
+@ cdecl -arch=win64 ?assign@?$char_traits@D@std@@SAXAEADAEBD@Z(ptr ptr) MSVCP_char_traits_char_assign
 @ cdecl -arch=win32 ?assign@?$char_traits@G@std@@SAPAGPAGIG@Z(ptr long long) MSVCP_char_traits_short_assignn
 @ stub -arch=win64 ?assign@?$char_traits@G@std@@SAPEAGPEAG_KG@Z
 @ cdecl -arch=win32 ?assign@?$char_traits@G@std@@SAXAAGABG@Z(ptr ptr) MSVCP_char_traits_short_assign
 @ stub -arch=win32 ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHPB_W@Z
 @ stub -arch=win64 ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0PEB_W@Z
 @ cdecl -arch=win32 ?compare@?$char_traits@D@std@@SAHPBD0I@Z(ptr ptr long) MSVCP_char_traits_char_compare
-@ stub -arch=win64 ?compare@?$char_traits@D@std@@SAHPEBD0_K@Z
+@ cdecl -arch=win64 ?compare@?$char_traits@D@std@@SAHPEBD0_K@Z(ptr ptr long) MSVCP_char_traits_char_compare
 @ cdecl -arch=win32 ?compare@?$char_traits@G@std@@SAHPBG0I@Z(ptr ptr long) MSVCP_char_traits_short_compare
 @ stub -arch=win64 ?compare@?$char_traits@G@std@@SAHPEBG0_K@Z
 @ cdecl -arch=win32 ?compare@?$char_traits@_W@std@@SAHPB_W0I@Z(ptr ptr long) MSVCP_char_traits_wchar_compare
 @ stub -arch=win32 ?copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPA_WII@Z
 @ stub -arch=win64 ?copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEA_W_K1@Z
 @ cdecl -arch=win32 ?copy@?$char_traits@D@std@@SAPADPADPBDI@Z(ptr ptr long) MSVCP_char_traits_char_copy
-@ stub -arch=win64 ?copy@?$char_traits@D@std@@SAPEADPEADPEBD_K@Z
+@ cdecl -arch=win64 ?copy@?$char_traits@D@std@@SAPEADPEADPEBD_K@Z(ptr ptr long) MSVCP_char_traits_char_copy
 @ cdecl -arch=win32 ?copy@?$char_traits@G@std@@SAPAGPAGPBGI@Z(ptr ptr long) MSVCP_char_traits_short_copy
 @ stub -arch=win64 ?copy@?$char_traits@G@std@@SAPEAGPEAGPEBG_K@Z
 @ cdecl -arch=win32 ?copy@?$char_traits@_W@std@@SAPA_WPA_WPB_WI@Z(ptr ptr long) MSVCP_char_traits_wchar_copy
 @ stub ?epsilon@?$numeric_limits@_N@std@@SA_NXZ
 @ stub ?epsilon@?$numeric_limits@_W@std@@SA_WXZ
 @ cdecl -arch=win32 ?eq@?$char_traits@D@std@@SA_NABD0@Z(ptr ptr) MSVCP_char_traits_char_eq
-@ stub -arch=win64 ?eq@?$char_traits@D@std@@SA_NAEBD0@Z
+@ cdecl -arch=win64 ?eq@?$char_traits@D@std@@SA_NAEBD0@Z(ptr ptr) MSVCP_char_traits_char_eq
 @ cdecl -arch=win32 ?eq@?$char_traits@G@std@@SA_NABG0@Z(ptr ptr) MSVCP_char_traits_short_eq
 @ stub -arch=win64 ?eq@?$char_traits@G@std@@SA_NAEBG0@Z
 @ cdecl -arch=win32 ?eq@?$char_traits@_W@std@@SA_NAB_W0@Z(ptr ptr) MSVCP_char_traits_wchar_eq
 @ stub -arch=win64 ?eq@?$char_traits@_W@std@@SA_NAEB_W0@Z
 @ cdecl -arch=win32 ?eq_int_type@?$char_traits@D@std@@SA_NABH0@Z(ptr ptr) MSVCP_char_traits_char_eq_int_type
-@ stub -arch=win64 ?eq_int_type@?$char_traits@D@std@@SA_NAEBH0@Z
+@ cdecl -arch=win64 ?eq_int_type@?$char_traits@D@std@@SA_NAEBH0@Z(ptr ptr) MSVCP_char_traits_char_eq_int_type
 @ cdecl -arch=win32 ?eq_int_type@?$char_traits@G@std@@SA_NABG0@Z(ptr ptr) MSVCP_char_traits_short_eq_int_type
 @ stub -arch=win64 ?eq_int_type@?$char_traits@G@std@@SA_NAEBG0@Z
 @ cdecl -arch=win32 ?eq_int_type@?$char_traits@_W@std@@SA_NABG0@Z(ptr ptr) MSVCP_char_traits_wchar_eq_int_tpe
 @ stub -arch=win32 ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z
 @ stub -arch=win64 ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z
 @ cdecl -arch=win32 ?find@?$char_traits@D@std@@SAPBDPBDIABD@Z(ptr long ptr) MSVCP_char_traits_char_find
-@ stub -arch=win64 ?find@?$char_traits@D@std@@SAPEBDPEBD_KAEBD@Z
+@ cdecl -arch=win64 ?find@?$char_traits@D@std@@SAPEBDPEBD_KAEBD@Z(ptr long ptr) MSVCP_char_traits_char_find
 @ cdecl -arch=win32 ?find@?$char_traits@G@std@@SAPBGPBGIABG@Z(ptr long ptr) MSVCP_char_traits_short_find
 @ stub -arch=win64 ?find@?$char_traits@G@std@@SAPEBGPEBG_KAEBG@Z
 @ cdecl -arch=win32 ?find@?$char_traits@_W@std@@SAPB_WPB_WIAB_W@Z(ptr long ptr) MSVCP_char_traits_wchar_find
 @ stub -arch=win32 ?length@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ
 @ stub -arch=win64 ?length@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ
 @ cdecl -arch=win32 ?length@?$char_traits@D@std@@SAIPBD@Z(ptr) MSVCP_char_traits_char_length
-@ stub -arch=win64 ?length@?$char_traits@D@std@@SA_KPEBD@Z
+@ cdecl -arch=win64 ?length@?$char_traits@D@std@@SA_KPEBD@Z(ptr) MSVCP_char_traits_char_length
 @ cdecl -arch=win32 ?length@?$char_traits@G@std@@SAIPBG@Z(ptr) MSVCP_char_traits_short_length
 @ stub -arch=win64 ?length@?$char_traits@G@std@@SA_KPEBG@Z
 @ cdecl -arch=win32 ?length@?$char_traits@_W@std@@SAIPB_W@Z(ptr) MSVCP_char_traits_wchar_length
 @ stub ?log@?$_Ctraits@N@std@@SANN@Z
 @ stub ?log@?$_Ctraits@O@std@@SAOO@Z
 @ cdecl -arch=win32 ?lt@?$char_traits@D@std@@SA_NABD0@Z(ptr ptr) MSVCP_char_traits_lt
-@ stub -arch=win64 ?lt@?$char_traits@D@std@@SA_NAEBD0@Z
+@ cdecl -arch=win64 ?lt@?$char_traits@D@std@@SA_NAEBD0@Z(ptr ptr) MSVCP_char_traits_lt
 @ cdecl -arch=win32 ?lt@?$char_traits@G@std@@SA_NABG0@Z(ptr ptr) MSVCP_char_traits_short_lt
 @ stub -arch=win64 ?lt@?$char_traits@G@std@@SA_NAEBG0@Z
 @ cdecl -arch=win32 ?lt@?$char_traits@_W@std@@SA_NAB_W0@Z(ptr ptr) MSVCP_char_traits_wchar_lt
 @ stub ?min_exponent@?$numeric_limits@O@std@@2HB
 @ stub ?min_exponent@_Num_base@std@@2HB
 @ cdecl -arch=win32  ?move@?$char_traits@D@std@@SAPADPADPBDI@Z(ptr ptr long) MSVCP_char_traits_char_move
-@ stub -arch=win64 ?move@?$char_traits@D@std@@SAPEADPEADPEBD_K@Z
+@ cdecl -arch=win64 ?move@?$char_traits@D@std@@SAPEADPEADPEBD_K@Z(ptr ptr long) MSVCP_char_traits_char_move
 @ cdecl -arch=win32 ?move@?$char_traits@G@std@@SAPAGPAGPBGI@Z(ptr ptr long) MSVCP_char_traits_short_move
 @ stub -arch=win64 ?move@?$char_traits@G@std@@SAPEAGPEAGPEBG_K@Z
 @ cdecl -arch=win32 ?move@?$char_traits@_W@std@@SAPA_WPA_WPB_WI@Z(ptr ptr long) MSVCP_char_traits_wchar_move
 @ stub -arch=win32 ?negative_sign@?$_Mpunct@_W@std@@QBE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ
 @ stub -arch=win64 ?negative_sign@?$_Mpunct@_W@std@@QEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ
 @ cdecl -arch=win32 ?not_eof@?$char_traits@D@std@@SAHABH@Z(ptr) MSVCP_char_traits_char_not_eof
-@ stub -arch=win64 ?not_eof@?$char_traits@D@std@@SAHAEBH@Z
+@ cdecl -arch=win64 ?not_eof@?$char_traits@D@std@@SAHAEBH@Z(ptr) MSVCP_char_traits_char_not_eof
 @ cdecl -arch=win32 ?not_eof@?$char_traits@G@std@@SAGABG@Z(ptr) MSVCP_char_traits_short_not_eof
 @ stub -arch=win64 ?not_eof@?$char_traits@G@std@@SAGAEBG@Z
 @ cdecl -arch=win32 ?not_eof@?$char_traits@_W@std@@SAGABG@Z(ptr) MSVCP_char_traits_wchar_not_eof
 @ stub ?tinyness_before@_Num_base@std@@2_NB
 @ stub ?tinyness_before@_Num_float_base@std@@2_NB
 @ cdecl -arch=win32 ?to_char_type@?$char_traits@D@std@@SADABH@Z(ptr) MSVCP_char_traits_char_to_char_type
-@ stub -arch=win64 ?to_char_type@?$char_traits@D@std@@SADAEBH@Z
+@ cdecl -arch=win64 ?to_char_type@?$char_traits@D@std@@SADAEBH@Z(ptr) MSVCP_char_traits_char_to_char_type
 @ cdecl -arch=win32 ?to_char_type@?$char_traits@G@std@@SAGABG@Z(ptr) MSVCP_char_traits_short_to_char_type
 @ stub -arch=win64 ?to_char_type@?$char_traits@G@std@@SAGAEBG@Z
 @ cdecl -arch=win32 ?to_char_type@?$char_traits@_W@std@@SA_WABG@Z(ptr) MSVCP_char_traits_wchar_to_char_type
 @ stub -arch=win64 ?to_char_type@?$char_traits@_W@std@@SA_WAEBG@Z
 @ cdecl -arch=win32 ?to_int_type@?$char_traits@D@std@@SAHABD@Z(ptr) MSVCP_char_traits_char_to_int_type
-@ stub -arch=win64 ?to_int_type@?$char_traits@D@std@@SAHAEBD@Z
+@ cdecl -arch=win64 ?to_int_type@?$char_traits@D@std@@SAHAEBD@Z(ptr) MSVCP_char_traits_char_to_int_type
 @ cdecl -arch=win32 ?to_int_type@?$char_traits@G@std@@SAGABG@Z(ptr) MSVCP_char_traits_short_to_int_type
 @ stub -arch=win64 ?to_int_type@?$char_traits@G@std@@SAGAEBG@Z
 @ cdecl -arch=win32 ?to_int_type@?$char_traits@_W@std@@SAGAB_W@Z(ptr) MSVCP_char_traits_wchar_to_int_type
index a43acfd00c0e7ed4d8eaeb095914a00962ddbca4..edeab05ff095c6dacc5a202efea7c3b03eab3437 100644 (file)
@@ -28,40 +28,46 @@ WINE_DEFAULT_DEBUG_CHANNEL(msvcp90);
 
 /* char_traits<char> */
 /* ?assign@?$char_traits@D@std@@SAXAADABD@Z */
+/* ?assign@?$char_traits@D@std@@SAXAEADAEBD@Z */
 void CDECL MSVCP_char_traits_char_assign(char *ch, const char *assign)
 {
     *ch = *assign;
 }
 
 /* ?eq@?$char_traits@D@std@@SA_NABD0@Z */
+/* ?eq@?$char_traits@D@std@@SA_NAEBD0@Z */
 MSVCP_BOOL CDECL MSVCP_char_traits_char_eq(const char *ch1, const char *ch2)
 {
     return *ch1 == *ch2;
 }
 
 /* ?lt@?$char_traits@D@std@@SA_NABD0@Z */
+/* ?lt@?$char_traits@D@std@@SA_NAEBD0@Z */
 MSVCP_BOOL CDECL MSVCP_char_traits_lt(const char *ch1, const char *ch2)
 {
     return *ch1 < *ch2;
 }
 
-/*?compare@?$char_traits@D@std@@SAHPBD0I@Z */
+/* ?compare@?$char_traits@D@std@@SAHPBD0I@Z */
+/* ?compare@?$char_traits@D@std@@SAHPEBD0_K@Z */
 int CDECL MSVCP_char_traits_char_compare(
-        const char *s1, const char *s2, unsigned int count)
+        const char *s1, const char *s2, size_t count)
 {
     int ret = memcmp(s1, s2, count);
     return (ret>0 ? 1 : (ret<0 ? -1 : 0));
 }
 
 /* ?length@?$char_traits@D@std@@SAIPBD@Z */
-int CDECL MSVCP_char_traits_char_length(const char *str)
+/* ?length@?$char_traits@D@std@@SA_KPEBD@Z */
+size_t CDECL MSVCP_char_traits_char_length(const char *str)
 {
     return strlen(str);
 }
 
 /* ?_Copy_s@?$char_traits@D@std@@SAPADPADIPBDI@Z */
+/* ?_Copy_s@?$char_traits@D@std@@SAPEADPEAD_KPEBD1@Z */
 char* CDECL MSVCP_char_traits_char__Copy_s(char *dest,
-        unsigned int size, const char *src, unsigned int count)
+        size_t size, const char *src, size_t count)
 {
     if(!dest || !src || size<count) {
         if(dest && size)
@@ -74,22 +80,25 @@ char* CDECL MSVCP_char_traits_char__Copy_s(char *dest,
 }
 
 /* ?copy@?$char_traits@D@std@@SAPADPADPBDI@Z */
+/* ?copy@?$char_traits@D@std@@SAPEADPEADPEBD_K@Z */
 char* CDECL MSVCP_char_traits_char_copy(
-        char *dest, const char *src, unsigned int count)
+        char *dest, const char *src, size_t count)
 {
     return MSVCP_char_traits_char__Copy_s(dest, count, src, count);
 }
 
 /* ?find@?$char_traits@D@std@@SAPBDPBDIABD@Z */
+/* ?find@?$char_traits@D@std@@SAPEBDPEBD_KAEBD@Z */
 const char * CDECL MSVCP_char_traits_char_find(
-        const char *str, unsigned int range, const char *c)
+        const char *str, size_t range, const char *c)
 {
     return memchr(str, *c, range);
 }
 
 /* ?_Move_s@?$char_traits@D@std@@SAPADPADIPBDI@Z */
+/* ?_Move_s@?$char_traits@D@std@@SAPEADPEAD_KPEBD1@Z */
 char* CDECL MSVCP_char_traits_char__Move_s(char *dest,
-        unsigned int size, const char *src, unsigned int count)
+        size_t size, const char *src, size_t count)
 {
     if(!dest || !src || size<count) {
         if(dest && size)
@@ -102,31 +111,36 @@ char* CDECL MSVCP_char_traits_char__Move_s(char *dest,
 }
 
 /* ?move@?$char_traits@D@std@@SAPADPADPBDI@Z */
+/* ?move@?$char_traits@D@std@@SAPEADPEADPEBD_K@Z */
 char* CDECL MSVCP_char_traits_char_move(
-        char *dest, const char *src, unsigned int count)
+        char *dest, const char *src, size_t count)
 {
     return MSVCP_char_traits_char__Move_s(dest, count, src, count);
 }
 
 /* ?assign@?$char_traits@D@std@@SAPADPADID@Z */
-char* CDECL MSVCP_char_traits_char_assignn(char *str, unsigned int num, char c)
+/* ?assign@?$char_traits@D@std@@SAPEADPEAD_KD@Z */
+char* CDECL MSVCP_char_traits_char_assignn(char *str, size_t num, char c)
 {
     return memset(str, c, num);
 }
 
 /* ?to_char_type@?$char_traits@D@std@@SADABH@Z */
+/* ?to_char_type@?$char_traits@D@std@@SADAEBH@Z */
 char CDECL MSVCP_char_traits_char_to_char_type(const int *i)
 {
     return (char)*i;
 }
 
 /* ?to_int_type@?$char_traits@D@std@@SAHABD@Z */
+/* ?to_int_type@?$char_traits@D@std@@SAHAEBD@Z */
 int CDECL MSVCP_char_traits_char_to_int_type(const char *ch)
 {
     return (int)*ch;
 }
 
 /* ?eq_int_type@?$char_traits@D@std@@SA_NABH0@Z */
+/* ?eq_int_type@?$char_traits@D@std@@SA_NAEBH0@Z */
 MSVCP_BOOL CDECL MSVCP_char_traits_char_eq_int_type(const int *i1, const int *i2)
 {
     return *i1 == *i2;
@@ -139,6 +153,7 @@ int CDECL MSVCP_char_traits_char_eof(void)
 }
 
 /* ?not_eof@?$char_traits@D@std@@SAHABH@Z */
+/* ?not_eof@?$char_traits@D@std@@SAHAEBH@Z */
 int CDECL MSVCP_char_traits_char_not_eof(int *in)
 {
     return (*in==EOF ? !EOF : *in);