Piotr Caban : msvcp90: Fixed reading lines containing only delimiter in basic_istream:: getline_bstr_delim.

Alexandre Julliard julliard at winehq.org
Tue Sep 11 16:59:07 CDT 2012


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

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Tue Sep 11 16:07:57 2012 +0200

msvcp90: Fixed reading lines containing only delimiter in basic_istream::getline_bstr_delim.

---

 dlls/msvcp90/ios.c |   14 ++++++++++----
 1 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/dlls/msvcp90/ios.c b/dlls/msvcp90/ios.c
index 7cf646b..82010c6 100644
--- a/dlls/msvcp90/ios.c
+++ b/dlls/msvcp90/ios.c
@@ -8103,8 +8103,11 @@ basic_istream_char* __cdecl basic_istream_char_getline_bstr_delim(
     if(basic_istream_char_sentry_create(istream, TRUE)) {
         MSVCP_basic_string_char_clear(str);
 
-        for(c = basic_istream_char_get(istream); c!=delim && c!=EOF;
-                c = basic_istream_char_get(istream)) {
+        c = basic_istream_char_get(istream);
+        if(c != EOF)
+            state = IOSTATE_goodbit;
+
+        for(; c!=delim && c!=EOF; c = basic_istream_char_get(istream)) {
             state = IOSTATE_goodbit;
             MSVCP_basic_string_char_append_ch(str, c);
         }
@@ -9523,8 +9526,11 @@ basic_istream_wchar* __cdecl basic_istream_wchar_getline_bstr_delim(
     if(basic_istream_wchar_sentry_create(istream, TRUE)) {
         MSVCP_basic_string_wchar_clear(str);
 
-        for(c = basic_istream_wchar_get(istream); c!=delim && c!=WEOF;
-                c = basic_istream_wchar_get(istream)) {
+        c = basic_istream_wchar_get(istream);
+        if(c != WEOF)
+            state = IOSTATE_goodbit;
+
+        for(; c!=delim && c!=WEOF; c = basic_istream_wchar_get(istream)) {
             state = IOSTATE_goodbit;
             MSVCP_basic_string_wchar_append_ch(str, c);
         }




More information about the wine-cvs mailing list