msvcp90: Read last character of bool string in num_get_do_get_bool.

This commit is contained in:
Piotr Caban 2014-01-20 15:08:27 +01:00 committed by Alexandre Julliard
parent 75bcbece56
commit 12cfebb683
2 changed files with 16 additions and 8 deletions

View File

@ -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); pfalse = basic_string_wchar_c_str(&false_bstr);
ptrue = basic_string_wchar_c_str(&true_bstr); ptrue = basic_string_wchar_c_str(&true_bstr);
for(istreambuf_iterator_wchar_val(&first); first.strbuf; for(istreambuf_iterator_wchar_val(&first); first.strbuf;) {
istreambuf_iterator_wchar_inc(&first)) {
if(pfalse && *pfalse && first.val!=*pfalse) if(pfalse && *pfalse && first.val!=*pfalse)
pfalse = NULL; pfalse = NULL;
if(ptrue && *ptrue && first.val!=*ptrue) 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) if(ptrue)
ptrue++; ptrue++;
if(pfalse || ptrue)
istreambuf_iterator_wchar_inc(&first);
if((!pfalse || !*pfalse) && (!ptrue || !*ptrue)) if((!pfalse || !*pfalse) && (!ptrue || !*ptrue))
break; 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); pfalse = basic_string_char_c_str(&false_bstr);
ptrue = basic_string_char_c_str(&true_bstr); ptrue = basic_string_char_c_str(&true_bstr);
for(istreambuf_iterator_char_val(&first); first.strbuf; for(istreambuf_iterator_char_val(&first); first.strbuf;) {
istreambuf_iterator_char_inc(&first)) {
if(pfalse && *pfalse && first.val!=*pfalse) if(pfalse && *pfalse && first.val!=*pfalse)
pfalse = NULL; pfalse = NULL;
if(ptrue && *ptrue && first.val!=*ptrue) 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) if(ptrue)
ptrue++; ptrue++;
if(pfalse || ptrue)
istreambuf_iterator_char_inc(&first);
if((!pfalse || !*pfalse) && (!ptrue || !*ptrue)) if((!pfalse || !*pfalse) && (!ptrue || !*ptrue))
break; break;
} }

View File

@ -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); pfalse = MSVCP_basic_string_wchar_c_str(&false_bstr);
ptrue = MSVCP_basic_string_wchar_c_str(&true_bstr); ptrue = MSVCP_basic_string_wchar_c_str(&true_bstr);
for(istreambuf_iterator_wchar_val(&first); first.strbuf; for(istreambuf_iterator_wchar_val(&first); first.strbuf;) {
istreambuf_iterator_wchar_inc(&first)) {
if(pfalse && *pfalse && first.val!=*pfalse) if(pfalse && *pfalse && first.val!=*pfalse)
pfalse = NULL; pfalse = NULL;
if(ptrue && *ptrue && first.val!=*ptrue) 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) if(ptrue)
ptrue++; ptrue++;
if(pfalse || ptrue)
istreambuf_iterator_wchar_inc(&first);
if((!pfalse || !*pfalse) && (!ptrue || !*ptrue)) if((!pfalse || !*pfalse) && (!ptrue || !*ptrue))
break; 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); pfalse = MSVCP_basic_string_char_c_str(&false_bstr);
ptrue = MSVCP_basic_string_char_c_str(&true_bstr); ptrue = MSVCP_basic_string_char_c_str(&true_bstr);
for(istreambuf_iterator_char_val(&first); first.strbuf; for(istreambuf_iterator_char_val(&first); first.strbuf;) {
istreambuf_iterator_char_inc(&first)) {
if(pfalse && *pfalse && first.val!=*pfalse) if(pfalse && *pfalse && first.val!=*pfalse)
pfalse = NULL; pfalse = NULL;
if(ptrue && *ptrue && first.val!=*ptrue) 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) if(ptrue)
ptrue++; ptrue++;
if(pfalse || ptrue)
istreambuf_iterator_char_inc(&first);
if((!pfalse || !*pfalse) && (!ptrue || !*ptrue)) if((!pfalse || !*pfalse) && (!ptrue || !*ptrue))
break; break;
} }