OSDN Git Service

2003-06-22 Paolo Carlini <pcarlini@unitus.it>
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 22 Jun 2003 18:37:10 +0000 (18:37 +0000)
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 22 Jun 2003 18:37:10 +0000 (18:37 +0000)
commiteae50d4c0ac7af7f87566fe2a97042f301268ad0
treee585e329bcb33dad41e26d0e446b7fb7944596ca
parent11a9065bf53e4595cdb3e8ef3f2774810e1901da
2003-06-22  Paolo Carlini  <pcarlini@unitus.it>
    Nathan C. Myers  <ncm-nospam@cantrip.org>

* include/std/std_streambuf.h (_M_move_out_cur): _M_out_lim
is now used only for filebuf, when _M_buf_unified is true.
epgtr() plays the role of _M_out_lim but it's only updated
upon overflow, underflow, uflow, seekoff/pos.
* include/bits/sstream.tcc (_M_underflow): New, implements
stringbuf::underflow and uflow.
(seekoff, seekpos): Tweak, use  _M_update_egptr.
* include/std/std_sstream.h (str): Rewrote, deal correctly
with the new logic, in particular, when pptr() > egptr().
(_M_sync): When __testout && !__testin set all the get area
pointers to the current string end.
(_M_update_egptr): New, internal function updating egptr()
to the actual string end.
(_M_underflow): New, declare.
(underflow): Dispatch to _M_underflow(false).
(uflow): Dispatch to _M_underflow(true).

* include/bits/sstream.tcc (pbackfail, overflow, seekoff,
seekpos): Use only the documented derivation interface to
basic_streambuf (gptr(), setg(), etc.) to work right with
user specializations.
* include/std/std_sstream.h (str, _M_sync): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@68347 138bc75d-0d04-0410-961f-82ee72b054a4
libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/sstream.tcc
libstdc++-v3/include/std/std_sstream.h
libstdc++-v3/include/std/std_streambuf.h