From cba2102b7e39bc2d4476bc35e5c137c8c3d8099c Mon Sep 17 00:00:00 2001 From: Piotr Caban Date: Tue, 11 Sep 2012 16:07:57 +0200 Subject: [PATCH] msvcp90: Fixed reading lines containing only delimiter in basic_istream::getline_bstr_delim. --- dlls/msvcp90/ios.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/dlls/msvcp90/ios.c b/dlls/msvcp90/ios.c index 7cf646b2edc..82010c61188 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); } -- 2.11.4.GIT