[4/6] msvcirt: Add a partial implementation of class istream_withassign.

Iván Matellanes matellanesivan at gmail.com
Fri Aug 5 06:12:54 CDT 2016


Following the same approach as in ostream_withassign.

Signed-off-by: Iván Matellanes <matellanesivan at gmail.com>
---
 dlls/msvcirt/msvcirt.c      | 33 ++++++++++++++++++++++++++++++++-
 dlls/msvcirt/msvcirt.spec   | 40 ++++++++++++++++++++--------------------
 dlls/msvcrt20/msvcrt20.spec | 40 ++++++++++++++++++++--------------------
 dlls/msvcrt40/msvcrt40.spec | 40 ++++++++++++++++++++--------------------
 4 files changed, 92 insertions(+), 61 deletions(-)

diff --git a/dlls/msvcirt/msvcirt.c b/dlls/msvcirt/msvcirt.c
index c8d753f..38bccf6 100644
--- a/dlls/msvcirt/msvcirt.c
+++ b/dlls/msvcirt/msvcirt.c
@@ -162,7 +162,7 @@ typedef struct {
     const int *vbtable;
     int extract_delim;
     int count;
-} istream;
+} istream, istream_withassign;
 
 /* ??_7streambuf@@6B@ */
 extern const vtable_ptr MSVCP_streambuf_vtable;
@@ -178,6 +178,7 @@ extern const vtable_ptr MSVCP_ios_vtable;
 /* ??_7ostream_withassign@@6B@ */
 extern const vtable_ptr MSVCP_ostream_vtable;
 /* ??_7istream@@6B@ */
+/* ??_7istream_withassign@@6B@ */
 extern const vtable_ptr MSVCP_istream_vtable;
 
 #ifndef __GNUC__
@@ -248,6 +249,7 @@ void __asm_dummy_vtables(void) {
 /* ??_8ostream_withassign@@7B@ */
 const int ostream_vbtable[] = {0, VBTABLE_ENTRY(ostream, FIELD_OFFSET(ostream, vbtable), ios)};
 /* ??_8istream@@7B@ */
+/* ??_8istream_withassign@@7B@ */
 const int istream_vbtable[] = {0, VBTABLE_ENTRY(istream, FIELD_OFFSET(istream, vbtable), ios)};
 
 DEFINE_RTTI_DATA0(streambuf, 0, ".?AVstreambuf@@")
@@ -259,6 +261,8 @@ DEFINE_RTTI_DATA1(ostream, sizeof(ostream), &ios_rtti_base_descriptor, ".?AVostr
 DEFINE_RTTI_DATA2(ostream_withassign, sizeof(ostream_withassign),
     &ostream_rtti_base_descriptor, &ios_rtti_base_descriptor, ".?AVostream_withassign@@")
 DEFINE_RTTI_DATA1(istream, sizeof(istream), &ios_rtti_base_descriptor, ".?AVistream@@")
+DEFINE_RTTI_DATA2(istream_withassign, sizeof(istream_withassign),
+    &istream_rtti_base_descriptor, &ios_rtti_base_descriptor, ".?AVistream_withassign@@")
 
 /* ??0streambuf@@IAE at PADH@Z */
 /* ??0streambuf@@IEAA at PEADH@Z */
@@ -2905,6 +2909,8 @@ static inline istream* ios_to_istream(const ios *base)
 
 /* ??0istream@@QAE at PAVstreambuf@@@Z */
 /* ??0istream@@QEAA at PEAVstreambuf@@@Z */
+/* ??0istream_withassign@@QAE at PAVstreambuf@@@Z */
+/* ??0istream_withassign@@QEAA at PEAVstreambuf@@@Z */
 DEFINE_THISCALL_WRAPPER(istream_sb_ctor, 12)
 istream* __thiscall istream_sb_ctor(istream *this, streambuf *sb, BOOL virt_init)
 {
@@ -2937,6 +2943,8 @@ istream* __thiscall istream_copy_ctor(istream *this, const istream *copy, BOOL v
 
 /* ??0istream@@IAE at XZ */
 /* ??0istream@@IEAA at XZ */
+/* ??0istream_withassign@@QAE at XZ */
+/* ??0istream_withassign@@QEAA at XZ */
 DEFINE_THISCALL_WRAPPER(istream_ctor, 8)
 istream* __thiscall istream_ctor(istream *this, BOOL virt_init)
 {
@@ -2959,6 +2967,8 @@ istream* __thiscall istream_ctor(istream *this, BOOL virt_init)
 
 /* ??1istream@@UAE at XZ */
 /* ??1istream@@UEAA at XZ */
+/* ??1istream_withassign@@UAE at XZ */
+/* ??1istream_withassign@@UEAA at XZ */
 DEFINE_THISCALL_WRAPPER(istream_dtor, 4)
 void __thiscall istream_dtor(ios *base)
 {
@@ -2969,6 +2979,8 @@ void __thiscall istream_dtor(ios *base)
 
 /* ??4istream@@IAEAAV0 at PAVstreambuf@@@Z */
 /* ??4istream@@IEAAAEAV0 at PEAVstreambuf@@@Z */
+/* ??4istream_withassign@@QAEAAVistream@@PAVstreambuf@@@Z */
+/* ??4istream_withassign@@QEAAAEAVistream@@PEAVstreambuf@@@Z */
 DEFINE_THISCALL_WRAPPER(istream_assign_sb, 8)
 istream* __thiscall istream_assign_sb(istream *this, streambuf *sb)
 {
@@ -2990,6 +3002,10 @@ istream* __thiscall istream_assign_sb(istream *this, streambuf *sb)
 
 /* ??4istream@@IAEAAV0 at ABV0@@Z */
 /* ??4istream@@IEAAAEAV0 at AEBV0@@Z */
+/* ??4istream_withassign@@QAEAAV0 at ABV0@@Z */
+/* ??4istream_withassign@@QEAAAEAV0 at AEBV0@@Z */
+/* ??4istream_withassign@@QAEAAVistream@@ABV1@@Z */
+/* ??4istream_withassign@@QEAAAEAVistream@@AEBV1@@Z */
 DEFINE_THISCALL_WRAPPER(istream_assign, 8)
 istream* __thiscall istream_assign(istream *this, const istream *rhs)
 {
@@ -2998,6 +3014,8 @@ istream* __thiscall istream_assign(istream *this, const istream *rhs)
 
 /* ??_Distream@@QAEXXZ */
 /* ??_Distream@@QEAAXXZ */
+/* ??_Distream_withassign@@QAEXXZ */
+/* ??_Distream_withassign@@QEAAXXZ */
 DEFINE_THISCALL_WRAPPER(istream_vbase_dtor, 4)
 void __thiscall istream_vbase_dtor(istream *this)
 {
@@ -3010,6 +3028,7 @@ void __thiscall istream_vbase_dtor(istream *this)
 }
 
 /* ??_Eistream@@UAEPAXI at Z */
+/* ??_Eistream_withassign@@UAEPAXI at Z */
 DEFINE_THISCALL_WRAPPER(istream_vector_dtor, 8)
 istream* __thiscall istream_vector_dtor(ios *base, unsigned int flags)
 {
@@ -3033,6 +3052,7 @@ istream* __thiscall istream_vector_dtor(ios *base, unsigned int flags)
 }
 
 /* ??_Gistream@@UAEPAXI at Z */
+/* ??_Gistream_withassign@@UAEPAXI at Z */
 DEFINE_THISCALL_WRAPPER(istream_scalar_dtor, 8)
 istream* __thiscall istream_scalar_dtor(ios *base, unsigned int flags)
 {
@@ -3809,6 +3829,16 @@ istream* __cdecl istream_ws(istream *this)
     return this;
 }
 
+/* ??0istream_withassign@@QAE at ABV0@@Z */
+/* ??0istream_withassign@@QEAA at AEBV0@@Z */
+DEFINE_THISCALL_WRAPPER(istream_withassign_copy_ctor, 12)
+istream_withassign* __thiscall istream_withassign_copy_ctor(istream_withassign *this,
+    const istream_withassign *copy, BOOL virt_init)
+{
+    FIXME("(%p %p %d) stub\n", this, copy, virt_init);
+    return this;
+}
+
 /******************************************************************
  *		 ??0ostrstream@@QAE at XZ (MSVCRTI.@)
  */
@@ -3886,6 +3916,7 @@ static void init_io(void *base)
     init_ostream_rtti(base);
     init_ostream_withassign_rtti(base);
     init_istream_rtti(base);
+    init_istream_withassign_rtti(base);
 #endif
 }
 
diff --git a/dlls/msvcirt/msvcirt.spec b/dlls/msvcirt/msvcirt.spec
index 47da3ff..ca31523 100644
--- a/dlls/msvcirt/msvcirt.spec
+++ b/dlls/msvcirt/msvcirt.spec
@@ -54,12 +54,12 @@
 @ cdecl -arch=win64 ??0istream@@IEAA at XZ(ptr long) istream_ctor
 @ thiscall -arch=win32 ??0istream@@QAE at PAVstreambuf@@@Z(ptr ptr long) istream_sb_ctor
 @ cdecl -arch=win64 ??0istream@@QEAA at PEAVstreambuf@@@Z(ptr ptr long) istream_sb_ctor
-@ stub -arch=win32 ??0istream_withassign@@QAE at ABV0@@Z  # __thiscall istream_withassign::istream_withassign(class istream_withassign const &)
-@ stub -arch=win64 ??0istream_withassign@@QEAA at AEBV0@@Z
-@ stub -arch=win32 ??0istream_withassign@@QAE at PAVstreambuf@@@Z  # __thiscall istream_withassign::istream_withassign(class streambuf *)
-@ stub -arch=win64 ??0istream_withassign@@QEAA at PEAVstreambuf@@@Z
-@ stub -arch=win32 ??0istream_withassign@@QAE at XZ  # __thiscall istream_withassign::istream_withassign(void)
-@ stub -arch=win64 ??0istream_withassign@@QEAA at XZ
+@ thiscall -arch=win32 ??0istream_withassign@@QAE at ABV0@@Z(ptr ptr long) istream_withassign_copy_ctor
+@ cdecl -arch=win64 ??0istream_withassign@@QEAA at AEBV0@@Z(ptr ptr long) istream_withassign_copy_ctor
+@ thiscall -arch=win32 ??0istream_withassign@@QAE at PAVstreambuf@@@Z(ptr ptr long) istream_sb_ctor
+@ cdecl -arch=win64 ??0istream_withassign@@QEAA at PEAVstreambuf@@@Z(ptr ptr long) istream_sb_ctor
+@ thiscall -arch=win32 ??0istream_withassign@@QAE at XZ(ptr long) istream_ctor
+@ cdecl -arch=win64 ??0istream_withassign@@QEAA at XZ(ptr long) istream_ctor
 @ stub -arch=win32 ??0istrstream@@QAE at ABV0@@Z  # __thiscall istrstream::istrstream(class istrstream const &)
 @ stub -arch=win64 ??0istrstream@@QEAA at AEBV0@@Z
 @ stub -arch=win32 ??0istrstream@@QAE at PAD@Z  # __thiscall istrstream::istrstream(char *)
@@ -146,8 +146,8 @@
 @ stub -arch=win64 ??1iostream@@UEAA at XZ
 @ thiscall -arch=win32 ??1istream@@UAE at XZ(ptr) istream_dtor
 @ cdecl -arch=win64 ??1istream@@UEAA at XZ(ptr) istream_dtor
-@ stub -arch=win32 ??1istream_withassign@@UAE at XZ  # virtual __thiscall istream_withassign::~istream_withassign(void)
-@ stub -arch=win64 ??1istream_withassign@@UEAA at XZ
+@ thiscall -arch=win32 ??1istream_withassign@@UAE at XZ(ptr) istream_dtor
+@ cdecl -arch=win64 ??1istream_withassign@@UEAA at XZ(ptr) istream_dtor
 @ stub -arch=win32 ??1istrstream@@UAE at XZ  # virtual __thiscall istrstream::~istrstream(void)
 @ stub -arch=win64 ??1istrstream@@UEAA at XZ
 @ thiscall -arch=win32 ??1logic_error@@UAE at XZ(ptr) MSVCP_logic_error_dtor
@@ -190,12 +190,12 @@
 @ cdecl -arch=win64 ??4istream@@IEAAAEAV0 at AEBV0@@Z(ptr ptr) istream_assign
 @ thiscall -arch=win32 ??4istream@@IAEAAV0 at PAVstreambuf@@@Z(ptr ptr) istream_assign_sb
 @ cdecl -arch=win64 ??4istream@@IEAAAEAV0 at PEAVstreambuf@@@Z(ptr ptr) istream_assign_sb
-@ stub -arch=win32 ??4istream_withassign@@QAEAAV0 at ABV0@@Z  # class istream_withassign & __thiscall istream_withassign::operator=(class istream_withassign const &)
-@ stub -arch=win64 ??4istream_withassign@@QEAAAEAV0 at AEBV0@@Z
-@ stub -arch=win32 ??4istream_withassign@@QAEAAVistream@@ABV1@@Z  # class istream & __thiscall istream_withassign::operator=(class istream const &)
-@ stub -arch=win64 ??4istream_withassign@@QEAAAEAVistream@@AEBV1@@Z
-@ stub -arch=win32 ??4istream_withassign@@QAEAAVistream@@PAVstreambuf@@@Z  # class istream & __thiscall istream_withassign::operator=(class streambuf *)
-@ stub -arch=win64 ??4istream_withassign@@QEAAAEAVistream@@PEAVstreambuf@@@Z
+@ thiscall -arch=win32 ??4istream_withassign@@QAEAAV0 at ABV0@@Z(ptr ptr) istream_assign
+@ cdecl -arch=win64 ??4istream_withassign@@QEAAAEAV0 at AEBV0@@Z(ptr ptr) istream_assign
+@ thiscall -arch=win32 ??4istream_withassign@@QAEAAVistream@@ABV1@@Z(ptr ptr) istream_assign
+@ cdecl -arch=win64 ??4istream_withassign@@QEAAAEAVistream@@AEBV1@@Z(ptr ptr) istream_assign
+@ thiscall -arch=win32 ??4istream_withassign@@QAEAAVistream@@PAVstreambuf@@@Z(ptr ptr) istream_assign_sb
+@ cdecl -arch=win64 ??4istream_withassign@@QEAAAEAVistream@@PEAVstreambuf@@@Z(ptr ptr) istream_assign_sb
 @ stub -arch=win32 ??4istrstream@@QAEAAV0 at ABV0@@Z  # class istrstream & __thiscall istrstream::operator=(class istrstream const &)
 @ stub -arch=win64 ??4istrstream@@QEAAAEAV0 at AEBV0@@Z
 @ thiscall -arch=win32 ??4logic_error@@QAEAAV0 at ABV0@@Z(ptr ptr) MSVCP_logic_error_assign
@@ -309,7 +309,7 @@
 @ extern ??_7ios@@6B@ MSVCP_ios_vtable
 # @ extern ??_7iostream@@6B@  # const iostream::`vftable'
 @ extern ??_7istream@@6B@ MSVCP_istream_vtable
-# @ extern ??_7istream_withassign@@6B@  # const istream_withassign::`vftable'
+@ extern ??_7istream_withassign@@6B@ MSVCP_istream_vtable
 # @ extern ??_7istrstream@@6B@  # const istrstream::`vftable'
 @ extern ??_7logic_error@@6B@ MSVCP_logic_error_vtable
 # @ extern ??_7ofstream@@6B@  # const ofstream::`vftable'
@@ -327,7 +327,7 @@
 # @ extern ??_8iostream@@7Bistream@@@  # const iostream::`vbtable'{for `istream'}
 # @ extern ??_8iostream@@7Bostream@@@  # const iostream::`vbtable'{for `ostream'}
 @ extern ??_8istream@@7B@ istream_vbtable
-# @ extern ??_8istream_withassign@@7B@  # const istream_withassign::`vbtable'
+@ extern ??_8istream_withassign@@7B@ istream_vbtable
 # @ extern ??_8istrstream@@7B@  # const istrstream::`vbtable'
 # @ extern ??_8ofstream@@7B@  # const ofstream::`vbtable'
 @ extern ??_8ostream@@7B@ ostream_vbtable
@@ -345,8 +345,8 @@
 @ stub -arch=win64 ??_Diostream@@QEAAXXZ
 @ thiscall -arch=win32 ??_Distream@@QAEXXZ(ptr) istream_vbase_dtor
 @ cdecl -arch=win64 ??_Distream@@QEAAXXZ(ptr) istream_vbase_dtor
-@ stub -arch=win32 ??_Distream_withassign@@QAEXXZ  # void __thiscall istream_withassign::`vbase destructor'(void)
-@ stub -arch=win64 ??_Distream_withassign@@QEAAXXZ
+@ thiscall -arch=win32 ??_Distream_withassign@@QAEXXZ(ptr) istream_vbase_dtor
+@ cdecl -arch=win64 ??_Distream_withassign@@QEAAXXZ(ptr) istream_vbase_dtor
 @ stub -arch=win32 ??_Distrstream@@QAEXXZ  # void __thiscall istrstream::`vbase destructor'(void)
 @ stub -arch=win64 ??_Distrstream@@QEAAXXZ
 @ stub -arch=win32 ??_Dofstream@@QAEXXZ  # void __thiscall ofstream::`vbase destructor'(void)
@@ -368,7 +368,7 @@
 @ thiscall -arch=win32 ??_Eios@@UAEPAXI at Z(ptr long) ios_vector_dtor
 @ stub -arch=win32 ??_Eiostream@@UAEPAXI at Z  # virtual void * __thiscall iostream::`vector deleting destructor'(unsigned int)
 @ thiscall -arch=win32 ??_Eistream@@UAEPAXI at Z(ptr long) istream_vector_dtor
-@ stub -arch=win32 ??_Eistream_withassign@@UAEPAXI at Z  # virtual void * __thiscall istream_withassign::`vector deleting destructor'(unsigned int)
+@ thiscall -arch=win32 ??_Eistream_withassign@@UAEPAXI at Z(ptr long) istream_vector_dtor
 @ stub -arch=win32 ??_Eistrstream@@UAEPAXI at Z  # virtual void * __thiscall istrstream::`vector deleting destructor'(unsigned int)
 @ thiscall -arch=win32 ??_Elogic_error@@UAEPAXI at Z(ptr long) MSVCP_logic_error_vector_dtor
 @ stub -arch=win32 ??_Eofstream@@UAEPAXI at Z  # virtual void * __thiscall ofstream::`vector deleting destructor'(unsigned int)
@@ -387,7 +387,7 @@
 @ thiscall -arch=win32 ??_Gios@@UAEPAXI at Z(ptr long) ios_scalar_dtor
 @ stub -arch=win32 ??_Giostream@@UAEPAXI at Z  # virtual void * __thiscall iostream::`scalar deleting destructor'(unsigned int)
 @ thiscall -arch=win32 ??_Gistream@@UAEPAXI at Z(ptr long) istream_scalar_dtor
-@ stub -arch=win32 ??_Gistream_withassign@@UAEPAXI at Z  # virtual void * __thiscall istream_withassign::`scalar deleting destructor'(unsigned int)
+@ thiscall -arch=win32 ??_Gistream_withassign@@UAEPAXI at Z(ptr long) istream_scalar_dtor
 @ stub -arch=win32 ??_Gistrstream@@UAEPAXI at Z  # virtual void * __thiscall istrstream::`scalar deleting destructor'(unsigned int)
 @ thiscall -arch=win32 ??_Glogic_error@@UAEPAXI at Z(ptr long) MSVCP_logic_error_scalar_dtor
 @ stub -arch=win32 ??_Gofstream@@UAEPAXI at Z  # virtual void * __thiscall ofstream::`scalar deleting destructor'(unsigned int)
diff --git a/dlls/msvcrt20/msvcrt20.spec b/dlls/msvcrt20/msvcrt20.spec
index ff4ed73..a5070f4 100644
--- a/dlls/msvcrt20/msvcrt20.spec
+++ b/dlls/msvcrt20/msvcrt20.spec
@@ -48,12 +48,12 @@
 @ cdecl -arch=win64 ??0istream@@IEAA at XZ(ptr long) msvcirt.??0istream@@IEAA at XZ
 @ thiscall -arch=win32 ??0istream@@QAE at PAVstreambuf@@@Z(ptr ptr long) msvcirt.??0istream@@QAE at PAVstreambuf@@@Z
 @ cdecl -arch=win64 ??0istream@@QEAA at PEAVstreambuf@@@Z(ptr ptr long) msvcirt.??0istream@@QEAA at PEAVstreambuf@@@Z
-@ stub -arch=win32 ??0istream_withassign@@QAE at ABV0@@Z
-@ stub -arch=win64 ??0istream_withassign@@QEAA at AEBV0@@Z
-@ stub -arch=win32 ??0istream_withassign@@QAE at PAVstreambuf@@@Z
-@ stub -arch=win64 ??0istream_withassign@@QEAA at PEAVstreambuf@@@Z
-@ stub -arch=win32 ??0istream_withassign@@QAE at XZ
-@ stub -arch=win64 ??0istream_withassign@@QEAA at XZ
+@ thiscall -arch=win32 ??0istream_withassign@@QAE at ABV0@@Z(ptr ptr long) msvcirt.??0istream_withassign@@QAE at ABV0@@Z
+@ cdecl -arch=win64 ??0istream_withassign@@QEAA at AEBV0@@Z(ptr ptr long) msvcirt.??0istream_withassign@@QEAA at AEBV0@@Z
+@ thiscall -arch=win32 ??0istream_withassign@@QAE at PAVstreambuf@@@Z(ptr ptr long) msvcirt.??0istream_withassign@@QAE at PAVstreambuf@@@Z
+@ cdecl -arch=win64 ??0istream_withassign@@QEAA at PEAVstreambuf@@@Z(ptr ptr long) msvcirt.??0istream_withassign@@QEAA at PEAVstreambuf@@@Z
+@ thiscall -arch=win32 ??0istream_withassign@@QAE at XZ(ptr long) msvcirt.??0istream_withassign@@QAE at XZ
+@ cdecl -arch=win64 ??0istream_withassign@@QEAA at XZ(ptr long) msvcirt.??0istream_withassign@@QEAA at XZ
 @ stub -arch=win32 ??0istrstream@@QAE at ABV0@@Z
 @ stub -arch=win64 ??0istrstream@@QEAA at AEBV0@@Z
 @ stub -arch=win32 ??0istrstream@@QAE at PAD@Z
@@ -132,8 +132,8 @@
 @ stub -arch=win64 ??1iostream@@UEAA at XZ
 @ thiscall -arch=win32 ??1istream@@UAE at XZ(ptr) msvcirt.??1istream@@UAE at XZ
 @ cdecl -arch=win64 ??1istream@@UEAA at XZ(ptr) msvcirt.??1istream@@UEAA at XZ
-@ stub -arch=win32 ??1istream_withassign@@UAE at XZ
-@ stub -arch=win64 ??1istream_withassign@@UEAA at XZ
+@ thiscall -arch=win32 ??1istream_withassign@@UAE at XZ(ptr) msvcirt.??1istream_withassign@@UAE at XZ
+@ cdecl -arch=win64 ??1istream_withassign@@UEAA at XZ(ptr) msvcirt.??1istream_withassign@@UEAA at XZ
 @ stub -arch=win32 ??1istrstream@@UAE at XZ
 @ stub -arch=win64 ??1istrstream@@UEAA at XZ
 @ stub -arch=win32 ??1ofstream@@UAE at XZ
@@ -176,12 +176,12 @@
 @ cdecl -arch=win64 ??4istream@@IEAAAEAV0 at AEBV0@@Z(ptr ptr) msvcirt.??4istream@@IEAAAEAV0 at AEBV0@@Z
 @ thiscall -arch=win32 ??4istream@@IAEAAV0 at PAVstreambuf@@@Z(ptr ptr) msvcirt.??4istream@@IAEAAV0 at PAVstreambuf@@@Z
 @ cdecl -arch=win64 ??4istream@@IEAAAEAV0 at PEAVstreambuf@@@Z(ptr ptr) msvcirt.??4istream@@IEAAAEAV0 at PEAVstreambuf@@@Z
-@ stub -arch=win32 ??4istream_withassign@@QAEAAV0 at ABV0@@Z
-@ stub -arch=win64 ??4istream_withassign@@QEAAAEAV0 at AEBV0@@Z
-@ stub -arch=win32 ??4istream_withassign@@QAEAAVistream@@ABV1@@Z
-@ stub -arch=win64 ??4istream_withassign@@QEAAAEAVistream@@AEBV1@@Z
-@ stub -arch=win32 ??4istream_withassign@@QAEAAVistream@@PAVstreambuf@@@Z
-@ stub -arch=win64 ??4istream_withassign@@QEAAAEAVistream@@PEAVstreambuf@@@Z
+@ thiscall -arch=win32 ??4istream_withassign@@QAEAAV0 at ABV0@@Z(ptr ptr) msvcirt.??4istream_withassign@@QAEAAV0 at ABV0@@Z
+@ cdecl -arch=win64 ??4istream_withassign@@QEAAAEAV0 at AEBV0@@Z(ptr ptr) msvcirt.??4istream_withassign@@QEAAAEAV0 at AEBV0@@Z
+@ thiscall -arch=win32 ??4istream_withassign@@QAEAAVistream@@ABV1@@Z(ptr ptr) msvcirt.??4istream_withassign@@QAEAAVistream@@ABV1@@Z
+@ cdecl -arch=win64 ??4istream_withassign@@QEAAAEAVistream@@AEBV1@@Z(ptr ptr) msvcirt.??4istream_withassign@@QEAAAEAVistream@@AEBV1@@Z
+@ thiscall -arch=win32 ??4istream_withassign@@QAEAAVistream@@PAVstreambuf@@@Z(ptr ptr) msvcirt.??4istream_withassign@@QAEAAVistream@@PAVstreambuf@@@Z
+@ cdecl -arch=win64 ??4istream_withassign@@QEAAAEAVistream@@PEAVstreambuf@@@Z(ptr ptr) msvcirt.??4istream_withassign@@QEAAAEAVistream@@PEAVstreambuf@@@Z
 @ stub -arch=win32 ??4istrstream@@QAEAAV0 at ABV0@@Z
 @ stub -arch=win64 ??4istrstream@@QEAAAEAV0 at AEBV0@@Z
 @ stub -arch=win32 ??4ofstream@@QAEAAV0 at ABV0@@Z
@@ -292,7 +292,7 @@
 @ extern ??_7ios@@6B@ msvcirt.??_7ios@@6B@
 # @ extern ??_7iostream@@6B@
 @ extern ??_7istream@@6B@ msvcirt.??_7istream@@6B@
-# @ extern ??_7istream_withassign@@6B@
+@ extern ??_7istream_withassign@@6B@ msvcirt.??_7istream_withassign@@6B@
 # @ extern ??_7istrstream@@6B@
 # @ extern ??_7ofstream@@6B@
 @ extern ??_7ostream@@6B@ msvcirt.??_7ostream@@6B@
@@ -309,7 +309,7 @@
 # @ extern ??_8iostream@@7Bistream@@@
 # @ extern ??_8iostream@@7Bostream@@@
 @ extern ??_8istream@@7B@ msvcirt.??_8istream@@7B@
-# @ extern ??_8istream_withassign@@7B@
+@ extern ??_8istream_withassign@@7B@ msvcirt.??_8istream_withassign@@7B@
 # @ extern ??_8istrstream@@7B@
 # @ extern ??_8ofstream@@7B@
 @ extern ??_8ostream@@7B@ msvcirt.??_8ostream@@7B@
@@ -327,8 +327,8 @@
 @ stub -arch=win64 ??_Diostream@@QEAAXXZ
 @ thiscall -arch=win32 ??_Distream@@QAEXXZ(ptr) msvcirt.??_Distream@@QAEXXZ
 @ cdecl -arch=win64 ??_Distream@@QEAAXXZ(ptr) msvcirt.??_Distream@@QEAAXXZ
-@ stub -arch=win32 ??_Distream_withassign@@QAEXXZ
-@ stub -arch=win64 ??_Distream_withassign@@QEAAXXZ
+@ thiscall -arch=win32 ??_Distream_withassign@@QAEXXZ(ptr) msvcirt.??_Distream_withassign@@QAEXXZ
+@ cdecl -arch=win64 ??_Distream_withassign@@QEAAXXZ(ptr) msvcirt.??_Distream_withassign@@QEAAXXZ
 @ stub -arch=win32 ??_Distrstream@@QAEXXZ
 @ stub -arch=win64 ??_Distrstream@@QEAAXXZ
 @ stub -arch=win32 ??_Dofstream@@QAEXXZ
@@ -350,7 +350,7 @@
 @ thiscall -arch=win32 ??_Eios@@UAEPAXI at Z(ptr long) msvcirt.??_Eios@@UAEPAXI at Z
 @ stub -arch=win32 ??_Eiostream@@UAEPAXI at Z
 @ thiscall -arch=win32 ??_Eistream@@UAEPAXI at Z(ptr long) msvcirt.??_Eistream@@UAEPAXI at Z
-@ stub -arch=win32 ??_Eistream_withassign@@UAEPAXI at Z
+@ thiscall -arch=win32 ??_Eistream_withassign@@UAEPAXI at Z(ptr long) msvcirt.??_Eistream_withassign@@UAEPAXI at Z
 @ stub -arch=win32 ??_Eistrstream@@UAEPAXI at Z
 @ stub -arch=win32 ??_Eofstream@@UAEPAXI at Z
 @ thiscall -arch=win32 ??_Eostream@@UAEPAXI at Z(ptr long) msvcirt.??_Eostream@@UAEPAXI at Z
@@ -368,7 +368,7 @@
 @ thiscall -arch=win32 ??_Gios@@UAEPAXI at Z(ptr long) msvcirt.??_Gios@@UAEPAXI at Z
 @ stub -arch=win32 ??_Giostream@@UAEPAXI at Z
 @ thiscall -arch=win32 ??_Gistream@@UAEPAXI at Z(ptr long) msvcirt.??_Gistream@@UAEPAXI at Z
-@ stub -arch=win32 ??_Gistream_withassign@@UAEPAXI at Z
+@ thiscall -arch=win32 ??_Gistream_withassign@@UAEPAXI at Z(ptr long) msvcirt.??_Gistream_withassign@@UAEPAXI at Z
 @ stub -arch=win32 ??_Gistrstream@@UAEPAXI at Z
 @ stub -arch=win32 ??_Gofstream@@UAEPAXI at Z
 @ thiscall -arch=win32 ??_Gostream@@UAEPAXI at Z(ptr long) msvcirt.??_Gostream@@UAEPAXI at Z
diff --git a/dlls/msvcrt40/msvcrt40.spec b/dlls/msvcrt40/msvcrt40.spec
index fc9a5dc..935e48c 100644
--- a/dlls/msvcrt40/msvcrt40.spec
+++ b/dlls/msvcrt40/msvcrt40.spec
@@ -66,12 +66,12 @@
 @ cdecl -arch=win64 ??0istream@@IEAA at XZ(ptr long) msvcirt.??0istream@@IEAA at XZ
 @ thiscall -arch=win32 ??0istream@@QAE at PAVstreambuf@@@Z(ptr ptr long) msvcirt.??0istream@@QAE at PAVstreambuf@@@Z
 @ cdecl -arch=win64 ??0istream@@QEAA at PEAVstreambuf@@@Z(ptr ptr long) msvcirt.??0istream@@QEAA at PEAVstreambuf@@@Z
-@ stub -arch=win32 ??0istream_withassign@@QAE at ABV0@@Z
-@ stub -arch=win64 ??0istream_withassign@@QEAA at AEBV0@@Z
-@ stub -arch=win32 ??0istream_withassign@@QAE at PAVstreambuf@@@Z
-@ stub -arch=win64 ??0istream_withassign@@QEAA at PEAVstreambuf@@@Z
-@ stub -arch=win32 ??0istream_withassign@@QAE at XZ
-@ stub -arch=win64 ??0istream_withassign@@QEAA at XZ
+@ thiscall -arch=win32 ??0istream_withassign@@QAE at ABV0@@Z(ptr ptr long) msvcirt.??0istream_withassign@@QAE at ABV0@@Z
+@ cdecl -arch=win64 ??0istream_withassign@@QEAA at AEBV0@@Z(ptr ptr long) msvcirt.??0istream_withassign@@QEAA at AEBV0@@Z
+@ thiscall -arch=win32 ??0istream_withassign@@QAE at PAVstreambuf@@@Z(ptr ptr long) msvcirt.??0istream_withassign@@QAE at PAVstreambuf@@@Z
+@ cdecl -arch=win64 ??0istream_withassign@@QEAA at PEAVstreambuf@@@Z(ptr ptr long) msvcirt.??0istream_withassign@@QEAA at PEAVstreambuf@@@Z
+@ thiscall -arch=win32 ??0istream_withassign@@QAE at XZ(ptr long) msvcirt.??0istream_withassign@@QAE at XZ
+@ cdecl -arch=win64 ??0istream_withassign@@QEAA at XZ(ptr long) msvcirt.??0istream_withassign@@QEAA at XZ
 @ stub -arch=win32 ??0istrstream@@QAE at ABV0@@Z
 @ stub -arch=win64 ??0istrstream@@QEAA at AEBV0@@Z
 @ stub -arch=win32 ??0istrstream@@QAE at PAD@Z
@@ -162,8 +162,8 @@
 @ stub -arch=win64 ??1iostream@@UEAA at XZ
 @ thiscall -arch=win32 ??1istream@@UAE at XZ(ptr) msvcirt.??1istream@@UAE at XZ
 @ cdecl -arch=win64 ??1istream@@UEAA at XZ(ptr) msvcirt.??1istream@@UEAA at XZ
-@ stub -arch=win32 ??1istream_withassign@@UAE at XZ
-@ stub -arch=win64 ??1istream_withassign@@UEAA at XZ
+@ thiscall -arch=win32 ??1istream_withassign@@UAE at XZ(ptr) msvcirt.??1istream_withassign@@UAE at XZ
+@ cdecl -arch=win64 ??1istream_withassign@@UEAA at XZ(ptr) msvcirt.??1istream_withassign@@UEAA at XZ
 @ stub -arch=win32 ??1istrstream@@UAE at XZ
 @ stub -arch=win64 ??1istrstream@@UEAA at XZ
 @ thiscall -arch=win32 ??1logic_error@@UAE at XZ(ptr) msvcirt.??1logic_error@@UAE at XZ
@@ -218,12 +218,12 @@
 @ cdecl -arch=win64 ??4istream@@IEAAAEAV0 at AEBV0@@Z(ptr ptr) msvcirt.??4istream@@IEAAAEAV0 at AEBV0@@Z
 @ thiscall -arch=win32 ??4istream@@IAEAAV0 at PAVstreambuf@@@Z(ptr ptr) msvcirt.??4istream@@IAEAAV0 at PAVstreambuf@@@Z
 @ cdecl -arch=win64 ??4istream@@IEAAAEAV0 at PEAVstreambuf@@@Z(ptr ptr) msvcirt.??4istream@@IEAAAEAV0 at PEAVstreambuf@@@Z
-@ stub -arch=win32 ??4istream_withassign@@QAEAAV0 at ABV0@@Z
-@ stub -arch=win64 ??4istream_withassign@@QEAAAEAV0 at AEBV0@@Z
-@ stub -arch=win32 ??4istream_withassign@@QAEAAVistream@@ABV1@@Z
-@ stub -arch=win64 ??4istream_withassign@@QEAAAEAVistream@@AEBV1@@Z
-@ stub -arch=win32 ??4istream_withassign@@QAEAAVistream@@PAVstreambuf@@@Z
-@ stub -arch=win64 ??4istream_withassign@@QEAAAEAVistream@@PEAVstreambuf@@@Z
+@ thiscall -arch=win32 ??4istream_withassign@@QAEAAV0 at ABV0@@Z(ptr ptr) msvcirt.??4istream_withassign@@QAEAAV0 at ABV0@@Z
+@ cdecl -arch=win64 ??4istream_withassign@@QEAAAEAV0 at AEBV0@@Z(ptr ptr) msvcirt.??4istream_withassign@@QEAAAEAV0 at AEBV0@@Z
+@ thiscall -arch=win32 ??4istream_withassign@@QAEAAVistream@@ABV1@@Z(ptr ptr) msvcirt.??4istream_withassign@@QAEAAVistream@@ABV1@@Z
+@ cdecl -arch=win64 ??4istream_withassign@@QEAAAEAVistream@@AEBV1@@Z(ptr ptr) msvcirt.??4istream_withassign@@QEAAAEAVistream@@AEBV1@@Z
+@ thiscall -arch=win32 ??4istream_withassign@@QAEAAVistream@@PAVstreambuf@@@Z(ptr ptr) msvcirt.??4istream_withassign@@QAEAAVistream@@PAVstreambuf@@@Z
+@ cdecl -arch=win64 ??4istream_withassign@@QEAAAEAVistream@@PEAVstreambuf@@@Z(ptr ptr) msvcirt.??4istream_withassign@@QEAAAEAVistream@@PEAVstreambuf@@@Z
 @ stub -arch=win32 ??4istrstream@@QAEAAV0 at ABV0@@Z
 @ stub -arch=win64 ??4istrstream@@QEAAAEAV0 at AEBV0@@Z
 @ thiscall -arch=win32 ??4logic_error@@QAEAAV0 at ABV0@@Z(ptr ptr) msvcirt.??4logic_error@@QAEAAV0 at ABV0@@Z
@@ -344,7 +344,7 @@
 @ extern ??_7ios@@6B@ msvcirt.??_7ios@@6B@
 # @ extern ??_7iostream@@6B@
 @ extern ??_7istream@@6B@ msvcirt.??_7istream@@6B@
-# @ extern ??_7istream_withassign@@6B@
+@ extern ??_7istream_withassign@@6B@ msvcirt.??_7istream_withassign@@6B@
 # @ extern ??_7istrstream@@6B@
 @ extern ??_7logic_error@@6B@ msvcirt.??_7logic_error@@6B@
 # @ extern ??_7ofstream@@6B@
@@ -362,7 +362,7 @@
 # @ extern ??_8iostream@@7Bistream@@@
 # @ extern ??_8iostream@@7Bostream@@@
 @ extern ??_8istream@@7B@ msvcirt.??_8istream@@7B@
-# @ extern ??_8istream_withassign@@7B@
+@ extern ??_8istream_withassign@@7B@ msvcirt.??_8istream_withassign@@7B@
 # @ extern ??_8istrstream@@7B@
 # @ extern ??_8ofstream@@7B@
 @ extern ??_8ostream@@7B@ msvcirt.??_8ostream@@7B@
@@ -380,8 +380,8 @@
 @ stub -arch=win64 ??_Diostream@@QEAAXXZ
 @ thiscall -arch=win32 ??_Distream@@QAEXXZ(ptr) msvcirt.??_Distream@@QAEXXZ
 @ cdecl -arch=win64 ??_Distream@@QEAAXXZ(ptr) msvcirt.??_Distream@@QEAAXXZ
-@ stub -arch=win32 ??_Distream_withassign@@QAEXXZ
-@ stub -arch=win64 ??_Distream_withassign@@QEAAXXZ
+@ thiscall -arch=win32 ??_Distream_withassign@@QAEXXZ(ptr) msvcirt.??_Distream_withassign@@QAEXXZ
+@ cdecl -arch=win64 ??_Distream_withassign@@QEAAXXZ(ptr) msvcirt.??_Distream_withassign@@QEAAXXZ
 @ stub -arch=win32 ??_Distrstream@@QAEXXZ
 @ stub -arch=win64 ??_Distrstream@@QEAAXXZ
 @ stub -arch=win32 ??_Dofstream@@QAEXXZ
@@ -407,7 +407,7 @@
 @ thiscall -arch=win32 ??_Eios@@UAEPAXI at Z(ptr long) msvcirt.??_Eios@@UAEPAXI at Z
 @ stub -arch=win32 ??_Eiostream@@UAEPAXI at Z
 @ thiscall -arch=win32 ??_Eistream@@UAEPAXI at Z(ptr long) msvcirt.??_Eistream@@UAEPAXI at Z
-@ stub -arch=win32 ??_Eistream_withassign@@UAEPAXI at Z
+@ thiscall -arch=win32 ??_Eistream_withassign@@UAEPAXI at Z(ptr long) msvcirt.??_Eistream_withassign@@UAEPAXI at Z
 @ stub -arch=win32 ??_Eistrstream@@UAEPAXI at Z
 @ thiscall -arch=win32 ??_Elogic_error@@UAEPAXI at Z(ptr long) msvcirt.??_Elogic_error@@UAEPAXI at Z
 @ stub -arch=win32 ??_Eofstream@@UAEPAXI at Z
@@ -430,7 +430,7 @@
 @ thiscall -arch=win32 ??_Gios@@UAEPAXI at Z(ptr long) msvcirt.??_Gios@@UAEPAXI at Z
 @ stub -arch=win32 ??_Giostream@@UAEPAXI at Z
 @ thiscall -arch=win32 ??_Gistream@@UAEPAXI at Z(ptr long) msvcirt.??_Gistream@@UAEPAXI at Z
-@ stub -arch=win32 ??_Gistream_withassign@@UAEPAXI at Z
+@ thiscall -arch=win32 ??_Gistream_withassign@@UAEPAXI at Z(ptr long) msvcirt.??_Gistream_withassign@@UAEPAXI at Z
 @ stub -arch=win32 ??_Gistrstream@@UAEPAXI at Z
 @ thiscall -arch=win32 ??_Glogic_error@@UAEPAXI at Z(ptr long) msvcirt.??_Glogic_error@@UAEPAXI at Z
 @ stub -arch=win32 ??_Gofstream@@UAEPAXI at Z
-- 
2.7.4




More information about the wine-patches mailing list