Commit 9d3e38ec by Paolo Carlini Committed by Paolo Carlini

std_streambuf.h (uflow()): It's used only by basic_stringbuf (i.e....

2003-04-21  Paolo Carlini  <pcarlini@unitus.it>

	* include/std/std_streambuf.h (uflow()): It's used only by
	basic_stringbuf (i.e., basic_filebuf provide its own uflow()),
	therefore do not consider the _M_buf_unified == true case.

	* include/std/std_streambuf.h (sgetc()): Restore __ret variable.

From-SVN: r65891
parent 337f4314
2003-04-21 Paolo Carlini <pcarlini@unitus.it>
* include/std/std_streambuf.h (uflow()): It's used only by
basic_stringbuf (i.e., basic_filebuf provide its own uflow()),
therefore do not consider the _M_buf_unified == true case.
* include/std/std_streambuf.h (sgetc()): Restore __ret variable.
2003-04-20 Paolo Carlini <pcarlini@unitus.it> 2003-04-20 Paolo Carlini <pcarlini@unitus.it>
* docs/html/ext/howto.html ('LWG Issues'): * docs/html/ext/howto.html ('LWG Issues'):
......
...@@ -234,8 +234,7 @@ namespace std ...@@ -234,8 +234,7 @@ namespace std
* @if maint * @if maint
* Necessary bits for putback buffer management. Only used in * Necessary bits for putback buffer management. Only used in
* the basic_filebuf class, as necessary for the standard * the basic_filebuf class, as necessary for the standard
* requirements. The only basic_streambuf member function that * requirements.
* needs access to these data members is in_avail...
* *
* @note pbacks of over one character are not currently supported. * @note pbacks of over one character are not currently supported.
* @endif * @endif
...@@ -452,10 +451,12 @@ namespace std ...@@ -452,10 +451,12 @@ namespace std
int_type int_type
sgetc() sgetc()
{ {
int_type __ret;
if (_M_in_cur < _M_in_end) if (_M_in_cur < _M_in_end)
return traits_type::to_int_type(*(this->gptr())); __ret = traits_type::to_int_type(*(this->gptr()));
else else
return this->underflow(); __ret = this->underflow();
return __ret;
} }
/** /**
...@@ -787,13 +788,10 @@ namespace std ...@@ -787,13 +788,10 @@ namespace std
int_type __ret = traits_type::eof(); int_type __ret = traits_type::eof();
const bool __testeof = const bool __testeof =
traits_type::eq_int_type(this->underflow(), __ret); traits_type::eq_int_type(this->underflow(), __ret);
const bool __testpending = _M_in_cur < _M_in_end; if (!__testeof && _M_in_cur < _M_in_end)
if (!__testeof && __testpending)
{ {
__ret = traits_type::to_int_type(*_M_in_cur); __ret = traits_type::to_int_type(*_M_in_cur);
++_M_in_cur; ++_M_in_cur;
if (_M_buf_unified && _M_mode & ios_base::out)
++_M_out_cur;
} }
return __ret; return __ret;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment