2003-03-08 Jerry Quinn <jlquinn@optonline.net>
PR libstdc++/9561
* include/bits/basic_ios.h (_M_setstate): New.
* include/bits/ostream.tcc (operator<<): Use it.
* include/bits/istream.tcc (operator>>): Use it.
* include/std/std_ostream.h (operator<<): Make friends.
* include/std/std_istream.h (operator>>): Make friends.
* testsuite/27_io/ostream_exception.cc,
testsuite/27_io/istream_exception.cc: New tests.
From-SVN: r64021
* config/locale/generic/c_locale.cc (locale::facet::_S_create_c_locale):
Throw runtime exception when unsupported language is specified.
* testsuite/testsuite_hooks.h
(run_test_wrapped_generic_locale_exception_catcher): New function.
* testsuite/testsuite_hooks.cc (run_tests_wrapped_locale):
Suppress runtime exception thrown by generic implementation.
(run_tests_wrapped_env): Likewise.
(run_test_wrapped_generic_locale_exception_catcher): New function.
* testsuite/22_locale/collate/compare/char/1.cc: New test wrap.
* testsuite/22_locale/collate/compare/char/2.cc: New test wrap.
* testsuite/22_locale/collate/compare/char/3.cc: New test wrap.
* testsuite/22_locale/collate/hash/char/2.cc: New test wrap.
* testsuite/22_locale/collate/transform/char/2.cc: New test wrap.
* testsuite/22_locale/collate/transform/char/3.cc: New test wrap.
* testsuite/22_locale/collate_byname/1.cc: New test wrap.
* testsuite/22_locale/ctype/is/char/2.cc: New test wrap.
* testsuite/22_locale/facet/2.cc: New test wrap.
* testsuite/22_locale/locale/cons/4.cc: New test wrap.
* testsuite/22_locale/locale/cons/5.cc: New test wrap.
* testsuite/22_locale/locale/cons/7.cc: New test wrap.
* testsuite/22_locale/messages/members/char/1.cc: New test wrap.
* testsuite/22_locale/messages/members/char/2.cc: New test wrap.
* testsuite/22_locale/messages/members/char/3.cc: New test wrap.
* testsuite/22_locale/messages_byname/1.cc: New test wrap.
* testsuite/22_locale/money_get/get/char/1.cc: New test wrap.
* testsuite/22_locale/money_get/get/char/2.cc: New test wrap.
* testsuite/22_locale/money_get/get/char/3.cc: New test wrap.
* testsuite/22_locale/money_get/get/char/4.cc: New test wrap.
* testsuite/22_locale/money_put/put/char/1.cc: New test wrap.
* testsuite/22_locale/money_put/put/char/2.cc: New test wrap.
* testsuite/22_locale/money_put/put/char/3.cc: New test wrap.
* testsuite/22_locale/moneypunct/members/char/2.cc: New test wrap.
* testsuite/22_locale/moneypunct_byname/1.cc: New test wrap.
* testsuite/22_locale/num_get/get/char/1.cc: New test wrap.
* testsuite/22_locale/num_get/get/char/2.cc: New test wrap.
* testsuite/22_locale/num_get/get/char/3.cc: New test wrap.
* testsuite/22_locale/num_get/get/char/5.cc: New test wrap.
* testsuite/22_locale/num_get/get/char/6.cc: New test wrap.
* testsuite/22_locale/num_put/put/char/1.cc: New test wrap.
* testsuite/22_locale/num_put/put/char/2.cc: New test wrap.
* testsuite/22_locale/num_put/put/char/3.cc: New test wrap.
* testsuite/22_locale/num_put/put/char/5.cc: New test wrap.
* testsuite/22_locale/numpunct/members/char/1.cc: New test wrap.
* testsuite/22_locale/numpunct/members/char/2.cc: New test wrap.
* testsuite/22_locale/numpunct_byname/1.cc: New test wrap.
* testsuite/22_locale/numpunct_byname/2.cc: New test wrap.
* testsuite/22_locale/time_get/date_order/char/1.cc: New test wrap.
* testsuite/22_locale/time_get/get_date/char/1.cc: New test wrap.
* testsuite/22_locale/time_get/get_date/char/2.cc: New test wrap.
* testsuite/22_locale/time_get/get_monthname/char/1.cc: New test wrap.
* testsuite/22_locale/time_get/get_monthname/char/2.cc: New test wrap.
* testsuite/22_locale/time_get/get_time/char/1.cc: New test wrap.
* testsuite/22_locale/time_get/get_time/char/2.cc: New test wrap.
* testsuite/22_locale/time_get/get_weekday/char/1.cc: New test wrap.
* testsuite/22_locale/time_get/get_weekday/char/2.cc: New test wrap.
* testsuite/22_locale/time_get/get_year/char/1.cc: New test wrap.
* testsuite/22_locale/time_put/put/char/1.cc: New test wrap.
* testsuite/22_locale/time_put/put/char/2.cc: New test wrap.
* testsuite/22_locale/time_put/put/char/3.cc: New test wrap.
* testsuite/22_locale/time_put/put/char/4.cc: New test wrap.
* testsuite/22_locale/time_put/put/char/5.cc: New test wrap.
* testsuite/22_locale/time_put/put/char/6.cc: New test wrap.
* testsuite/22_locale/time_put/put/char/7.cc: New test wrap.
* testsuite/22_locale/time_put/put/char/8.cc: New test wrap.
* testsuite/27_io/filebuf_virtuals.cc: New test wrap.
* testsuite/27_io/ios_members.cc: New test wrap.
* testsuite/27_io/ostream_inserter_arith.cc (test02): Make void.
New test wrap.
* testsuite/27_io/streambuf_members.cc: New test wrap.
* testsuite/27_io/stringbuf_virtuals.cc: New test wrap.
From-SVN: r63975
2003-03-08 Jerry Quinn <jlquinn@optonline.net>
* include/bits/locale_facets.tcc (num_put::do_put(bool)): Use
locale cache for truename and falsename.
From-SVN: r63970
2003-03-08 Jerry Quinn <jlquinn@optonline.net>
* src/ios.cc (ios_base::ios_base): Correct order of _M_word and
_M_word_size initialization.
From-SVN: r63969
2003-03-07 Paolo Carlini <pcarlini@unitus.it>
* include/bits/fstream.tcc (_M_convert_to_external):
Set __elen to zero if codecvt::out eventually fails.
From-SVN: r63954
2003-03-07 Paolo Carlini <pcarlini@unitus.it>
PR libstdc++/9182
* include/bits/fstream.tcc (_M_really_overflow): Check
for _M_convert_to_external possible failures.
* include/std/std_fstream.h (sync): Check _M_really_overflow
return value and return -1 in case of failure.
* testsuite/27_io/filebuf_virtuals.cc (test13, test14): Add.
2003-03-07 Paolo Carlini <pcarlini@unitus.it>
PR libstdc++/9826
* include/bits/istream.tcc (operator>>(_CharT*),
operator>>(basic_string&), ws): Pass a char_type to __ctype.is.
* testsuite/27_io/stringstream.cc (test02): Add.
* include/bits/istream.tcc (operator>>(_CharT*)):
Assign a char_type to *__s.
From-SVN: r63953
2003-03-07 Jerry Quinn <jlquinn@optonline.net>
* include/bits/streambuf_iterator.h (_M_put): Set _M_failed if
sputn fails.
* testsuite/27_io/ostream_fail.cc: New test.
From-SVN: r63944
2003-03-06 Jerry Quinn <jlquinn@optonline.net>
* testsuite/27_io/ios_base_storage.cc (test02): Set exception
mask. Test setting small-numbered pword and iword slots. Test
behavior at limit of numeric_limits::max. Check that values are
still good after failures.
From-SVN: r63908
2003-03-05 Carlo Wood <carlo@alinoe.com>
* include/bits/ios_base.h(ios_base::Init::_S_initialized()): Added
_S_initialized() in order to allow debugging libraries to detect
when the std streams are initialized from an overloaded operator
new.
From-SVN: r63852
2003-03-04 Jerry Quinn <jlquinn@optonline.net>
* src/ios.cc (ios_base::_M_grow_words): Don't delete _M_word on
new failure. Throw exception if badbit and exception mask when ix
>= numeric_limits<int>::max().
From-SVN: r63824
* src/strstream.cc (strstreambuf::overflow): Make sure operands of
min and max have the same type.
* include/bits/basic_string.tcc (append, rfind, compare): Likewise.
From-SVN: r63802
2003-02-27 Jerry Quinn <jlquinn@optonline.net>
* config/locale/generic/messages_members.h (messages::messages):
Remove name from unused parameter.
From-SVN: r63545
2003-02-25 Phil Edwards <pme@gcc.gnu.org>
* docs/doxygen/Intro.3: Update with new (proper) names.
* docs/doxygen/TODO: Update.
* docs/doxygen/run_doxygen: More comments, fix up man pages.
Fake entries for standard typedefs.
* docs/doxygen/user.cfg.in: Turn INLINE_INHERITED_MEMB back on.
* docs/html/documentation.html: Top-level man page is now called
C++Intro.
* include/std/std_limits.h: Doxygenate.
From-SVN: r63433
2003-02-24 Paolo Carlini <pcarlini@unitus.it>
Nathan Myers <ncm@cantrip.org>
PR libstdc++/9404, PR libstdc++/9701 (partial)
(aka pptr == epptr implies overflow)
* include/bits/fstream.tcc (_M_allocate_internal_buffer):
Consistently, _M_out_end points to the end of the buffer just
created.
(overflow): Tweak to use _M_out_buf_size().
(_M_convert_to_external): The role of the old _M_out_end is
now played by _M_out_lim.
(_M_really_overflow): Likewise.
(seekoff): Likewise.
(setbuf): _M_out_end points to the end of the external buffer.
* include/bits/sstream.tcc (overflow): Rewrote, taking into
account the resolution of DR 169 (TC).
(seekoff): Use _M_string.capacity(); ios_base::end is now _M_out_lim.
(seekpos): Use _M_string.capacity(); tweak.
* include/bits/streambuf.tcc (sputc, xsputn): Remove comments.
* include/std/std_fstream.h (sync): The role of the old
_M_out_end is now played by _M_out_lim.
(_M_set_indeterminate): Use _M_set_determinate.
(_M_set_determinate): _M_out_end is now _M_out_lim.
(_M_is_indeterminate): Likewise.
* include/std/std_sstream.h (str()): _M_out_end is now _M_out_lim.
(_M_stringbuf_init): Don't set _M_buf_size, unused for sstreams,
which have the information readily available as _M_string.capacity();
for ate and app modes, pass the string size to _M_really_sync.
(_M_really_sync): Consistently set _M_out_end and _M_out_lim, to
point to the end of the buffer (i.e., epptr) and to the string end,
respectively.
* include/std/std_streambuf.h: tweak comments, add _M_out_lim,
which points to the right limit of the used put area.
(_M_out_cur_move): The role of the old _M_out_end is now played
by _M_out_lim.
(_M_out_buf_size): Simplify: now (when _M_out_cur) return simply
_M_out_end - _M_out_cur (i.e., pptr), _very_ close to the letter
of the standard.
(basic_streambuf()): Initialize _M_out_lim too.
* testsuite/27_io/filebuf_virtuals.cc (test10): Trivial tweak.
* testsuite/27_io/filebuf_virtuals.cc (test11): Add.
* testsuite/27_io/stringbuf_virtuals.cc (test09): Add.
Co-Authored-By: Nathan Myers <ncm@cantrip.org>
From-SVN: r63367