Nathan C.
authorPaolo Carlini <paolo@gcc.gnu.org>
Sun, 22 Jun 2003 18:37:10 +0000 (18:37 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Sun, 22 Jun 2003 18:37:10 +0000 (18:37 +0000)
commit1b170b55624f9a4543692f1681bacb1d9da0ea88
treee585e329bcb33dad41e26d0e446b7fb7944596ca
parentb0a3130068590ac2dac183c970abd0e6493212a8
Nathan C.

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.

From-SVN: r68347
libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/sstream.tcc
libstdc++-v3/include/std/std_sstream.h
libstdc++-v3/include/std/std_streambuf.h