aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libstdc++-v3/ChangeLog8
-rw-r--r--libstdc++-v3/include/std/std_streambuf.h14
2 files changed, 14 insertions, 8 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index f82d67c..5b18668 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,11 @@
+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'):
diff --git a/libstdc++-v3/include/std/std_streambuf.h b/libstdc++-v3/include/std/std_streambuf.h
index 658b02f4..ded94a4 100644
--- a/libstdc++-v3/include/std/std_streambuf.h
+++ b/libstdc++-v3/include/std/std_streambuf.h
@@ -234,8 +234,7 @@ namespace std
* @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
@@ -452,10 +451,12 @@ namespace std
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;
}
/**
@@ -787,13 +788,10 @@ namespace std
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;
}