streambuf_iterator.h (class istreambuf_iterator): Consistently use _M_c to cache the current char...
2004-11-08 Paolo Carlini <pcarlini@suse.de> * include/bits/streambuf_iterator.h (class istreambuf_iterator): Consistently use _M_c to cache the current char, i.e., not only when operator++(int) is involved; change _M_c to mutable. (_M_get()): Always save the return value of _M_sbuf->sgetc() into _M_c. * testsuite/22_locale/time_get/get_monthname/char/1.cc: Fix (long standing) typo. * testsuite/22_locale/time_get/get_monthname/wchar_t/1.cc: Likewise. * testsuite/22_locale/time_get/get_weekday/char/1.cc: Likewise. * testsuite/22_locale/time_get/get_weekday/wchar_t/1.cc: Likewise. From-SVN: r90275
This commit is contained in:
parent
7bff66a715
commit
15fb0dbeb7
@ -1,3 +1,16 @@
|
||||
2004-11-08 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
* include/bits/streambuf_iterator.h (class istreambuf_iterator):
|
||||
Consistently use _M_c to cache the current char, i.e., not only
|
||||
when operator++(int) is involved; change _M_c to mutable.
|
||||
(_M_get()): Always save the return value of _M_sbuf->sgetc() into
|
||||
_M_c.
|
||||
* testsuite/22_locale/time_get/get_monthname/char/1.cc: Fix
|
||||
(long standing) typo.
|
||||
* testsuite/22_locale/time_get/get_monthname/wchar_t/1.cc: Likewise.
|
||||
* testsuite/22_locale/time_get/get_weekday/char/1.cc: Likewise.
|
||||
* testsuite/22_locale/time_get/get_weekday/wchar_t/1.cc: Likewise.
|
||||
|
||||
2004-11-08 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
* include/bits/istream.tcc (getline(char_type*, streamsize,
|
||||
|
@ -72,7 +72,7 @@ namespace std
|
||||
// NB: This implementation assumes the "end of stream" value
|
||||
// is EOF, or -1.
|
||||
mutable streambuf_type* _M_sbuf;
|
||||
int_type _M_c;
|
||||
mutable int_type _M_c;
|
||||
|
||||
public:
|
||||
/// Construct end of input stream iterator.
|
||||
@ -157,10 +157,11 @@ namespace std
|
||||
int_type __ret = __eof;
|
||||
if (_M_sbuf)
|
||||
{
|
||||
if (!traits_type::eq_int_type(_M_c, __eof))
|
||||
if (!traits_type::eq_int_type(_M_c, __eof)
|
||||
|| !traits_type::eq_int_type((_M_c = _M_sbuf->sgetc()),
|
||||
__eof))
|
||||
__ret = _M_c;
|
||||
else if (traits_type::eq_int_type((__ret = _M_sbuf->sgetc()),
|
||||
__eof))
|
||||
else
|
||||
_M_sbuf = 0;
|
||||
}
|
||||
return __ret;
|
||||
|
@ -102,7 +102,7 @@ void test01()
|
||||
tim_get.get_monthname(is_it06, end, iss, errorstate, &time06);
|
||||
VERIFY( time06.tm_mon == 4 );
|
||||
VERIFY( errorstate == ios_base::failbit );
|
||||
VERIFY( *is_it05 == 'l');
|
||||
VERIFY( *is_it06 == 'l');
|
||||
}
|
||||
|
||||
int main()
|
||||
|
@ -102,7 +102,7 @@ void test01()
|
||||
tim_get.get_monthname(is_it06, end, iss, errorstate, &time06);
|
||||
VERIFY( time06.tm_mon == 4 );
|
||||
VERIFY( errorstate == ios_base::failbit );
|
||||
VERIFY( *is_it05 == L'l' );
|
||||
VERIFY( *is_it06 == L'l' );
|
||||
}
|
||||
|
||||
int main()
|
||||
|
@ -106,7 +106,7 @@ void test01()
|
||||
tim_get.get_weekday(is_it06, end, iss, errorstate, &time06);
|
||||
VERIFY( time06.tm_wday == 4 );
|
||||
VERIFY( errorstate == ios_base::failbit );
|
||||
VERIFY( *is_it05 == 'u');
|
||||
VERIFY( *is_it06 == 'u');
|
||||
}
|
||||
|
||||
int main()
|
||||
|
@ -106,7 +106,7 @@ void test01()
|
||||
tim_get.get_weekday(is_it06, end, iss, errorstate, &time06);
|
||||
VERIFY( time06.tm_wday == 4 );
|
||||
VERIFY( errorstate == ios_base::failbit );
|
||||
VERIFY( *is_it05 == L'u' );
|
||||
VERIFY( *is_it06 == L'u' );
|
||||
}
|
||||
|
||||
int main()
|
||||
|
Loading…
Reference in New Issue
Block a user