Piotr Caban : msvcp90: Fixed EOF detection in basic_streambuf_char__Xsgetn_s function.

Alexandre Julliard julliard at winehq.org
Tue Jul 24 14:39:28 CDT 2012


Module: wine
Branch: master
Commit: 257c57bdf2e7872fb22fba36ca5c15571503f61c
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=257c57bdf2e7872fb22fba36ca5c15571503f61c

Author: Piotr Caban <piotr at 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 {




More information about the wine-cvs mailing list