Commit 7b877fbc authored by Iván Matellanes's avatar Iván Matellanes Committed by Alexandre Julliard

msvcirt: Add implementation of streambuf::sgetn/sputn.

parent f71186b6
......@@ -502,6 +502,7 @@ void __thiscall streambuf_unlock(streambuf *this)
/* ?xsgetn@streambuf@@UAEHPADH@Z */
/* ?xsgetn@streambuf@@UEAAHPEADH@Z */
DEFINE_THISCALL_WRAPPER(streambuf_xsgetn, 12)
#define call_streambuf_xsgetn(this, buffer, count) CALL_VTBL_FUNC(this, 24, int, (streambuf*, char*, int), (this, buffer, count))
int __thiscall streambuf_xsgetn(streambuf *this, char *buffer, int count)
{
int copied = 0, chunk;
......@@ -533,6 +534,7 @@ int __thiscall streambuf_xsgetn(streambuf *this, char *buffer, int count)
/* ?xsputn@streambuf@@UAEHPBDH@Z */
/* ?xsputn@streambuf@@UEAAHPEBDH@Z */
DEFINE_THISCALL_WRAPPER(streambuf_xsputn, 12)
#define call_streambuf_xsputn(this, data, length) CALL_VTBL_FUNC(this, 20, int, (streambuf*, const char*, int), (this, data, length))
int __thiscall streambuf_xsputn(streambuf *this, const char *data, int length)
{
int copied = 0, chunk;
......@@ -579,6 +581,22 @@ int __thiscall streambuf_sputc(streambuf *this, int ch)
return (this->pptr < this->epptr) ? *this->pptr++ = ch : call_streambuf_overflow(this, ch);
}
/* ?sgetn@streambuf@@QAEHPADH@Z */
/* ?sgetn@streambuf@@QEAAHPEADH@Z */
DEFINE_THISCALL_WRAPPER(streambuf_sgetn, 12)
int __thiscall streambuf_sgetn(streambuf *this, char *buffer, int count)
{
return call_streambuf_xsgetn(this, buffer, count);
}
/* ?sputn@streambuf@@QAEHPBDH@Z */
/* ?sputn@streambuf@@QEAAHPEBDH@Z */
DEFINE_THISCALL_WRAPPER(streambuf_sputn, 12)
int __thiscall streambuf_sputn(streambuf *this, const char *data, int length)
{
return call_streambuf_xsputn(this, data, length);
}
/******************************************************************
* ??1ios@@UAE@XZ (MSVCRTI.@)
* class ios & __thiscall ios::-ios<<(void)
......
......@@ -695,8 +695,8 @@
@ stub -arch=win64 ?setrwbuf@stdiobuf@@QEAAHHH@Z
@ thiscall -arch=win32 ?sgetc@streambuf@@QAEHXZ(ptr) streambuf_sgetc
@ cdecl -arch=win64 ?sgetc@streambuf@@QEAAHXZ(ptr) streambuf_sgetc
@ stub -arch=win32 ?sgetn@streambuf@@QAEHPADH@Z # int __thiscall streambuf::sgetn(char *,int)
@ stub -arch=win64 ?sgetn@streambuf@@QEAAHPEADH@Z
@ thiscall -arch=win32 ?sgetn@streambuf@@QAEHPADH@Z(ptr ptr long) streambuf_sgetn
@ cdecl -arch=win64 ?sgetn@streambuf@@QEAAHPEADH@Z(ptr ptr long) streambuf_sgetn
# @ extern ?sh_none@filebuf@@2HB # static int const filebuf::sh_none
# @ extern ?sh_read@filebuf@@2HB # static int const filebuf::sh_read
# @ extern ?sh_write@filebuf@@2HB # static int const filebuf::sh_write
......@@ -706,8 +706,8 @@
@ stub -arch=win64 ?sputbackc@streambuf@@QEAAHD@Z
@ thiscall -arch=win32 ?sputc@streambuf@@QAEHH@Z(ptr long) streambuf_sputc
@ cdecl -arch=win64 ?sputc@streambuf@@QEAAHH@Z(ptr long) streambuf_sputc
@ stub -arch=win32 ?sputn@streambuf@@QAEHPBDH@Z # int __thiscall streambuf::sputn(char const *,int)
@ stub -arch=win64 ?sputn@streambuf@@QEAAHPEBDH@Z
@ thiscall -arch=win32 ?sputn@streambuf@@QAEHPBDH@Z(ptr str long) streambuf_sputn
@ cdecl -arch=win64 ?sputn@streambuf@@QEAAHPEBDH@Z(ptr str long) streambuf_sputn
@ stub -arch=win32 ?stdiofile@stdiobuf@@QAEPAU_iobuf@@XZ # struct _iobuf * __thiscall stdiobuf::stdiofile(void)
@ stub -arch=win64 ?stdiofile@stdiobuf@@QEAAPEAU_iobuf@@XZ
@ stub -arch=win32 ?stossc@streambuf@@QAEXXZ # void __thiscall streambuf::stossc(void)
......
......@@ -683,8 +683,8 @@
@ stub -arch=win64 ?setrwbuf@stdiobuf@@QEAAHHH@Z
@ thiscall -arch=win32 ?sgetc@streambuf@@QAEHXZ(ptr) msvcirt.?sgetc@streambuf@@QAEHXZ
@ cdecl -arch=win64 ?sgetc@streambuf@@QEAAHXZ(ptr) msvcirt.?sgetc@streambuf@@QEAAHXZ
@ stub -arch=win32 ?sgetn@streambuf@@QAEHPADH@Z
@ stub -arch=win64 ?sgetn@streambuf@@QEAAHPEADH@Z
@ thiscall -arch=win32 ?sgetn@streambuf@@QAEHPADH@Z(ptr ptr long) msvcirt.?sgetn@streambuf@@QAEHPADH@Z
@ cdecl -arch=win64 ?sgetn@streambuf@@QEAAHPEADH@Z(ptr ptr long) msvcirt.?sgetn@streambuf@@QEAAHPEADH@Z
# @ extern ?sh_none@filebuf@@2HB
# @ extern ?sh_read@filebuf@@2HB
# @ extern ?sh_write@filebuf@@2HB
......@@ -694,8 +694,8 @@
@ stub -arch=win64 ?sputbackc@streambuf@@QEAAHD@Z
@ thiscall -arch=win32 ?sputc@streambuf@@QAEHH@Z(ptr long) msvcirt.?sputc@streambuf@@QAEHH@Z
@ cdecl -arch=win64 ?sputc@streambuf@@QEAAHH@Z(ptr long) msvcirt.?sputc@streambuf@@QEAAHH@Z
@ stub -arch=win32 ?sputn@streambuf@@QAEHPBDH@Z
@ stub -arch=win64 ?sputn@streambuf@@QEAAHPEBDH@Z
@ thiscall -arch=win32 ?sputn@streambuf@@QAEHPBDH@Z(ptr str long) msvcirt.?sputn@streambuf@@QAEHPBDH@Z
@ cdecl -arch=win64 ?sputn@streambuf@@QEAAHPEBDH@Z(ptr str long) msvcirt.?sputn@streambuf@@QEAAHPEBDH@Z
@ stub -arch=win32 ?stdiofile@stdiobuf@@QAEPAU_iobuf@@XZ
@ stub -arch=win64 ?stdiofile@stdiobuf@@QEAAPEAU_iobuf@@XZ
@ stub -arch=win32 ?stossc@streambuf@@QAEXXZ
......
......@@ -755,8 +755,8 @@
@ stub -arch=win64 ?setrwbuf@stdiobuf@@QEAAHHH@Z
@ thiscall -arch=win32 ?sgetc@streambuf@@QAEHXZ(ptr) msvcirt.?sgetc@streambuf@@QAEHXZ
@ cdecl -arch=win64 ?sgetc@streambuf@@QEAAHXZ(ptr) msvcirt.?sgetc@streambuf@@QEAAHXZ
@ stub -arch=win32 ?sgetn@streambuf@@QAEHPADH@Z
@ stub -arch=win64 ?sgetn@streambuf@@QEAAHPEADH@Z
@ thiscall -arch=win32 ?sgetn@streambuf@@QAEHPADH@Z(ptr ptr long) msvcirt.?sgetn@streambuf@@QAEHPADH@Z
@ cdecl -arch=win64 ?sgetn@streambuf@@QEAAHPEADH@Z(ptr ptr long) msvcirt.?sgetn@streambuf@@QEAAHPEADH@Z
# @ extern ?sh_none@filebuf@@2HB
# @ extern ?sh_read@filebuf@@2HB
# @ extern ?sh_write@filebuf@@2HB
......@@ -766,8 +766,8 @@
@ stub -arch=win64 ?sputbackc@streambuf@@QEAAHD@Z
@ thiscall -arch=win32 ?sputc@streambuf@@QAEHH@Z(ptr long) msvcirt.?sputc@streambuf@@QAEHH@Z
@ cdecl -arch=win64 ?sputc@streambuf@@QEAAHH@Z(ptr long) msvcirt.?sputc@streambuf@@QEAAHH@Z
@ stub -arch=win32 ?sputn@streambuf@@QAEHPBDH@Z
@ stub -arch=win64 ?sputn@streambuf@@QEAAHPEBDH@Z
@ thiscall -arch=win32 ?sputn@streambuf@@QAEHPBDH@Z(ptr str long) msvcirt.?sputn@streambuf@@QAEHPBDH@Z
@ cdecl -arch=win64 ?sputn@streambuf@@QEAAHPEBDH@Z(ptr str long) msvcirt.?sputn@streambuf@@QEAAHPEBDH@Z
@ stub -arch=win32 ?stdiofile@stdiobuf@@QAEPAU_iobuf@@XZ
@ stub -arch=win64 ?stdiofile@stdiobuf@@QEAAPEAU_iobuf@@XZ
@ stub -arch=win32 ?stossc@streambuf@@QAEXXZ
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment