Module: wine Branch: master Commit: 12cfebb683fa71d6a0cab967620533a7e25821a7 URL: http://source.winehq.org/git/wine.git/?a=commit;h=12cfebb683fa71d6a0cab96762...
Author: Piotr Caban piotr@codeweavers.com Date: Mon Jan 20 15:08:27 2014 +0100
msvcp90: Read last character of bool string in num_get_do_get_bool.
---
dlls/msvcp60/locale.c | 12 ++++++++---- dlls/msvcp90/locale.c | 12 ++++++++---- 2 files changed, 16 insertions(+), 8 deletions(-)
diff --git a/dlls/msvcp60/locale.c b/dlls/msvcp60/locale.c index a2ce279..6b95521 100644 --- a/dlls/msvcp60/locale.c +++ b/dlls/msvcp60/locale.c @@ -4828,8 +4828,7 @@ static istreambuf_iterator_wchar* num_get_do_get_bool(const num_get *this, pfalse = basic_string_wchar_c_str(&false_bstr); ptrue = basic_string_wchar_c_str(&true_bstr);
- for(istreambuf_iterator_wchar_val(&first); first.strbuf; - istreambuf_iterator_wchar_inc(&first)) { + for(istreambuf_iterator_wchar_val(&first); first.strbuf;) { if(pfalse && *pfalse && first.val!=*pfalse) pfalse = NULL; if(ptrue && *ptrue && first.val!=*ptrue) @@ -4845,6 +4844,9 @@ static istreambuf_iterator_wchar* num_get_do_get_bool(const num_get *this, if(ptrue) ptrue++;
+ if(pfalse || ptrue) + istreambuf_iterator_wchar_inc(&first); + if((!pfalse || !*pfalse) && (!ptrue || !*ptrue)) break; } @@ -5608,8 +5610,7 @@ istreambuf_iterator_char *__thiscall num_get_char_do_get_bool(const num_get *thi pfalse = basic_string_char_c_str(&false_bstr); ptrue = basic_string_char_c_str(&true_bstr);
- for(istreambuf_iterator_char_val(&first); first.strbuf; - istreambuf_iterator_char_inc(&first)) { + for(istreambuf_iterator_char_val(&first); first.strbuf;) { if(pfalse && *pfalse && first.val!=*pfalse) pfalse = NULL; if(ptrue && *ptrue && first.val!=*ptrue) @@ -5625,6 +5626,9 @@ istreambuf_iterator_char *__thiscall num_get_char_do_get_bool(const num_get *thi if(ptrue) ptrue++;
+ if(pfalse || ptrue) + istreambuf_iterator_char_inc(&first); + if((!pfalse || !*pfalse) && (!ptrue || !*ptrue)) break; } diff --git a/dlls/msvcp90/locale.c b/dlls/msvcp90/locale.c index 02ccb0e..2cdd002 100644 --- a/dlls/msvcp90/locale.c +++ b/dlls/msvcp90/locale.c @@ -5850,8 +5850,7 @@ static istreambuf_iterator_wchar* num_get_do_get_bool(const num_get *this, pfalse = MSVCP_basic_string_wchar_c_str(&false_bstr); ptrue = MSVCP_basic_string_wchar_c_str(&true_bstr);
- for(istreambuf_iterator_wchar_val(&first); first.strbuf; - istreambuf_iterator_wchar_inc(&first)) { + for(istreambuf_iterator_wchar_val(&first); first.strbuf;) { if(pfalse && *pfalse && first.val!=*pfalse) pfalse = NULL; if(ptrue && *ptrue && first.val!=*ptrue) @@ -5867,6 +5866,9 @@ static istreambuf_iterator_wchar* num_get_do_get_bool(const num_get *this, if(ptrue) ptrue++;
+ if(pfalse || ptrue) + istreambuf_iterator_wchar_inc(&first); + if((!pfalse || !*pfalse) && (!ptrue || !*ptrue)) break; } @@ -6823,8 +6825,7 @@ istreambuf_iterator_char *__thiscall num_get_char_do_get_bool(const num_get *thi pfalse = MSVCP_basic_string_char_c_str(&false_bstr); ptrue = MSVCP_basic_string_char_c_str(&true_bstr);
- for(istreambuf_iterator_char_val(&first); first.strbuf; - istreambuf_iterator_char_inc(&first)) { + for(istreambuf_iterator_char_val(&first); first.strbuf;) { if(pfalse && *pfalse && first.val!=*pfalse) pfalse = NULL; if(ptrue && *ptrue && first.val!=*ptrue) @@ -6840,6 +6841,9 @@ istreambuf_iterator_char *__thiscall num_get_char_do_get_bool(const num_get *thi if(ptrue) ptrue++;
+ if(pfalse || ptrue) + istreambuf_iterator_char_inc(&first); + if((!pfalse || !*pfalse) && (!ptrue || !*ptrue)) break; }