Daniel Lehman : msvcp: Sync istream<>::peek implementations.

Alexandre Julliard julliard at winehq.org
Tue Oct 30 13:27:35 CDT 2012


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

Author: Daniel Lehman <dlehman at esri.com>
Date:   Fri Oct 26 10:18:58 2012 -0700

msvcp: Sync istream<>::peek implementations.

---

 dlls/msvcp100/ios.c |    8 ++++++++
 dlls/msvcp60/ios.c  |    8 ++++++++
 dlls/msvcp71/ios.c  |    8 ++++++++
 3 files changed, 24 insertions(+), 0 deletions(-)

diff --git a/dlls/msvcp100/ios.c b/dlls/msvcp100/ios.c
index 278abd8..32f36ce 100644
--- a/dlls/msvcp100/ios.c
+++ b/dlls/msvcp100/ios.c
@@ -5821,6 +5821,10 @@ int __thiscall basic_istream_char_peek(basic_istream_char *this)
     if(basic_istream_char_sentry_create(this, TRUE))
         ret = basic_streambuf_char_sgetc(basic_ios_char_rdbuf_get(base));
     basic_istream_char_sentry_destroy(this);
+
+    if (ret == EOF)
+        basic_ios_char_setstate(base, IOSTATE_eofbit);
+
     return ret;
 }
 
@@ -6949,6 +6953,10 @@ unsigned short __thiscall basic_istream_wchar_peek(basic_istream_wchar *this)
     if(basic_istream_wchar_sentry_create(this, TRUE))
         ret = basic_streambuf_wchar_sgetc(basic_ios_wchar_rdbuf_get(base));
     basic_istream_wchar_sentry_destroy(this);
+
+    if (ret == WEOF)
+        basic_ios_wchar_setstate(base, IOSTATE_eofbit);
+
     return ret;
 }
 
diff --git a/dlls/msvcp60/ios.c b/dlls/msvcp60/ios.c
index 71ff193..0bccd5f 100644
--- a/dlls/msvcp60/ios.c
+++ b/dlls/msvcp60/ios.c
@@ -7212,6 +7212,10 @@ int __thiscall basic_istream_char_peek(basic_istream_char *this)
     if(basic_istream_char_sentry_create(this, TRUE))
         ret = basic_streambuf_char_sgetc(basic_ios_char_rdbuf_get(base));
     basic_istream_char_sentry_destroy(this);
+
+    if (ret == EOF)
+        basic_ios_char_setstate(base, IOSTATE_eofbit);
+
     return ret;
 }
 
@@ -8467,6 +8471,10 @@ unsigned short __thiscall basic_istream_wchar_peek(basic_istream_wchar *this)
     if(basic_istream_wchar_sentry_create(this, TRUE))
         ret = basic_streambuf_wchar_sgetc(basic_ios_wchar_rdbuf_get(base));
     basic_istream_wchar_sentry_destroy(this);
+
+    if (ret == WEOF)
+        basic_ios_wchar_setstate(base, IOSTATE_eofbit);
+
     return ret;
 }
 
diff --git a/dlls/msvcp71/ios.c b/dlls/msvcp71/ios.c
index be8f744..280ce86 100644
--- a/dlls/msvcp71/ios.c
+++ b/dlls/msvcp71/ios.c
@@ -7544,6 +7544,10 @@ int __thiscall basic_istream_char_peek(basic_istream_char *this)
     if(basic_istream_char_sentry_create(this, TRUE))
         ret = basic_streambuf_char_sgetc(basic_ios_char_rdbuf_get(base));
     basic_istream_char_sentry_destroy(this);
+
+    if (ret == EOF)
+        basic_ios_char_setstate(base, IOSTATE_eofbit);
+
     return ret;
 }
 
@@ -8802,6 +8806,10 @@ unsigned short __thiscall basic_istream_wchar_peek(basic_istream_wchar *this)
     if(basic_istream_wchar_sentry_create(this, TRUE))
         ret = basic_streambuf_wchar_sgetc(basic_ios_wchar_rdbuf_get(base));
     basic_istream_wchar_sentry_destroy(this);
+
+    if (ret == WEOF)
+        basic_ios_wchar_setstate(base, IOSTATE_eofbit);
+
     return ret;
 }
 




More information about the wine-cvs mailing list