Module: wine Branch: master Commit: 257c57bdf2e7872fb22fba36ca5c15571503f61c URL: http://source.winehq.org/git/wine.git/?a=commit;h=257c57bdf2e7872fb22fba36ca... Author: Piotr Caban <piotr(a)codeweavers.com> Date: Tue Jul 24 11:46:56 2012 +0200 msvcp90: Fixed EOF detection in basic_streambuf_char__Xsgetn_s function. --- dlls/msvcp90/ios.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-) diff --git a/dlls/msvcp90/ios.c b/dlls/msvcp90/ios.c index 13e5490..8592f18 100644 --- a/dlls/msvcp90/ios.c +++ b/dlls/msvcp90/ios.c @@ -786,6 +786,7 @@ DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Xsgetn_s, 16) streamsize __thiscall basic_streambuf_char__Xsgetn_s(basic_streambuf_char *this, char *ptr, MSVCP_size_t size, streamsize count) { streamsize copied, chunk; + int c; TRACE("(%p %p %lu %ld)\n", this, ptr, size, count); @@ -800,7 +801,8 @@ streamsize __thiscall basic_streambuf_char__Xsgetn_s(basic_streambuf_char *this, *this->prsize -= chunk; copied += chunk; size -= chunk; - }else if((ptr[copied] = call_basic_streambuf_char_uflow(this)) != EOF) { + }else if((c = call_basic_streambuf_char_uflow(this)) != EOF) { + ptr[copied] = c; copied++; size--; }else { @@ -1529,6 +1531,7 @@ DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Xsgetn_s, 16) streamsize __thiscall basic_streambuf_wchar__Xsgetn_s(basic_streambuf_wchar *this, wchar_t *ptr, MSVCP_size_t size, streamsize count) { streamsize copied, chunk; + unsigned short c; TRACE("(%p %p %lu %ld)\n", this, ptr, size, count); @@ -1543,7 +1546,8 @@ streamsize __thiscall basic_streambuf_wchar__Xsgetn_s(basic_streambuf_wchar *thi *this->prsize -= chunk; copied += chunk; size -= chunk; - }else if((ptr[copied] = call_basic_streambuf_wchar_uflow(this)) != WEOF) { + }else if((c = call_basic_streambuf_wchar_uflow(this)) != WEOF) { + ptr[copied] = c; copied++; size--; }else {