+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>
* docs/html/ext/howto.html ('LWG Issues'):
* @if maint
* Necessary bits for putback buffer management. Only used in
* the basic_filebuf class, as necessary for the standard
- * requirements. The only basic_streambuf member function that
- * needs access to these data members is in_avail...
+ * requirements.
*
* @note pbacks of over one character are not currently supported.
* @endif
int_type
sgetc()
{
+ int_type __ret;
if (_M_in_cur < _M_in_end)
- return traits_type::to_int_type(*(this->gptr()));
+ __ret = traits_type::to_int_type(*(this->gptr()));
else
- return this->underflow();
+ __ret = this->underflow();
+ return __ret;
}
/**
int_type __ret = traits_type::eof();
const bool __testeof =
traits_type::eq_int_type(this->underflow(), __ret);
- const bool __testpending = _M_in_cur < _M_in_end;
- if (!__testeof && __testpending)
+ if (!__testeof && _M_in_cur < _M_in_end)
{
__ret = traits_type::to_int_type(*_M_in_cur);
++_M_in_cur;
- if (_M_buf_unified && _M_mode & ios_base::out)
- ++_M_out_cur;
}
return __ret;
}