diff options
author | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-06-30 11:17:23 +0000 |
---|---|---|
committer | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-06-30 11:17:23 +0000 |
commit | 212d21612a858409d6b1a0ae7214c25b7f433a2f (patch) | |
tree | b3c547f401d7d498167cb3a09ce8048cacbfa4c5 /libstdc++-v3 | |
parent | e6261ab0446c3bee593879fb51aecd109a1e5b9b (diff) | |
download | ppe42-gcc-212d21612a858409d6b1a0ae7214c25b7f433a2f.tar.gz ppe42-gcc-212d21612a858409d6b1a0ae7214c25b7f433a2f.zip |
2003-06-30 Paolo Carlini <pcarlini@unitus.it>
* include/std/std_streambuf.h (_M_mode): Move from here to
filebuf and stringbuf.
(~basic_streambuf()): Don't set _M_mode.
(basic_streambuf()): Don't set _M_mode.
* include/std/std_fstream.h (_M_mode): Move here, from streambuf.
(~basic_filebuf()): Clean up.
* include/bits/fstream.tcc (basic_filebuf()): Set _M_mode.
* include/std/std_sstream.h (_M_mode): Move here, from streambuf.
* testsuite/27_io/basic_streambuf/cons/char/1.cc: Don't set _M_mode.
* testsuite/27_io/basic_streambuf/overflow/char/1.cc: Likewise.
* testsuite/27_io/basic_streambuf/sgetc/char/1.cc: Likewise.
* testsuite/27_io/basic_streambuf/sgetn/char/1.cc: Likewise.
* testsuite/27_io/basic_streambuf/sputn/char/1.cc: Likewise.
2003-06-30 Paolo Carlini <pcarlini@unitus.it>
* include/std/std_fstream.h (_M_underflow): Remove.
(uflow): Remove, inherited from streambuf.
(underflow): Only declare.
* include/bits/fstream.tcc (_M_underflow): Rename to
underflow, to which is equivalent for __bump == false,
simplify.
* include/std/std_sstream.h (_M_underflow): Remove.
(uflow): Remove, inherited from streambuf.
(underflow): Only declare.
* include/bits/sstream.tcc (_M_underflow): Rename to
underflow, to which is equivalent for __bump == false,
simplify.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@68695 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3')
-rw-r--r-- | libstdc++-v3/ChangeLog | 31 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/fstream.tcc | 21 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/sstream.tcc | 8 | ||||
-rw-r--r-- | libstdc++-v3/include/std/std_fstream.h | 31 | ||||
-rw-r--r-- | libstdc++-v3/include/std/std_sstream.h | 18 | ||||
-rw-r--r-- | libstdc++-v3/include/std/std_streambuf.h | 13 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/27_io/basic_streambuf/cons/char/1.cc | 2 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/char/1.cc | 2 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/27_io/basic_streambuf/sgetc/char/1.cc | 2 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/27_io/basic_streambuf/sgetn/char/1.cc | 2 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/27_io/basic_streambuf/sputn/char/1.cc | 2 |
11 files changed, 63 insertions, 69 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 2090247381f..a50cbed3de8 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,34 @@ +2003-06-30 Paolo Carlini <pcarlini@unitus.it> + + * include/std/std_streambuf.h (_M_mode): Move from here to + filebuf and stringbuf. + (~basic_streambuf()): Don't set _M_mode. + (basic_streambuf()): Don't set _M_mode. + * include/std/std_fstream.h (_M_mode): Move here, from streambuf. + (~basic_filebuf()): Clean up. + * include/bits/fstream.tcc (basic_filebuf()): Set _M_mode. + * include/std/std_sstream.h (_M_mode): Move here, from streambuf. + * testsuite/27_io/basic_streambuf/cons/char/1.cc: Don't set _M_mode. + * testsuite/27_io/basic_streambuf/overflow/char/1.cc: Likewise. + * testsuite/27_io/basic_streambuf/sgetc/char/1.cc: Likewise. + * testsuite/27_io/basic_streambuf/sgetn/char/1.cc: Likewise. + * testsuite/27_io/basic_streambuf/sputn/char/1.cc: Likewise. + +2003-06-30 Paolo Carlini <pcarlini@unitus.it> + + * include/std/std_fstream.h (_M_underflow): Remove. + (uflow): Remove, inherited from streambuf. + (underflow): Only declare. + * include/bits/fstream.tcc (_M_underflow): Rename to + underflow, to which is equivalent for __bump == false, + simplify. + * include/std/std_sstream.h (_M_underflow): Remove. + (uflow): Remove, inherited from streambuf. + (underflow): Only declare. + * include/bits/sstream.tcc (_M_underflow): Rename to + underflow, to which is equivalent for __bump == false, + simplify. + 2003-06-29 Paolo Carlini <pcarlini@unitus.it> * include/bits/stl_algo.h (LOTS): Fully qualify standard diff --git a/libstdc++-v3/include/bits/fstream.tcc b/libstdc++-v3/include/bits/fstream.tcc index 6f585dc4531..a5510e380aa 100644 --- a/libstdc++-v3/include/bits/fstream.tcc +++ b/libstdc++-v3/include/bits/fstream.tcc @@ -69,11 +69,11 @@ namespace std template<typename _CharT, typename _Traits> basic_filebuf<_CharT, _Traits>:: basic_filebuf() : __streambuf_type(), _M_file(&_M_lock), - _M_state_cur(__state_type()), _M_state_beg(__state_type()), - _M_buf(NULL), _M_buf_size(BUFSIZ), _M_buf_allocated(false), - _M_reading(false), _M_writing(false), _M_last_overflowed(false), - _M_pback_cur_save(0), _M_pback_end_save(0), _M_pback_init(false), - _M_codecvt(0) + _M_mode(ios_base::openmode(0)), _M_state_cur(__state_type()), + _M_state_beg(__state_type()), _M_buf(NULL), _M_buf_size(BUFSIZ), + _M_buf_allocated(false), _M_reading(false), _M_writing(false), + _M_last_overflowed(false), _M_pback_cur_save(0), _M_pback_end_save(0), + _M_pback_init(false), _M_codecvt(0) { if (has_facet<__codecvt_type>(this->_M_buf_locale)) _M_codecvt = &use_facet<__codecvt_type>(this->_M_buf_locale); @@ -180,7 +180,7 @@ namespace std template<typename _CharT, typename _Traits> typename basic_filebuf<_CharT, _Traits>::int_type basic_filebuf<_CharT, _Traits>:: - _M_underflow(bool __bump) + underflow() { int_type __ret = traits_type::eof(); const bool __testin = this->_M_mode & ios_base::in; @@ -194,12 +194,7 @@ namespace std _M_destroy_pback(); if (this->gptr() < this->egptr()) - { - __ret = traits_type::to_int_type(*this->gptr()); - if (__bump) - this->gbump(1); - return __ret; - } + return traits_type::to_int_type(*this->gptr()); // Get and convert input sequence. const size_t __buflen = this->_M_buf_size > 1 @@ -247,8 +242,6 @@ namespace std _M_set_buffer(__ilen); _M_reading = true; __ret = traits_type::to_int_type(*this->gptr()); - if (__bump) - this->gbump(1); } else if (__elen == 0) { diff --git a/libstdc++-v3/include/bits/sstream.tcc b/libstdc++-v3/include/bits/sstream.tcc index f5b4c578071..d512e8adb08 100644 --- a/libstdc++-v3/include/bits/sstream.tcc +++ b/libstdc++-v3/include/bits/sstream.tcc @@ -115,7 +115,7 @@ namespace std template <class _CharT, class _Traits, class _Alloc> typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type basic_stringbuf<_CharT, _Traits, _Alloc>:: - _M_underflow(bool __bump) + underflow() { int_type __ret = traits_type::eof(); const bool __testin = this->_M_mode & ios_base::in; @@ -125,11 +125,7 @@ namespace std _M_update_egptr(); if (this->gptr() < this->egptr()) - { - __ret = traits_type::to_int_type(*this->gptr()); - if (__bump) - this->gbump(1); - } + __ret = traits_type::to_int_type(*this->gptr()); } return __ret; } diff --git a/libstdc++-v3/include/std/std_fstream.h b/libstdc++-v3/include/std/std_fstream.h index 605fad22b3e..b4ea860d6c3 100644 --- a/libstdc++-v3/include/std/std_fstream.h +++ b/libstdc++-v3/include/std/std_fstream.h @@ -105,6 +105,13 @@ namespace std */ __file_type _M_file; + /** + * @if maint + * Place to stash in || out || in | out settings for current filebuf. + * @endif + */ + ios_base::openmode _M_mode; + // Current and beginning state type for codecvt. /** * @if maint @@ -213,8 +220,6 @@ namespace std ~basic_filebuf() { this->close(); - _M_buf_size = 0; - _M_last_overflowed = false; } // Members: @@ -281,29 +286,9 @@ namespace std // charater from the real input source when the buffer is empty. // Buffered input uses underflow() - // The only difference between underflow() and uflow() is that the - // latter bumps _M_in_cur after the read. In the sync_with_stdio - // case, this is important, as we need to unget the read character in - // the underflow() case in order to maintain synchronization. So - // instead of calling underflow() from uflow(), we create a common - // subroutine to do the real work. - /** - * @if maint - * @doctodo - * @endif - */ - int_type - _M_underflow(bool __bump); - - // [documentation is inherited] - virtual int_type - underflow() - { return _M_underflow(false); } - // [documentation is inherited] virtual int_type - uflow() - { return _M_underflow(true); } + underflow(); // [documentation is inherited] virtual int_type diff --git a/libstdc++-v3/include/std/std_sstream.h b/libstdc++-v3/include/std/std_sstream.h index 687e26ad07e..4d6d2604619 100644 --- a/libstdc++-v3/include/std/std_sstream.h +++ b/libstdc++-v3/include/std/std_sstream.h @@ -85,6 +85,13 @@ namespace std //@} protected: + /** + * @if maint + * Place to stash in || out || in | out settings for current stringbuf. + * @endif + */ + ios_base::openmode _M_mode; + // Data Members: /** * @if maint @@ -179,18 +186,9 @@ namespace std _M_sync(const_cast<char_type*>(_M_string.data()), 0, __len); } - int_type - _M_underflow(bool __bump); - - // [documentation is inherited] - virtual int_type - underflow() - { return _M_underflow(false); } - // [documentation is inherited] virtual int_type - uflow() - { return _M_underflow(true); } + underflow(); // [documentation is inherited] virtual int_type diff --git a/libstdc++-v3/include/std/std_streambuf.h b/libstdc++-v3/include/std/std_streambuf.h index f29fea5f5b7..70967ebf742 100644 --- a/libstdc++-v3/include/std/std_streambuf.h +++ b/libstdc++-v3/include/std/std_streambuf.h @@ -178,13 +178,6 @@ namespace std /** * @if maint - * Place to stash in || out || in | out settings for current streambuf. - * @endif - */ - ios_base::openmode _M_mode; - - /** - * @if maint * Current locale setting. * @endif */ @@ -201,9 +194,7 @@ namespace std /// Destructor deallocates no buffer space. virtual ~basic_streambuf() - { - _M_mode = ios_base::openmode(0); - } + { } // [27.5.2.2.1] locales /** @@ -451,7 +442,7 @@ namespace std basic_streambuf() : _M_in_beg(0), _M_in_cur(0), _M_in_end(0), _M_out_beg(0), _M_out_cur(0), _M_out_end(0), - _M_mode(ios_base::openmode(0)),_M_buf_locale(locale()) + _M_buf_locale(locale()) { } // [27.5.2.3.1] get area access diff --git a/libstdc++-v3/testsuite/27_io/basic_streambuf/cons/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_streambuf/cons/char/1.cc index 905852422a6..c48ecbcc43d 100644 --- a/libstdc++-v3/testsuite/27_io/basic_streambuf/cons/char/1.cc +++ b/libstdc++-v3/testsuite/27_io/basic_streambuf/cons/char/1.cc @@ -41,7 +41,7 @@ public: typedef std::streambuf::char_type char_type; testbuf(): std::streambuf() - { _M_mode = (std::ios_base::in | std::ios_base::out); } + { } bool check_pointers() diff --git a/libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/char/1.cc index 386193b46c0..2a3a4be1a25 100644 --- a/libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/char/1.cc +++ b/libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/char/1.cc @@ -41,7 +41,7 @@ public: typedef std::streambuf::char_type char_type; testbuf(): std::streambuf() - { _M_mode = (std::ios_base::in | std::ios_base::out); } + { } bool check_pointers() diff --git a/libstdc++-v3/testsuite/27_io/basic_streambuf/sgetc/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_streambuf/sgetc/char/1.cc index 9efa3a72a48..d2833831e72 100644 --- a/libstdc++-v3/testsuite/27_io/basic_streambuf/sgetc/char/1.cc +++ b/libstdc++-v3/testsuite/27_io/basic_streambuf/sgetc/char/1.cc @@ -41,7 +41,7 @@ public: typedef std::streambuf::char_type char_type; testbuf(): std::streambuf() - { _M_mode = (std::ios_base::in | std::ios_base::out); } + { } bool check_pointers() diff --git a/libstdc++-v3/testsuite/27_io/basic_streambuf/sgetn/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_streambuf/sgetn/char/1.cc index 2466de5299f..f1392dc631d 100644 --- a/libstdc++-v3/testsuite/27_io/basic_streambuf/sgetn/char/1.cc +++ b/libstdc++-v3/testsuite/27_io/basic_streambuf/sgetn/char/1.cc @@ -41,7 +41,7 @@ public: typedef std::streambuf::char_type char_type; testbuf(): std::streambuf() - { _M_mode = (std::ios_base::in | std::ios_base::out); } + { } bool check_pointers() diff --git a/libstdc++-v3/testsuite/27_io/basic_streambuf/sputn/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_streambuf/sputn/char/1.cc index f48f788f4f2..0feabcd08cd 100644 --- a/libstdc++-v3/testsuite/27_io/basic_streambuf/sputn/char/1.cc +++ b/libstdc++-v3/testsuite/27_io/basic_streambuf/sputn/char/1.cc @@ -41,7 +41,7 @@ public: typedef std::streambuf::char_type char_type; testbuf(): std::streambuf() - { _M_mode = (std::ios_base::in | std::ios_base::out); } + { } bool check_pointers() |