2002-12-30  Loren J. Rittle  <ljrittle@acm.org>

	* src/Makefile.am: Resolve non-portable use of $<.
	* src/Makefile.in: Rebuilt.

2002-12-30  Phil Edwards  <pme@gcc.gnu.org>

	* configure.in (GLIBCPP_ENABLE_CXX_FLAGS):  Do not pass arguments,
	let the defaults work.
	* configure:  Regenerate.

2002-12-30  Phil Edwards  <pme@gcc.gnu.org>

	* acinclude.m4:  Remove trailing whitespace.
	(GLIBCPP_ENABLE_CXX_FLAGS):  Fix.
	* aclocal.m4, configure:  Regenerate.

2002-12-29  Phil Edwards  <pme@gcc.gnu.org>

	* include/std/std_bitset.h:  Better comments.

2002-12-28  Joseph S. Myers  <jsm@polyomino.org.uk>

	* docs/html/17_intro/porting.texi: Use @copying.
	* docs/html/17_intro/porting.html: Regenerate.

2002-12-27  Mark Mitchell  <mark@codesourcery.com>

	* config/locale/gnu/ctype_members.cc
	(ctype<wchar_t>::_M_convert_to_wmask): Remove stray semicolon.
	* config/locale/gnu/monetary_members.cc
	(moneypunct<wchar_t, true>::_M_initialize_moneypunct): Avoid
	defining classes in static_cast.
	(moneypunct<wchar_t, false>::_M_initialize_moneypunct): Likewise.
	* config/locale/gnu/numeric_members.cc
	(numpunct<wchar_t, false>::_M_initialize_numpunct): Likewise.
	* include/bits/stl_deque.h (operator-): Insert typename where
	required.
	* include/bits/stl_multiset.h (multiset): Remove stray semicolon.
	* include/bits/stl_set.h (set): Likewise.
	* include/bits/valarray_meta.h (bits/slice_array.h): Include it.
	* include/std/std_fstream.h (basic_fstream::open): Use this-> to
	avoid Koenig lookup.
	(basic_fstream::close): Likewise.
	* libsupc++/new (operator delete): Remove stray semicolon.
	* libsupc++/new (operator delete[]): Likewise.
	* libsupc++/tinfo.cc: Likewise.
	* src/stdexcept.c (logic_error::~logic_error): Likewise.
	(runtime_error::~runtime_error): Likewise.

2002-12-26  Phil Edwards  <pme@gcc.gnu.org>

	* libsupc++/exception:  Add comment (mistakenly skipped).

2002-12-26  Phil Edwards  <pme@gcc.gnu.org>

	* include/std/std_bitset.h (_Base_bitset::_M_do_left_shift,
	_Base_bitset::_M_do_right_shift): Expect a non-zero shift.
	(bitset::operator<<=, bitset::operator>>=):  When shifting more bits
	than are in the bitset, zero memory rather than segfault.
	(operator>>(basic_istream,bitset):  Only call setstate once, after
	all work has been done.

	* testsuite/23_containers/bitset_members.cc (test03):  New test.
	* testsuite/23_containers/bitset_shift.cc (test02):  New test.

2002-12-26  Phil Edwards  <pme@gcc.gnu.org>

	* libsupc++/vterminate.cc (writestr):  Use __builtin_strlen.

2002-12-26  Phil Edwards  <pme@gcc.gnu.org>

	* libsupc++/eh_term_handler.cc:  Add comment about embedded systems.
	* docs/html/debug.html:  Cosmetic and HTML changes.  Point to
	verb-term notes.
	* docs/html/documentation.html:  Link to the FAQ.
	* docs/html/17_intro/howto.html:  Mention use of isatty(3).
	* docs/html/19_diagnostics/howto.html:  Update verb-term description.

2002-12-25  Phil Edwards  <pme@gcc.gnu.org>

	* src/vterminate.cc:  Move to...
	* libsupc++/vterminate.cc:  ...here.  New file.  Replace fprintf with
	writestr macro.  Slight reword to explanatory text.
	* libsupc++/eh_terminate.cc (__cxxabiv1::__terminate_handler,
	__cxxabiv1::__unexpected_handler):  Break definitions out to...
	* libsupc++/eh_unex_handler.cc:  ...here (new file), and...
	* libsupc++/eh_term_handler.cc:  ...here (new file).  Initialize
	__terminate_handler with __gnu_cxx::__verbose_terminate_handler
	instead of std::abort.

	* libsupc++/Makefile.am (sources), src/Makefile.am (sources):  Update.
	* libsupc++/Makefile.in, src/Makefile.in:  Regenerate.

2002-12-23  Danny Smith  <dannysmith@users.sourceforge.net>

	* config/io/basic_file_stdio.cc (__basic_file::_M_open_mode):
	Don't use O_NONBLOCK if it is not defined.
	(__basic_file::open): Don't use fcntl either.

2002-12-20  Sylvain Pion   <Sylvain.Pion@mpi-sb.mpg.de>

	* include/bits/stl_deque.h: Fix typo.
	* include/bits/stl_list.h: Same.
	* include/bits/stl_map.h: Same.
	* include/bits/stl_multimap.h: Same.
	* include/bits/stl_queue.h: Same.
	* include/bits/stl_stack.h: Same.
	* include/bits/stl_vector.h: Same.

2002-12-18  Benjamin Kosnik  <bkoz@redhat.com>

 	* docs/html/documentation.html: Add link for debug.html.
	* docs/html/debug.html: New.

2002-12-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* testsuite/23_containers/vector_capacity.cc (test03): Move ...
	* testsuite/23_containers/vector_resize.cc: ...here as a new file.
	Pass in -lmalloc for irix6.
	* testsuite/27_io/ios_base_storage.cc: Pass in -lmalloc for irix6.

2002-12-18  Jason Merrill  <jason@redhat.com>

	* src/vterminate.cc (__verbose_terminate_handler): Send
	diagnostics to stderr.

2002-12-18  Ulrich Weigand  <uweigand@de.ibm.com>

	* configure.in: Define with_target_subdir and with_build_subdir
	variables in config-ml.in AC_OUTPUT call.
	* configure: Regenerate.

2002-12-16  Paolo Carlini  <pcarlini@unitus.it>

	PR libstdc++/8949
	* include/std/std_limits.h
	(struct numeric_limits<short>,
	struct numeric_limits<unsigned short>,
	struct numeric_limits<int>,
	struct numeric_limits<unsigned int>,
	struct numeric_limits<long>,
	struct numeric_limits<unsigned long>,
	struct numeric_limits<long long>,
	struct numeric_limits<unsigned long long>): According
	to 18.2.1.2,53 and 18.2.1.5,1 is_iec559 shall be false.
	* testsuite/18_support/numeric_limits.cc: Add test04.

2002-12-16  Benjamin Kosnik  <bkoz@redhat.com>

        * configure.in (GLIBCPP_ENABLE_DEBUG): Default to none.
	Call GLIBCPP_ENABLE_DEBUG_FLAGS.
        * acinclude.m4 (GLIBCPP_ENABLE_DEBUG): GLIBCPP_BUILD_DEBUG, new
        conditional if --enable-debug is yes. Rework.
	(GLIBCPP_ENABLE_DEBUG_FLAGS): New.
        * aclocal.m4: Regenerate.
	* libio/Makefile.am: Remove DEBUG_FLAGS.
	* libio/Makefile.in: Regenerate.
	* libsupc++/Makefile.am: Remove DEBUG_FLAGS.
	* libsupc++/Makefile.in: Regenerate.
	* docs/html/configopts.html: Add docs for --enable-debug,
	--enable-debug-flags.

2002-12-16  Benjamin Kosnik  <bkoz@redhat.com>

	Correct dependency tracking, build warts.
	* configure.in: Correct repeated AC_OUTPUT thrashing by
	config-ml.in
	* configure: Regenerate.
	* include/Makefile.am (stamp-target): Stamp in top_builddir.
	* include/Makefile.in: Regenerate.
	* src/Makefile.am (codecvt_members.cc): New rule.
	(collate_members.cc): Same.
	(ctype_members.cc): Same.
	(messages_members.cc): Same.
	(monetary_members.cc): Same.
	(numeric_members.cc): Same.
	(time_members.cc): Same.
	(c++locale.cc): Same.
	(basic_file.cc): Same.
	* src/Makefile.in: Regenerate.
	* acinclude.m4 (CCTYPE_CHAR_CC): Remove.
	(CCCODECVT_CC): Don't link, AC_SUBST.
	(CCOLLATE_CC): Same.
	(CCTYPE_CC): Same.
	(CMESSAGES_CC): Same.
	(CMONEY_CC): Same.
	(CNUMERIC_CC): Same.
	(CTIME_CC): Same.
	(CLOCALE_CC): Same.
	* aclocal.m4: Regenerate.

	* src/Makefile.am (libstdc___la_LIBADD): Use top_builddir
	for convenience libraries.
	(version_arg): Rename linker.map to libstdc++.ver.
	(libstdc___la_DEPENDENCIES): Remove linker.map, add
	libstdc++-symbol.ver as a dependency.
	(libstdc++-symbol.ver): Add rule.
	* acinclude.m4 (GLIBCPP_ENABLE_SYMVERS): Change LINKER_MAP to
	SYMVER_MAP. Don't link, AC_SUBST.

	* include/Makefile.am (target_headers_noinst): New.
	(stamp-target): Add CLOCALE_INTERNAL_H.
	* acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): Don't link
	CLOCALE_INTERNAL_H, AC_SUBST.
	* config/locale/gnu/c_locale.cc: Modify c++locale_internal.h
	include.
	* config/locale/gnu/time_members.cc: Same.
	* config/locale/gnu/numeric_members.cc: Same.
	* config/locale/gnu/monetary_members.cc: Same.
	* config/locale/gnu/messages_members.cc: Same.
	* config/locale/gnu/ctype_members.cc: Same.
	* config/locale/gnu/collate_members.cc: Same.
	* config/locale/gnu/codecvt_members.cc: Same.
	* config/locale/generic/codecvt_members.cc: Remove.

2002-12-11  Paolo Carlini  <pcarlini@unitus.it>

	PR libstdc++/8887
	* config/locale/generic/time_members.cc
	(__timepunct<char>::_M_initialize_timepunct): Fix typos
	in _M_date_format and _M_date_era_format string literals.

2002-12-10  Mark Mitchell  <mark@codesourcery.com>

	* libsupc++/cxxabi.h (__cxa_bad_cast): Declare it.
	(__cxa_bad_typeid): Likewise.
	(__cxa_atexit): Likewise.
	(__cxa_finalize): Likewise.

2002-12-09  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* include/bits/slice_array.h (slice_array<>::operator=): Fix typo.

2002-12-09  Mark Mitchell  <mark@codesourcery.com>

	* libsupc++/cxxabi.h (__cxa_pure_virtual): Declare it.

2002-12-05  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/abi_check.cc: Add GLIBCPP_3.2.2.

2002-12-04  Paolo Carlini  <pcarlini@unitus.it>

	* config/locale/generic/codecvt_members.cc (codecvt::do_out
	(state_type&, const intern_type*, const intern_type*,
	const intern_type*&, extern_type*, extern_type*, extern_type*&),
	codecvt::do_in(state_type&, const extern_type*, const extern_type*,
	const extern_type*&, intern_type*, intern_type*, intern_type*&)):
	Fully qualify min() with std::.
	* config/locale/gnu/codecvt_members.cc: Ditto.
	* locale/ieee_1003.1-2001/codecvt_specializations.h
	(codecvt::do_length(const state_type&, const extern_type*,
	const extern_type*, size_t): Ditto.
	* include/bits/deque.tcc
	(_M_range_initialize(_ForwardIterator, _ForwardIterator,
	forward_iterator_tag), deque::_M_range_insert_aux(iterator,
	_ForwardIterator, _ForwardIterator, forward_iterator_tag),
	deque::_M_reallocate_map(size_type, bool)): Fully qualify
	distance() and max() with std::.
	* include/bits/fstream.tcc (basic_filebuf::seekoff(off_type,
	ios_base::seekdir, ios_base::openmode)): Fully qualify max()
	with std::.
	* include/bits/istream.tcc (basic_istream::ignore(streamsize,
	int_type), basic_istream::readsome(char_type*, streamsize)):
	Fully qualify min() with std::.
	* include/bits/locale_facets.tcc (time_get::_M_extract_name
	(iter_type&, iter_type&, int&, const _CharT**, size_t,
	ios_base::iostate&)): Ditto.
	* include/bits/sstream.tcc (basic_stringbuf::overflow(int_type)):
	Fully qualify max() with std::.
	* include/bits/stl_algo.h (__inplace_stable_partition(_ForwardIter
	__first, _ForwardIter, _Predicate, _Distance),
	__stable_partition_adaptive(_ForwardIter, _ForwardIter, _Predicate,
	_Distance, _Pointer, _Distance), __merge_sort_loop(_RandomAccessIter1,
	_RandomAccessIter1, _RandomAccessIter2, _Distance),
	__merge_sort_loop(_RandomAccessIter1, _RandomAccessIter1,
	_RandomAccessIter2, _Distance, _Compare), lower_bound(_ForwardIter,
	_ForwardIter, const _Tp&), lower_bound(_ForwardIter, _ForwardIter,
	const _Tp&, _Compare), upper_bound(_ForwardIter, _ForwardIter,
	const _Tp&), upper_bound(_ForwardIter, _ForwardIter, const _Tp&,
	_Compare), equal_range(_ForwardIter, _ForwardIter, const _Tp&),
	equal_range(_ForwardIter, _ForwardIter, const _Tp&, _Compare),
	__merge_without_buffer(_BidirectionalIter, _BidirectionalIter,
	_BidirectionalIter, _Distance, _Distance), __merge_without_buffer
	(_BidirectionalIter, _BidirectionalIter, _BidirectionalIter,
	_Distance, _Distance, _Compare), __rotate_adaptive(_BidirectionalIter1,
	_BidirectionalIter1, _BidirectionalIter1, _Distance, _Distance,
	_BidirectionalIter2, _Distance), __merge_adaptive(_BidirectionalIter,
	_BidirectionalIter, _BidirectionalIter, _Distance, _Distance,
	_Pointer, _Distance), __merge_adaptive(_BidirectionalIter,
	_BidirectionalIter, _BidirectionalIter, _Distance, _Distance,
	_Pointer, _Distance, _Compare), inplace_merge(_BidirectionalIter,
	_BidirectionalIter, _BidirectionalIter), inplace_merge
	(_BidirectionalIter, _BidirectionalIter, _BidirectionalIter,
	_Compare), __find_end(_BidirectionalIter1, _BidirectionalIter1,
	_BidirectionalIter2, _BidirectionalIter2, bidirectional_iterator_tag,
	bidirectional_iterator_tag), __find_end(_BidirectionalIter1,
	_BidirectionalIter1, _BidirectionalIter2, _BidirectionalIter2,
	bidirectional_iterator_tag, bidirectional_iterator_tag,
	_BinaryPredicate)): Fully qualify distance() and min() with std::.
	* include/bits/stl_algobase.h (lexicographical_compare
	(const unsigned char*, const unsigned char*, const unsigned char*,
	const unsigned char*)): Fully qualify min() with std::.
	* include/bits/stl_bvector.h (_M_insert_range(iterator,
	_ForwardIterator, _ForwardIterator, forward_iterator_tag),
	_M_assign_aux(_ForwardIterator, _ForwardIterator,
	forward_iterator_tag),
	_M_initialize_range(_ForwardIterator, _ForwardIterator,
	forward_iterator_tag), _M_fill_insert(iterator, size_type, bool)):
	Fully qualify distance() and max() with std::.
	* include/bits/stl_deque.h
	(_Deque_base::_M_initialize_map(size_t),
	_M_assign_aux(_ForwardIterator, _ForwardIterator,
	forward_iterator_tag)):
	Ditto.  * include/bits/stl_list.h (size()): Fully qualify
	distance() with std::.
	* include/bits/stl_tempbuf.h (_Temporary_buffer::_Temporary_buffer
	(_ForwardIterator, _ForwardIterator)): Ditto.
	* include/bits/stl_tree.h (_Rb_tree::erase(const _Key&),
	_Rb_tree::count(const _Key&)): Ditto.
	* include/bits/stl_vector.h (_M_range_initialize(_ForwardIterator,
	_ForwardIterator, forward_iterator_tag)): Ditto.
	* include/bits/streambuf.tcc (basic_streambuf::xsgetn(char_type*,
	streamsize), basic_streambuf::xsputn(const char_type*, streamsize)):
	Fully qualify min() with std::.
	* include/bits/vector.tcc (_M_assign_aux(_ForwardIter, _ForwardIter,
	forward_iterator_tag), _M_fill_insert(iterator, size_type,
	const value_type&), _M_range_insert(iterator, _ForwardIterator,
	_ForwardIterator, forward_iterator_tag)): Fully qualify max() and
	distance() with std::.
	* include/std/std_bitset.h (bitset::_M_copy_from_string
	(const basic_string&, size_t, size_t)): Fully qualify min() with std::.
	* include/std/std_streambuf.h (_M_pback_create()): Ditto.
	* include/std/std_complex.h (abs(const complex<_Tp>&)):
	Fully qualify max() with std::.
	* include/std/std_sstream.h (str()): Ditto.
	* src/codecvt.cc (codecvt::do_out(state_type&, const intern_type*,
	const intern_type*, const intern_type*&, extern_type*, extern_type*,
	 extern_type*&), codecvt::do_in(state_type&, const extern_type*,
	const extern_type*, const extern_type*&, intern_type*, intern_type*,
	intern_type*&), codecvt::do_length(const state_type&,
	const extern_type*, const extern_type*, size_t), do_length
	(const state_type&, const extern_type*, const extern_type*,
	size_t)): Fully qualify min() with std::.
	* src/strstream.cc (strstreambuf::strstreambuf(streamsize),
	strstreambuf::overflow(int_type)): Fully qualify max() with std::.

2002-12-02  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/basic_string.h (compare(const basic_string&)):
	Fully qualify min() with std::.

2002-12-02  Benjamin Kosnik  <bkoz@redhat.com>

	* configure.in (libtool_VERSION): Update to 5:2:0.
	* configure: Regenerate.

2002-12-02  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/basic_string.tcc
	(basic_string::append(const basic_string&, size_type,
	size_type), basic_string::compare(size_type, size_type,
	const basic_string&), basic_string::compare(size_type,
	size_type, const basic_string&, size_type, size_type),
	basic_string::compare(const _CharT*), basic_string::
	compare(size_type, size_type, const _CharT*),
	basic_string::compare(size_type, size_type, const _CharT*,
	size_type), _S_string_copy(const basic_string&, _CharT*,
	typename _Alloc::size_type)): Fully qualify min() with std::.

2002-12-02  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/basic_string.tcc
	(basic_string::_S_construct(_InIter, _InIter, const _Alloc&,
	forward_iterator_tag)): Delay the declaration of __dnew,
	fully qualify distance() with std::.
	(basic_string::_M_replace_safe): Fully qualify distance()
	with std::.

2002-11-28  Phil Edwards  <pme@gcc.gnu.org>

	PR libstdc++/8716
	* testsuite/21_strings/ctor_copy_dtor.cc (test05):  Also test
	the NULL-pointer, zero-size case.

2002-11-28  Jonathan Wakely  <redi@gcc.gnu.org>

	* docs/html/faq/index.html: Add tip about a namespace for extensions.

2002-11-28  Paolo Carlini  <pcarlini@unitus.it>
	    Nathan Myers  <ncm@cantrip.org>

	* src/localename.cc
	(locale::_Impl::_Impl(const char*, size_t)):
	Improve previous fix for the strtok vs MT issue.

2002-11-28  Paolo Carlini  <pcarlini@unitus.it>

	* config/locale/gnu/c_locale.cc (locale::_S_categories):
	Reorder the categories to match that of glibc's setlocale(LC_ALL, ""))
	* config/locale/generic/c_locale.cc (locale::_S_categories): Ditto.
	* testsuite/22_locale/ctor_copy_dtor.cc (test04): Tweak.

2002-11-25  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/abi_check.cc: Add CXXABI_1.2.1 as compatible.
	* config/linker-map.gnu: Version __cxa_guard_acquire,
	__cxa_guard_release, __cxa_guard_abort in CXXABI_1.2.1.

2002-11-25  Paolo Carlini  <pcarlini@unitus.it>
	    Nathan Myers  <ncm@cantrip.org>

	* src/localename.cc
	(locale::_Impl::_Impl(const char*, size_t)):
	Avoid strtok for thread safety.

2002-11-25  Stephen M. Webb  <stephen@bregmasoft.com>

  	* testsuite/testsuite_allocator.h: New file.
	* testsuite/testsuite_allocator.cc: New file.
	* testsuite/Makefile.am: Added testsuite_allocator to test library.
	* testsuite/testsuite_hooks.h: Added more detailed tracker objects
	gnu_copy_constructor, gnu_assignment_operator, and gnu_destructor.
	* testsuite/testsuite_hooks.cc: Added new static objects definitions.
	* testsuite/23_containers/vector_capacity.cc: Added reserve() tests.
	* testsuite/23_containers/vector_ctor.cc: Added a plethora of tests.
	* testsuite/23_containers/deque_ctor.cc: Added a slew of new tests.

2002-11-25  Mark Mitchell  <mark@codesourcery.com>

	* libsupc++/Makefile.am (sources): Add guard.cc.
	* libsupc++/Makefile.in: Regenerated.
	* libsupc++/cxxabi.h (__cxa_guard_acquire): New function.
	(__cxa_guard_release): Likewise.
	(__cxa_guard_abort): Likewise.
	* libsupc++/guard.cc: New file.

2002-11-25  Wolfgang Bangerth  <bangerth@ticam.utexas.edu>

	* include/std/std_complex.h
	(operator<<(basic_ostream&, const complex&)): Prefer 'x'
	to "x" for efficiency sake.
	* src/locale.cc (locale::locale(const char*)): Ditto.

2002-11-24  Paolo Carlini  <pcarlini@unitus.it>

	* src/locale.cc (locale::locale(const char*)):
	Trivial cosmetic tweaks.

2002-11-22  Laszlo Ersek  <erseklaszlo@chello.hu>
	    Paolo Carlini  <pcarlini@unitus.it>

	PR libstdc++/8645
	* include/bits/stl_tree.h (_Rb_tree_rebalance_for_erase):
	Don't check that __w->_M_left != 0 and __w->_M_right != 0
	when they can't be otherwise.

2002-11-21  Phil Edwards  <pme@gcc.gnu.org>

	* docs/html/documentation.html:  Fix broken/thinko'd URL.

2002-11-21  Phil Edwards  <pme@gcc.gnu.org>

	* docs/doxygen/run_doxygen:  Tighter search expression for sed.
	* docs/doxygen/stdheader.cc:  Handle the case of good headers.

2002-11-21  Phil Edwards  <pme@gcc.gnu.org>

	* acinclude.m4:  Uniform formatting.
	* configure.in:  Warn when generic atomicity.h is used.
	* configure.target:  Fix comment.
	* aclocal.m4, configure:  Regenerate.

2002-11-21  Phil Edwards  <pme@gcc.gnu.org>

	* include/bits/streambuf.tcc (basic_streambuf::sputbackc):  Prefix
	"this->" to call to pbackfail.

2002-11-21  Phil Edwards  <pme@gcc.gnu.org>

	* docs/doxygen/style.css:  Update.
	* docs/doxygen/user.cfg.in:  Update.
	* docs/html/documentation.html:  Regenerate.
	* docs/html/17_intro/howto.html:  Tweak I/O sentry entry.
	* docs/html/27_io/howto.html:  New section on headers.
	* docs/html/faq/index.html:  Add i386 threading entry.
	* docs/html/faq/index.txt:  Regenerate.

	* docs/html/ext/lwg-active.html, docs/html/ext/lwg-defects.html:
	Import R23.

2002-11-21  Phil Edwards  <pme@gcc.gnu.org>

	* docs/doxygen/TODO:  Note change in clause 27 docs.
	* include/bits/basic_ios.h, include/bits/fpos.h,
	include/bits/ios_base.h, include/bits/stl_deque.h,
	include/bits/stl_iterator_base_types.h, include/std/std_fstream.h,
	include/std/std_iomanip.h, include/std/std_iosfwd.h,
	include/std/std_iostream.h, include/std/std_istream.h,
	include/std/std_ostream.h, include/std/std_sstream.h,
	include/std/std_streambuf.h:  Doxygenate all I/O entities.

2002-11-20  Benjamin Kosnik  <bkoz@redhat.com>
	    Jonathan Lennox  <lennox@cs.columbia.edu>

	* include/bits/streambuf.tcc (__copy_streambufs):
	Revert previous fix for the interactive half of
	libstdc++/6745, use _M_buf_size_opt to set dynamically
	the correct buffer size.

2002-11-20  Jonathan Wakely  <redi@gcc.gnu.org>

	* docs/html/21_strings/howto.html: Fix example code, cite Gaby's
	explanation of "<unknown type>" error with toupper/tolower.
	* docs/html/22_locale/howto.html: Be more consistent with
	example in 21_strings.

2002-11-19  John Gustafsson  <forgoil@rsn.bth.se>

	* docs/html/20_util/howto.html: Fix typo.

2002-11-18  Jonathan Lennox  <lennox@cs.columbia.edu>

	* include/bits/streambuf.tcc (__copy_streambufs): verify
	__sbin->gptr() + __bufsize < __sbin->egptr() before using.
	* testsuite/27_io/ostream_inserter_other.cc (test_buffer_4): Add.
	(test05): Use test_buffer_4.  Delete unused ostringstream
	variables.

2002-11-18  Paolo Carlini  <pcarlini@unitus.it>

	PR libstdc++/6745 (continued)
	* include/bits/streambuf.tcc (__copy_streambufs):
	Deal with interactive input by using isatty as in the
	fix for libstdc++/8399.

2002-11-17  Jakub Jelinek  <jakub@redhat.com>

	* config/linker-map.gnu: Export _S_construct even if size_t is
	unsigned long.  Collapse std::codecvt<char>::codecvt(size_t)
	and std::codecvt<wchar_t>::codecvt(size_t) into one export pattern.

2002-11-15  Benjamin Kosnik  <bkoz@redhat.com>
	    Gabriel Dos Reis  <gdr@integrable-solutions.net>

	PR libstdc++/8230
	* include/bits/stl_alloc.h: Use builtin_expect for the most
	obvious limit checks.
	(__default_alloc_template::allocate): Check for null, throw
	bad_alloc.
	* include/bits/vector.tcc: Formatting tweaks.
	* include/bits/stl_vector.h: Same.
	* testsuite/20_util/allocator_members.cc (test02): Add.
	* testsuite/23_containers/vector_capacity.cc (test03): Add.

2002-11-15  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* src/ios.cc [_GLIBCPP_HAVE_UNISTD_H]: Include unistd.h.

2002-11-15  Paolo Carlini  <pcarlini@unitus.it>
	    Loren J. Rittle  <ljrittle@acm.org>

	PR libstdc++/8399
	* acinclude.m4
	(GLIBCPP_CHECK_UNISTD_DECL_AND_LINKAGE_1): New macro to
	check for unistd.h functions.
	(GLIBCPP_CHECK_UNISTD_SUPPORT): New macro, check for isatty
	in unistd.h.
	* configure.in: Call here.
	* src/ios.cc (ios_base::Init::_S_ios_create(bool)):
	Use _GLIBCPP_HAVE_ISATTY: ifdef, in case of interactive
	input __in_size = 1 even when sync_with_stdio is false;
	otherwise fall back to __in_size = 1.
	* aclocal.m4: Regenerate.
	* config.h.in: Regenerate.
	* configure: Regenerate.

2002-11-13  Benjamin Kosnik  <bkoz@redhat.com>

	* acconfig.h (HAVE_DRAND48): Add.
	(HAVE_GETPAGESIZE): Add.
	(HAVE_SETENV): Add.
	(HAVE_SIGSETJMP): Add.
	* config.h.in: Regenerate.
	* configure: Regenerate.

2002-11-13  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* config/os/hpux/os_defines.h (_GLIBCPP_INST_ATOMICITY_LOCK): Define
	on hppa when there is no weak support.

2002-11-13  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/8230
	* include/bits/vector.tcc (vector::reserve): Throw length_error if
	requested size is bigger than max_size().
	* include/bits/stl_bvector.h (vector<bool>::reserve): Same.
	* testsuite/23_containers/vector_capacity.cc (test02): Add.

2002-11-13  Benjamin Kosnik  <bkoz@redhat.com>

	* config/linker-map.gnu: Export all _S_construct.

2002-11-13  Loren J. Rittle  <ljrittle@acm.org>

	PR libstdc++/7445
	* src/locale.cc (std::locale::classic()): Weaken locking protocol.

2002-11-13  Jonathan Wakely  <redi@gcc.gnu.org>

	* docs/html/install.html, docs/html/22_locale/locale.html: HTML fix.

2002-11-11  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/6746
	* include/bits/fstream.tcc (filebuf::open): Set input pointers.
	* config/io/basic_file_stdio.cc (__basic_file::_M_open_mode): Set
	__p_mode as well.
	(__basic_file::open): Set to non-block for input.
	* testsuite/27_io/istream_unformatted.cc (test12): Add.
	(test13): Same.

2002-11-11  Jonathan Wakely <redi@gcc.gnu.org>

	* docs/html/17_intro/howto.html: Make "chapter 22 notes" a link.
	* docs/html/faq/index.html: Mention that GCC ships with a newer
	version of the library than the last snapshot. Make "see below" a
	link. Add missing <html> tag.
	* docs/html/faq/index.txt: Regenerate.
	* docs/html/22_locale/locale.html, docs/html/22_locale/messages.html,
	docs/html/23_containers/howto.html, docs/html/24_iterators/howto.html,
	docs/html/25_algorithms/howto.html, docs/html/26_numerics/howto.html,
	docs/html/27_io/howto.html, docs/html/ext/howto.html,
	docs/html/ext/sgiexts.html: Add missing <html> tag.

2002-11-07  Phil Edwards  <pme@gcc.gnu.org>
	    Richard Earnshaw  <rearnsha@arm.com>

	* config/cpu/generic/atomicity.h:  Provide atomic __exchange_and_add
	and __atomic_add.

2002-11-08  Paolo Carlini  <pcarlini@unitus.it>

	* config/locale/gnu/monetary_members.cc
	(moneypunct<wchar_t, true>::_M_initialize_moneypunct(__c_locale,
	const char*),
	moneypunct<wchar_t, false>::_M_initialize_moneypunct(__c_locale,
	const char*)): Tweak parameters for glibc2.3 systems, thus
	avoiding unused parameter warnings.

2002-11-05  Jonathan Wakely  <cow@compsoc.man.ac.uk>

	* include/std/std_sstream.h
	(basic_stringbuf::str(const __string_type&)):
	Prefer data() to c_str(), thus avoiding assigning the
	unnecessary NULL-terminator.

2002-11-05  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/8258
	* include/bits/istream.tcc (istream::readsome): Don't set eofbit
	for null buffer.
	(istream::operator>>(_CharT*)): Use traits_type.
	(istream::ws): Same.
	(istream::operator>>(string)): Same.
	* testsuite/27_io/istream_unformatted.cc (test11): Add.

2002-11-05  Paolo Carlini  <pcarlini@unitus.it>

	PR libstdc++/8466
	* include/std/std_sstream.h
	(basic_stringbuf::str(const __string_type&)):
	Cannot use simple assignment since the COW-nature of v3
	basic_string is not taken into account in basic_stringbuf.
	* testsuite/27_io/stringstream_members.cc: Add test04 from PR.

2002-11-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* configure.target (hppa*): Define cpu_include_dir.
	* config/os/hpux/os_defines.h (_GLIBCPP_INST_ATOMICITY_LOCK): Define.
	* src/misc-inst.cc: Instantiate atomicity lock when
	_GLIBCPP_INST_ATOMICITY_LOCK is defined.
	* config/cpu/hppa/atomicity.h: New file.

2002-11-05  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/8463
	* include/bits/ios_base.h (~ios_base): Make virtual.

2002-11-04  Benjamin Kosnik  <bkoz@redhat.com>

	* config/linker-map.gnu: Export string operator+.
	Export __default_alloc_template::_S_force_new.
	* testsuite/abi_check.cc: Output tweaks.

2002-11-01  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/8172
	* src/string-inst.cc: Add instantiation.

2002-11-01  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/7926
	* configure.target: Simplify.
	* config/cpu/i386/atomicity.h: Remove.
	* config/cpu/i386: Remove.
	* config/cpu/arm/atomicity.h: Remove.
	* config/cpu/arm: Remove.
	* config/cpu/x86-64/atomicity.h: Remove.
	* config/cpu/x86-64: Remove.

2002-11-01  Christian Ehrhardt  <ehrhardt@mathematik.uni-ulm.de>

	PR libstdc++/8197
	* config/link-map.gnu: Export math stubbs.

2002-11-01  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/8318
	* include/std/std_iostream.h: Tweak.
	* include/std/std_iosfwd.h: Add _GLIBCPP_USE_WCHAR_T.
	* include/std/std_iomanip.h: Same.
	* include/bits/stringfwd.h: Same.
	* include/bits/basic_string.tcc: Same.
	* include/bits/sstream.tcc: Same.
	* include/bits/fstream.tcc: Same.
	* include/bits/basic_ios.tcc: Same.
	* include/bits/streambuf.tcc: Same.
	* include/bits/locale_facets.tcc: Same.

2002-11-01  John Carter  <john.carter@tait.co.nz>

	PR libstdc++/7961
	* include/bits/basic_string.tcc
	(compare(const _CharT* __s)): Don't access __s past its length.

2002-10-31  Zack Weinberg  <zack@codesourcery.com>

	* libsupc++/eh_globals.cc: Don't call __gthread_key_dtor.

2002-10-31  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/8348
	* include/bits/istream.tcc (istream::tellg): Remove sentry bits.
	(istream::seekg): Same.
	* testsuite/27_io/istream_seeks.cc (test06): New.

2002-10-28  Jason Thorpe  <thorpej@wasabisystems.com>

	* testsuite/thread/pthread5.cc: Include <unistd.h>
	if _GLIBCPP_HAVE_UNISTD_H is defined.
	(main): Only use pthread_attr_setscope if
	_POSIX_THREAD_PRIORITY_SCHEDULING is defined.

2002-10-28  Jason Thorpe  <thorpej@wasabisystems.com>

	* testsuite/thread/pthread1.cc: Enable on *-*-netbsd*.
	* testsuite/thread/pthread2.cc: Likewise.
	* testsuite/thread/pthread3.cc: Likewise.
	* testsuite/thread/pthread4.cc: Likewise.
	* testsuite/thread/pthread5.cc: Likewise.
	* testsuite/thread/pthread6.cc: Likewise.

2002-10-27  Paolo Carlini  <pcarlini@unitus.it>

	PR libstdc++/8347
	* include/bits/basic_string.tcc
	(string::_S_construct(_InIter, _InIter, const _Alloc&,
	forward_iterator_tag)): Do not throw logic error if
	__beg == NULL && __end == __beg.
	(string::string(const _CharT*, const _Alloc&)): Tweak.
	* testsuite/21_strings/ctor_copy_dtor.cc: Add test05 from PR.

2002-10-24  Hans-Peter Nilsson  <hp@bitrange.com>

	PR other/3337
	PR bootstrap/6763
	PR bootstrap/8122
	* testsuite/testsuite_hooks.cc (__set_testsuite_memlimit): Use
	__typeof__ (r.rlim_cur), not rlim_t in declaration of limit.

2002-10-23  Jakub Jelinek  <jakub@redhat.com>

	* testsuite/22_locale/num_put_members_char.cc (test01): Swap size
	and decimal_point arguments of find.
	* testsuite/22_locale/num_put_members_wchar_t.cc (test01): Likewise.

2002-10-22  Jakub Jelinek  <jakub@redhat.com>

	* Makefile.am (check-abi, new-abi-baseline): Use @glibcpp_srcdir@
	instead of ${top_srcdir}.
	* Makefile.in: Rebuilt.

2002-10-22  Loren J. Rittle  <ljrittle@acm.org>

	* testsuite/18_support/numeric_limits.cc (test_extrema<long double>):
	Remove specialization for FreeBSD systems.

2002-10-18  Loren J. Rittle  <ljrittle@acm.org>

	* configure.target (freebsd*): Use abi_baseline_triplet.
	* config/abi/i386-unknown-freebsd4/baseline_symbols.txt: New file.
	* config/abi/i386-unknown-freebsd4.7/baseline_symbols.txt: Remove.

	* testsuite/thread/pthread1.cc: Remove needless workaround
	for FreeBSD 5.

2002-10-18  Loren J. Rittle  <ljrittle@acm.org>
	    Brad Spencer  <spencer@infointeractive.com>
	    (provided alternate patch and improvements)

	* docs/html/23_containers/howto.html (GLIBCPP_FORCE_NEW): Document
	new environment variable which replaces all uses of __USE_MALLOC
	macro.
	* docs/html/ext/howto.html (GLIBCPP_FORCE_NEW): Likewise.
	(__mem_interface): Remove all references to old internal typedef.
	* include/backward/alloc.h (__USE_MALLOC): Remove it and all
	guarded code.
	* include/bits/c++config (__USE_MALLOC): Update related error
	message and comment.
	* include/bits/stl_alloc.h (__USE_MALLOC): Remove it and all
	guarded code.  Update all related comments.
	(__mem_interface): Unconditionally replace it with __new_alloc.
	However, leave the typedef around in case anyone used it.
	(__default_alloc_template<>::_S_force_new): New class static.
	(__default_alloc_template<>::allocate, deallocate): Add
	run-time controlled feature similar to what __USE_MALLOC code
	path had provided.
	* src/stl-inst.cc (__USE_MALLOC): Remove it and all
	guarded code.
	* testsuite/21_strings/capacity.cc: Remove reference to __USE_MALLOC.
	Add documentation on GLIBCPP_FORCE_NEW environment variable.
	* testsuite/ext/allocators.cc: Likewise.

2002-10-18  Phil Edwards  <pme@gcc.gnu.org>

	* configure.in:  Use target, not target_alias, when matching triplet
	patterns.
	* configure:  Regenerate.

2002-10-17  Momchil Velikov  <velco@fadata.bg>
	    Loren J. Rittle  <ljrittle@acm.org>

	* configure.in: Add *-freebsd* to cross list.
	* configure: Rebuilt.

2002-10-16  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/locale_facets.h (__timepunct::__timepunct): Allocate
	_M_name_timepunct.
	(__timepunct::~__timepunct): Deallocate, remove specialization
	declarations.
	(messages::messages): Allocate _M_name_messages.
	(messages::~messages): Deallocate.
	(messages_byname): Same.
	* config/locale/gnu/time_members.cc (__timepunct::~__timepunct):
	Remove.
	* config/locale/generic/time_members.cc (__timepunct::~__timepunct):
	Remove.

	* docs/html/install.html: Add es_MX, en_PH to required locales list.

2002-10-16  Benjamin Kosnik  <bkoz@redhat.com>

	* config/linker-map.gnu: Add exports for codecvt constructors
	where size_t == unsigned long.

2002-10-14  Benjamin Kosnik  <bkoz@redhat.com>

	* src/globals.cc (__gnu_cxx::c_locale_impl_compat): Add, alias to
	c_locale_impl.
	* testsuite/abi_check.cc (line_to_symbol_info): Collect size info.
	* docs/html/abi.txt: Update.

2002-10-14  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/22_locale/static_members.cc (test02): Less provincial.

2002-10-14  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/22_locale/static_members.cc (test02): Disable for
	systems without named locale support.
	* testsuite/22_locale/ctor_copy_dtor.cc (test04): Don't assume
	running the testsuites in "C" environment.
	Add new tests.
	* docs/html/22_locale/locale.html: Update.

2002-10-13  Danny Smith  <dannysmith@users.sourceforge.net>

	* include/bits/stl_threads.h (_GLIBCPP_mutex,
	_GLIBCPP_mutex_init,_GLIBCPP_mutex_address,
	_GLIBCPP_mutex_address_init, _GLIBCPP_once):
	Declare in namespace __gnu_cxx.
	(_STL_mutex_lock::_M_initialize): Qualify __gnu_cxx
	names.
	Adjust copyright.

2002-10-12  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/abi_check.cc (hash<string>): Specialize.
	Simplify. Check compatible symbol versions.
	* config/linker-map.gnu: Clarify, explicitly export
	std::codecvt::c* symbols.

	* testsuite/22_locale/static_members.cc (test02): Avoid null strings.

2002-10-12  Jonathan Wakely  <jw@kayari.org>
	    Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* docs/html/21_strings/howto.html#5:  Correct nasting of XHTML
	elements.  Correct allocator-related text.

2002-10-11  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/22_locale/static_members.cc (test02): Fix.

2002-10-11  Benjamin Kosnik  <bkoz@redhat.com>

	* acconfig.h (_GLIBCPP_SYMVER): Add.
	(_GLIBCPP_ASM_SYMVER): Add.
	* acinclude.m4 (GLIBCPP_ENABLE_SYMVERS): Define _GLIBCPP_SYMVER.
	* aclocal.m4: Regenerate.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* include/bits/c++config (_GLIBCPP_AT_AT): Define, as an expedient
	hack around m4 issues with quoting '@'.
	* src/locale.cc: Use _GLIBCPP_ASM_SYMVER.
	* src/globals.cc: Same.

	* testsuite/22_locale/ctor_copy_dtor.cc (test04): Fix for
	non-glibc systems.

2002-10-10  Benjamin Kosnik  <bkoz@redhat.com>

	* config/linker-map.gnu (GLIBCPP_3.2.1): Add.
	(GLIBCPP_3.2): Don't export locale::_S_*.
	* src/ios.cc: Move globals into __gnu_cxx. Make old exported
	symbols match.
	* src/locale.cc: Same.
	* src/localename.cc: Same.
	* src/globals.cc: Same.

2002-10-10  Phil Edwards  <pme@gcc.gnu.org>

	* docs/html/21_strings/howto.html:  Write #5, char_traits.
	* docs/html/17_intro/porting.texi:  Expand on os_include_dir.
	* docs/html/17_intro/porting.html:  Regenerate.

2002-10-09  Benjamin Kosnik  <bkoz@redhat.com>

	* src/locale.cc: Fix comments, move ctors together.
	* testsuite/22_locale/static_members.cc (test03): Add.

2002-10-08  Jonathan Lennox  <lennox@cs.columbia.edu>

	PR libstdc++/8071, libstdc++/8127, libstdc++/6745
	* streambuf.tcc (__copy_streambufs): Handle cases where
	__sbin->in_avail() returns 0, or where __sbin doesn't set gptr().
	* testsuite/27_io/ostream_inserter_other.cc (test05): Add.

2002-10-08  Paolo Carlini  <pcarlini@unitus.it>
	    Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/localefwd.h (class locale): Add static member
	_S_num_extra_categories, encoding the number of additional
	categories.
	Change _S_num_categories to _S_categories_size.
	(class locale::_Impl): Add _M_c_cats.
	(class locale::_Impl::_M_names): Change to array of chars.
	(class locale::_Impl::_M_check_same_name): Use
	_S_extra_categories_size, tweak.
	(locale::locale(const locale&, _Facet*)): Ditto.
    	* src/locale.cc (locale::locale(const char* )): Rewrite to deal
	with the environment in a POSIX-compliant way while being thread
	safe.
	(locale::name()): Update to output POSIX environment strings.
	* src/localename.cc
	(locale::_Impl::_Impl(const _Impl&, size_t): Use
	_S_categories_size_*, tweak.
	(locale::_Impl::_Impl(facet**, size_t, bool)): Ditto.
	(locale::_Impl::_Impl(const char*, size_t)): Name each category
	individually.
	(locale::_Impl::_M_replace_categories): Use strcpy.

	* include/bits/locale_facets.h (numpunct::_M_initialize_numpunct):
	Change default argument to NULL from _S_c_locale.
	(timepunct::_M_initialize_timepunct): Same.
	_S_c_locale cleanups.
	* src/codecvt.c: _S_c_locale simplification.
	* src/ctype.c: Same.
	* src/globals.cc: Add fake_name.
	* src/locale-inst.cc: Remove extra includes.
	* src/locale.cc: Remove extra includes.
	Add _S_extra_categories_size definition.
	Correct "C" initialization.
	(locale::facet::facet): Don't initialize _S_c_locale.
	(locale::facet::_M_remove_reference): Adjust.
	* src/localename: Use facet_vec, facet_name.
	(locale::_Impl::_Impl(facet** __f, size_t __refs, bool)): Set
	facet ref counts to one. Initialize _S_c_locale.
	(locale::_Impl::_M_install_facet(id*, facet*)): Adjust facet ref
	counts when installing unilaterally.

	* config/locale/generic/c_locale.cc: Add _S_categories definition.
	* config/locale/generic/c_locale.h: Add _GLIBCPP_NUM_CATEGORIES macro.
	* config/locale/generic/time_members.cc: _S_c_locale cleanup.

	* config/locale/gnu/c_locale.cc: Add _S_categories definition.
	(_S_destroy_c_locale): Move checks against _S_c_locale here.
	* config/locale/gnu/c_locale.h: Add _GLIBCPP_NUM_CATEGORIES macro.
	* config/locale/gnu/ctype_members.cc: Simplify _S_destroy_c_locale
	calls, _S_c_locale usage.
	* config/locale/gnu/monetary_members.cc: Same, tweaks.
	* config/locale/gnu/monetary_members.cc: Same.
	* config/locale/gnu/time_members.cc: Same.
	* config/os/gnu-linux/ctype_noninline.h: Use locale::classic().

	* docs/html/22_locale/locale.html: Add bits about global locales
	and "C" setlocale.

	* testsuite/22_locale/facet.cc (test02): Add.
	* testsuite/22_locale/static_members.cc (test02): Add.
	* testsuite/22_locale/ctor_copy_dtor.cc (test04): Add.

2002-10-07  Jonathan Wakely  <jw@kayari.org>

	* docs/html/configopts.html, docs/html/documentation.html,
	docs/html/explanations.html, docs/html/install.html,
	docs/html/17_intro/contribute.html, docs/html/17_intro/howto.html,
	docs/html/17_intro/license.html, docs/html/18_support/howto.html,
	docs/html/19_diagnostics/howto.html, docs/html/20_util/howto.html,
	docs/html/21_strings/howto.html, docs/html/22_locale/codecvt.html,
	docs/html/22_locale/ctype.html, docs/html/22_locale/howto.html,
	docs/html/22_locale/locale.html, docs/html/22_locale/messages.html,
	docs/html/23_containers/howto.html, docs/html/24_iterators/howto.html,
	docs/html/25_algorithms/howto.html, docs/html/26_numerics/howto.html,
	docs/html/27_io/howto.html, docs/html/ext/howto.html,
	docs/html/ext/sgiexts.html, docs/html/faq/index.html:  Add DOCTYPEs.

2002-10-03  Richard Earnshaw  <rearnsha@arm.com>

	PR libstdc++/3584
	* config/cpu/arm/atomicity.h (__exchange_and_add): Don't try to use
	ASM sequences that don't give us atomic addition operations.  Instead
	just add a comment explaining why it doesn't work.
	(__atomic_add): Just use __exchange_and_add.
	(__test_and_set, __always_swap): Delete.

2002-10-02  Andreas Jaeger  <aj@suse.de>

	* config/abi/x86_64-unknown-linux-gnu/baseline_symbols.txt:
	New file.

2002-10-01  Phil Edwards  <pme@gcc.gnu.org>

	* Makefile.am (check-abi):  Add @ to rule.
	* Makefile.in:  Regenerated.

2002-09-27  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/locale_facets.tcc (num_put::_M_widen_int):
	Deal correctly with grouped, showbased (oct or hex) zero.
	* testsuite/22_locale/num_put_members_char.cc: Add test05.
	* testsuite/22_locale/num_put_members_wchar_t.cc: Ditto.

2002-09-27  Richard Henderson  <rth@redhat.com>

	* config/os/hpux/cpu_limits.h: Remove.

	* include/std/std_limits.h (numeric_limits<T>::is_iec559): False
	if denormals are not supported.

2002-09-25  Benjamin Kosnik  <bkoz@redhat.com>

	* include/Makefile.am (target_headers): Remove cpu_limits.h.
	* include/Makefile.in: Regenerate.
	* configure.in (CPU_LIMITS_INC_SRCDIR): Remove
	* configure: Regenerate.
	* configure.target (CPULIMITS): Remove.

	* include/std/std_limits.h: Remove cpu_limits.h include.

	* config/os/solaris/solaris2.7/os_defines.h (__glibcpp_long_bits):
	Remove.
	* config/os/irix/irix6.5/os_defines.h
	(__glibcpp_long_double_bits): Remove.
	(__glibcpp_wchar_t_bits): Remove.
	(__glibcpp_long_bits): Remove.
	* config/os/irix/irix5.2/os_defines.h
	(__glibcpp_long_double_bits): Remove.
	(__glibcpp_long_bits): Remove.
	* config/os/hpux/os_defines.h (__glibcpp_wchar_t_is_signed): Remove.
	* config/os/bsd/freebsd/os_defines.h:
	(__glibcpp_long_double_bits): Remove.
	* config/os/aix/os_defines.h (__glibcpp_wchar_t_bits): Remove.
	(__glibcpp_wchar_t_is_signed): Remove.
	(__glibcpp_long_bits): Remove.
	* config/os/gnu-linux/os_defines.h (__glibcpp_long_bits): Remove.
	(__glibcpp_long_double_bits): Remove.

	* config/os/osf/osf5.0/cpu_limits.h: Remove.
	* config/cpu/alpha/cpu_limits.h: Remove.
	* config/cpu/arm/cpu_limits.h: Remove.
	* config/cpu/cris/cpu_limits.h: Remove.
	* config/cpu/generic/cpu_limits.h: Remove.
	* config/cpu/generic/limits.h: Remove.
	* config/cpu/ia64/cpu_limits.h: Remove.
	* config/cpu/m68k/cpu_limits.h: Remove.
	* config/cpu/mmix/cpu_limits.h: Remove.
	* config/cpu/powerpc/cpu_limits.h: Remove.
	* config/cpu/S390/cpu_limits.h: Remove.

2002-09-25  Peter Schmid  <schmid@snake.iap.physik.tu-darmstadt.de>

	* testsuite/18_support/numeric_limits.cc: Check the maximum and
	minimum values of the wchar_t type.

2002-09-25  Mark Mitchell  <mark@codesourcery.com>

	* include/std/std_limits.h (numeric_limits<unsigned char>::digits):
	Fix typo.

2002-09-23  Richard Henderson  <rth@redhat.com>

	* include/std/std_limits.h (__glibcpp_plain_char_is_signed,
	__glibcpp_wchar_t_is_signed, __glibcpp_s8_max, __glibcpp_s8_min,
	__glibcpp_s8_digits, __glibcpp_s8_digits10, __glibcpp_u8_min,
	__glibcpp_u8_max, __glibcpp_u8_digits, __glibcpp_u8_digits10,
	__glibcpp_s16_max, __glibcpp_s16_min, __glibcpp_s16_digits,
	__glibcpp_s16_digits10, __glibcpp_u16_min, __glibcpp_u16_max,
	__glibcpp_u16_digits, __glibcpp_u16_digits10, __glibcpp_s32_max,
	__glibcpp_s32_min, __glibcpp_s32_digits, __glibcpp_s32_digits10,
	__glibcpp_u32_min, __glibcpp_u32_max, __glibcpp_u32_digits,
	__glibcpp_u32_digits10, __glibcpp_s64_max, __glibcpp_s64_min,
	__glibcpp_s64_digits, __glibcpp_s64_digits10, __glibcpp_u64_min,
	__glibcpp_u64_max, __glibcpp_u64_digits, __glibcpp_u64_digits10,
	__glibcpp_bool_digits, __glibcpp_signed_char_min,
	__glibcpp_signed_char_max, __glibcpp_signed_char_digits,
	__glibcpp_signed_char_digits10, __glibcpp_unsigned_char_min,
	__glibcpp_unsigned_char_max, __glibcpp_unsigned_char_digits,
	__glibcpp_unsigned_char_digits10, __glibcpp_char_min,
	__glibcpp_char_max, __glibcpp_char_digits, __glibcpp_char_digits10,
	__glibcpp_signed_short_min, __glibcpp_signed_short_max,
	__glibcpp_signed_short_digits, __glibcpp_signed_short_digits10,
	__glibcpp_unsigned_short_min, __glibcpp_unsigned_short_max,
	__glibcpp_unsigned_short_digits, __glibcpp_unsigned_short_digits10,
	__glibcpp_signed_int_min, __glibcpp_signed_int_max,
	__glibcpp_signed_int_digits, __glibcpp_signed_int_digits10,
	__glibcpp_unsigned_int_min, __glibcpp_unsigned_int_max,
	__glibcpp_unsigned_int_digits, __glibcpp_unsigned_int_digits10,
	__glibcpp_signed_long_min, __glibcpp_signed_long_max,
	__glibcpp_unsigned_long_digits, __glibcpp_unsigned_long_digits10,
	__glibcpp_signed_long_long_min, __glibcpp_signed_long_long_max,
	__glibcpp_signed_long_long_digits, __glibcpp_signed_long_long_digits10,
	__glibcpp_wchar_t_min, __glibcpp_wchar_t_max, __glibcpp_wchar_t_digits,
	__glibcpp_wchar_t_digits10): Remove.
	(__glibcpp_byte, __glibcpp_word_bits, __glibcpp_word): Remove.
	(__float_storage, __double_storage, __long_double_storage): Remove.
	(__glibcpp_signed, __glibcpp_min, __glibcpp_max): New.
	(__glibcpp_digits, __glibcpp_digits10): New.
	(numeric_limits<T>::min): Use __glibcpp_min or limits.h builtins.
	(numeric_limits<T>::max): Use __glibcpp_max or limits.h builtins.
	(numeric_limits<T>::is_signed, T=char,wchar_t): Use __glibcpp_signed.
	(numeric_limits<T>::digits): Use __glibcpp_digits.
	(numeric_limits<T>::digits10): Use __glibcpp_digits10.
	* testsuite/18_support/numeric_limits.cc (test03): Don't use
	__glibcpp_s8_digits10 et al; check vs the installed versions
	of digits10 for particular sizes.

	* include/std/std_limits.h (__glibcpp_float_is_modulo,
	__glibcpp_double_is_modulo, __glibcpp_long_double_is_modulo): Kill.
	(numeric_limits<T>::is_modulo, T floating): Use false.

2002-09-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* Makefile.am (all-multi): Fix multilib parallel build.

2002-09-22  Richard Henderson  <rth@redhat.com>

	* include/std/std_limits.h (__glibcpp_f32_round_error,
	__glibcpp_f64_round_error, __glibcpp_f80_round_error,
	__glibcpp_f96_round_error, __glibcpp_f128_round_error,
	__glibcpp_float_round_error, __glibcpp_double_round_error,
	__glibcpp_long_double_round_error, __glibcpp_float_round_style,
	__glibcpp_double_round_style, __glibcpp_long_double_round_style): Kill.
	(numeric_limits<char>::epsilon, round_error): Use constant 0.
	(numeric_limits<float>::round_error): Use constant 0.5.
	(numeric_limits<float>::round_style): Use round_to_nearest.
	(numeric_limits<double>, numeric_limits<long double>): Similarly.

	* include/std/std_limits.h (__glibcpp_f32_is_iec559,
	__glibcpp_f64_is_iec559, __glibcpp_f80_is_iec559,
	__glibcpp_f96_is_iec559, __glibcpp_f128_is_iec559,
	__glibcpp_float_is_iec559, __glibcpp_double_is_iec559,
	__glibcpp_long_double_is_iec559): Remove.
	(numeric_limits<float>::is_iec559): Use has_infinity & has_quiet_NaN.
	(numeric_limits<double>, numeric_limits<long double>): Similarly.

	* include/std/std_limits.h (__glibcpp_integral_traps): New.
	(__glibcpp_char_traps, __glibcpp_short_traps, __glibcpp_int_traps,
	__glibcpp_long_traps, __glibcpp_wchar_t_traps,
	__glibcpp_long_long_traps, __glibcpp_plain_char_traps,
	__glibcpp_signed_char_traps, __glibcpp_unsigned_char_traps,
	__glibcpp_signed_short_traps, __glibcpp_unsigned_short_traps,
	__glibcpp_signed_int_traps, __glibcpp_unsigned_int_traps,
	__glibcpp_signed_long_traps, __glibcpp_unsigned_long_traps,
	__glibcpp_signed_long_long_traps, __glibcpp_unsigned_long_long_traps,
	__glibcpp_char_is_modulo, __glibcpp_signed_char_is_modulo,
	__glibcpp_signed_short_is_modulo, __glibcpp_signed_int_is_modulo,
	__glibcpp_signed_long_is_modulo, __glibcpp_signed_long_long_is_modulo,
	__glibcpp_wchar_t_is_modulo, __glibcpp_float_is_bounded,
	__glibcpp_double_is_bounded, __glibcpp_long_double_is_bounded): Kill.
	(numeric_limits<T>::traps, T integral): Use __glibcpp_integral_traps.
	(numeric_limits<T>::is_modulo, T integral): Use true.
	(numeric_limits<T>::is_bounded, T floating): Use true.

2002-09-18  Loren J. Rittle  <ljrittle@acm.org>

	* testsuite/18_support/numeric_limits.cc (test_epsilon): New.

2002-09-18  Richard Henderson  <rth@redhat.com>

	* testsuite/18_support/numeric_limits.cc: Add -mieee for alpha.

2002-09-16  Benjamin Kosnik  <bkoz@redhat.com>

	* include/c_shadow: Remove.
	* include/bits/generic_shadow.h: Remove.
	* include/Makefile.am: Remove generic_shadow.h.
	* acinclude.m4: Remove c_shadow references.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* mkcshadow: Remove.
	* mkinclosure: Remove.

2002-09-16  Loren J. Rittle  <ljrittle@acm.org>

	libstdc++/7922
	* include/ext/stl_rope.h (rope<>): Qualify dependent names
	with `typename'.

2002-09-16  Richard Henderson  <rth@redhat.com>

	* include/std/std_limits.h (__glibcpp_f32_QNaN_bytes,
	__glibcpp_f32_has_QNaN, __glibcpp_f32_SNaN_bytes,
	__glibcpp_f32_has_SNaN, __glibcpp_f64_QNaN_bytes,
	__glibcpp_f64_has_QNaN, __glibcpp_f64_SNaN_bytes,
	__glibcpp_f64_has_SNaN, __glibcpp_f80_QNaN_bytes,
	__glibcpp_f80_has_QNaN, __glibcpp_f80_SNaN_bytes,
	__glibcpp_f80_has_SNaN, __glibcpp_f96_QNaN_bytes,
	__glibcpp_f96_has_QNaN, __glibcpp_f96_SNaN_bytes,
	__glibcpp_f96_has_SNaN, __glibcpp_f128_QNaN_bytes,
	__glibcpp_f128_has_QNaN, __glibcpp_f128_SNaN_bytes,
	__glibcpp_f128_has_SNaN, __glibcpp_float_QNaN_bytes,
	__glibcpp_float_has_QNaN, __glibcpp_float_SNaN_bytes,
	__glibcpp_float_has_SNaN, __glibcpp_double_QNaN_bytes,
	__glibcpp_double_has_QNaN, __glibcpp_double_SNaN_bytes,
	__glibcpp_double_has_SNaN, __glibcpp_long_double_QNaN_bytes,
	__glibcpp_long_double_has_QNaN, __glibcpp_long_double_SNaN_bytes,
	__glibcpp_long_double_has_SNaN): Remove.
	(__glibcpp_f128_is_iec559): True if IEEE.
	(__glibcpp_float_QNaN, __glibcpp_float_SNaN): Remove.
	(__glibcpp_double_QNaN, __glibcpp_double_SNaN): Remove.
	(__glibcpp_long_double_QNaN, __glibcpp_long_double_SNaN): Remove.
	(std::numeric_limits<float>::has_quiet_NaN): Use __builtin_nanf.
	(std::numeric_limits<float>::has_signaling_NaN): Mirror has_quiet_NaN.
	(std::numeric_limits<float>::quiet_NaN): Use __builtin_nanf.
	(std::numeric_limits<float>::signaling_NaN): Use __builtin_nansf.
	(std::numeric_limits<double>): Similarly.
	(std::numeric_limits<long double>): Similarly.
	* src/limits.cc (__glibcpp_float_QNaN, __glibcpp_float_SNaN): Remove.
	(__glibcpp_double_QNaN, __glibcpp_double_SNaN): Remove.
	(__glibcpp_long_double_QNaN, __glibcpp_long_double_SNaN): Remove.

	* testsuite/18_support/numeric_limits.cc (test_infinity): New.
	(test_denorm_min, test_qnan, test_is_iec559): New.

2002-09-16  Phil Edwards  <pme@gcc.gnu.org>

	* testsuite/abi_check.cc:  Pull shell fragments out into...
	* config/abi/extract_symvers:  ...here.  New file.
	* Makefile.am (check_abi):  Change to match.
	(new-abi-baseline):  New target.
	* Makefile.in:  Regenerated.

2002-09-16  Richard Henderson  <rth@redhat.com>

	* include/std/std_limits.h (__glibcpp_f32_denorm_min_bytes,
	__glibcpp_f32_has_denorm, __glibcpp_f64_denorm_min_bytes,
	__glibcpp_f64_has_denorm, __glibcpp_f80_denorm_min_bytes,
	__glibcpp_f80_has_denorm, __glibcpp_f96_denorm_min_bytes,
	__glibcpp_f96_has_denorm, __glibcpp_f128_denorm_min_bytes,
	__glibcpp_f128_has_denorm, __glibcpp_float_denorm_min_bytes,
	__glibcpp_float_has_denorm, __glibcpp_double_denorm_min_bytes,
	__glibcpp_double_has_denorm, __glibcpp_long_double_denorm_min_bytes,
	__glibcpp_long_double_has_denorm): Remove.
	(__glibcpp_float_denorm_min, __glibcpp_double_denorm_min,
	__glibcpp_long_double_denorm_min): Remove.
	(std::numeric_limits<float>::has_denorm): Use __FLT_DENORM_MIN__.
	(std::numeric_limits<float>::denorm_min): Likewise.
	(std::numeric_limits<double>): Similarly.
	(std::numeric_limits<long double>): Similarly.
	* src/limits.cc (__glibcpp_float_denorm_min,
	__glibcpp_double_denorm_min, __glibcpp_long_double_denorm_min): Remove.

2002-09-13  Andy Felt  <afelt@uwsp.edu>

	* docs/html/17_intro/howto.html:  Update link.

2002-09-13  Phil Edwards  <pme@gcc.gnu.org>

	* docs/doxygen/run_doxygen:  Massage man page for Iterator_types.3.
	* docs/html/faq/index.html:  Whitespace fixes.

2002-09-12  Benjamin Kosnik  <bkoz@redhat.com>

	* libmath/Makefile.am (LIBTOOL): Use --tag CC always for this
	directory.
	* libmath/Makefile.in: Regenerate.
	* src/Makefile.am: Tweak comment.
	* src/Makefile.in: Regenerate.

	* config/locale/gnu/c_locale.h: Remove warnings.
	Inject __uselocale into __gnu_cxx.
	* config/locale/generic/c_locale.h: Match.

2002-09-11  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/locale_facets.tcc (__convert_from_v): Remove.
	* config/locale/gnu/c_locale.h (__convert_from_v): Add.
	* config/locale/generic/c_locale.h (__convert_from_v): Add.

2002-09-11  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/locale_facets.tcc (__convert_from_v):
	Use __uselocale instead of setlocale for glibc 2.3+.

2002-09-10  Benjamin Kosnik  <bkoz@redhat.com>

	* src/Makefile.am (sources): Edit.
	(target_sources): New.
	(target_sources_extra): New.
	* src/Makefile.in: Regenerate.
	* acinclude.m4: Set CCODECVT_CC.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* src/locale.cc: Move ctype definitions...
	* src/ctype.cc: ...here. New file.
	* src/locale.cc: Move codecvt definitions...
	* src/codecvt.cc: ...here.
	* config/generic/codecvt_members.cc: ...and here.
	* config/gnu/codecvt_members.cc: ...and here.
	* include/bits/codecvt.h: Tweak.
	* include/bits/locale_facets: Tweak.

	* src/bitset.cc: Correct license text.
	* src/concept-inst.cc: Same.
	* src/strstream.cc: Same.
	* src/vterminate.cc: Same.

2002-09-10  Gabriel Dos Reis  <gdr@soliton.integrable-solutions.net>

	* include/bits/stl_vector.h (vector<>): Don't use a name with
	different meanings before and after re-evaluation in the completed
	scope.
	* include/bits/basic_string.h (basic_string<>): Likewise.
	* include/bits/stl_bvector.h (vector<bool>): Likewise.
	* include/bits/stl_deque.h (std): Likewise.
	* include/bits/stl_list.h (list<>): Likewise.
	* include/bits/stl_tree.h (_Rb_tree<>): Likewise.

2002-09-10  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/codecvt.h (class __codecvt_abstract_base):
	Add __c_locale type _M_c_locale_codecvt member.
	(class codecvt<char, char, mbstate_t>,
	class codecvt<wchar_t, char, mbstate_t>): Add new
	codecvt(__c_locale, size_t) constructor.
	(codecvt_byname::codecvt_byname): Update.
	* src/codecvt.cc (class codecvt<char, char, mbstate_t>,
	class codecvt<wchar_t, char, mbstate_t>): Update codecvt(size_t)
	constructor and ~codecvt() destructor; define
	codecvt(__c_locale, size_t) constructor.
	(codecvt::do_out): Switch to _M_c_locale_codecvt around wcsrtombs call.
	(codecvt::do_in): Ditto for mbsrtowcs call.
	* src/localename.cc (locale::_Impl::_Impl(const char*, size_t)):
	Tweak construction of codecvt facets.

2002-09-10  Danny Smith  <dannysmith@users.sourceforge.net>

	* include/bits/locale_facets.tcc (__convert_from_v):
	Replace strdup with ISO malloc and strcpy.

2002-09-09  Benjamin Kosnik  <bkoz@redhat.com>

	* docs/html/configopts.html: Change grouping. Note ABI impacts.
	Update information for locale model defaults.
	* docs/html/install.html: Update include directory
	information.
	Update testing information.
	Update linux issues for named locales.
	* docs/html/abi.txt: Fix typos.
	Add more info.

	* src/misc-inst.cc: Add missing instantiations.

	* testsuite/abi_check.cc: Make output results more verbose.

	* config/os/gnu-linux/ctype_base.h: Remove shadow headers injections.

2002-09-07  Jakub Jelinek  <jakub@redhat.com>

	* config/locale/generic/messages_members.cc: Add specialization for
	messages<wchar_t>.
	* config/locale/ieee_1003.1-20021/messages_members.cc: Likewise.

2002-09-06  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/localefwd.h: Tweak formatting.
	* docs/html/abi.txt: Add.

2002-09-06  Jakub Jelinek  <jakub@redhat.com>

	* configure.target: Use cpu_include_dir="config/cpu/sparc" for all
	sparc targets.
	* config/cpu/sparc/atomicity.h: New file.
	* config/cpu/sparc/sparc32/atomicity.h: Removed.
	* config/cpu/sparc/sparc64/atomicity.h: Removed.

2002-09-06  Jakub Jelinek  <jakub@redhat.com>

	* config/os/gnu-linux/ctype_noninline.h
	[_GLIBCPP_USE_SHADOW_HEADERS]: Remove using _C_legacy::__ctype_*.
	(ctype<char>::classic_table): If _GLIBCPP_C_LOCALE_GNU, return
	_S_c_locale->__ctype_b, otherwise temporarily switch to "C" locale
	and return __ctype_b.
	(ctype<char>::ctype(__c_locale, const mask*, bool, size_t)): If not
	_GLIBCPP_C_LOCALE_GNU, temporarily switch to "C" locale and
	initialize using __ctype_{b,tolower,toupper}.
	(ctype<char>::ctype(const mask*, bool, size_t)): If
	_GLIBCPP_C_LOCALE_GNU, initialize using
	_S_c_locale->__ctype_{b,tolower,toupper}, otherwise temporarily
	switch to "C" locale and initialize using __ctype_{b,tolower,toupper}.

2002-09-05  Paolo Carlini  <pcarlini@unitus.it>
	    Roland McGrath  <roland@redhat.com>

	PR libstdc++/7811
	* src/locale.cc (locale::locale(__s)): Use getenv instead
	of setenv for the environment locale.
	* testsuite/22_locale/ctor_copy_dtor.cc (test03): New.

2002-09-05  Jakub Jelinek  <jakub@redhat.com>

	* config/abi/ia64-unknown-linux-gnu: Add.
	* config/abi/ia64-unknown-linux-gnu/baseline_symbols.txt: New file.
	* config/abi/alphaev67-unknown-linux-gnu: Add.
	* config/abi/alphaev67-unknown-linux-gnu/baseline_symbols.txt: New file.

2002-09-05  Jonathan Wakely  <jw@kayari.org>

	* docs/html/Makefile:  Use more portable shell wildcard.
	* docs/html/makedoc.awk:  Nest elements correctly for XHTML conversion.
	* docs/html/configopts.html, docs/html/documentation.html,
	docs/html/explanations.html, docs/html/install.html,
	docs/html/17_intro/contribute.html, docs/html/17_intro/howto.html,
	docs/html/17_intro/license.html, docs/html/18_support/howto.html,
	docs/html/19_diagnostics/howto.html, docs/html/20_util/howto.html,
	docs/html/21_strings/howto.html, docs/html/22_locale/codecvt.html,
	docs/html/22_locale/ctype.html, docs/html/22_locale/howto.html,
	docs/html/22_locale/locale.html, docs/html/22_locale/messages.html,
	docs/html/23_containers/howto.html, docs/html/24_iterators/howto.html,
	docs/html/25_algorithms/howto.html, docs/html/26_numerics/howto.html,
	docs/html/27_io/howto.html, docs/html/ext/howto.html,
	docs/html/ext/sgiexts.html, docs/html/faq/index.html:  Convert
	to XHTML.
	* docs/html/faq/index.txt:  Regenerate.

2002-09-05  Jakub Jelinek  <jakub@redhat.com>

	* config/locale/gnu/ctype_members.cc (ctype<wchar_t>::do_widen(char)):
	Switch to _M_c_locale_ctype around btowc call.
	(ctype<wchar_t>::do_widen(const char*, const char *, wchar_t*)):
	Switch to _M_c_locale_ctype around mbsrtowcs call.
	(ctype<wchar_t>::do_narrow(char)): Switch to _M_c_locale_ctype around
	wctob call.
	(ctype<wchar_t>::do_narrow(const char*, const char *, wchar_t*)):
	Switch to _M_c_locale_ctype around wcsrtombs call.

2002-09-05  Jakub Jelinek  <jakub@redhat.com>

	* config/locale/gnu/monetary_members.cc
	(moneypunct<wchar_t, true>::_M_initialize_moneypunct,
	moneypunct<wchar_t, false>::_M_initialize_moneypunct): Use
	__uselocale instead of setlocale for glibc 2.3.

2002-09-05  Jakub Jelinek  <jakub@redhat.com>

	* config/locale/generic/c++locale_internal.h: New header.
	* config/locale/gnu/c++locale_internal.h: New header.
	* config/locale/gnu/c_locale.cc: Include it.
	* config/locale/gnu/collate_members.cc: Include it.
	* config/locale/gnu/ctype_members.cc: Include it.
	* config/locale/gnu/messages_members.cc: Include it.
	* config/locale/gnu/monetary_members.cc: Include it.
	* config/locale/gnu/numeric_members.cc: Include it.
	* config/locale/gnu/time_members.cc: Include it.
	(_M_put): Reorder __strftime_l and __wcsftime_l arguments to match
	glibc.
	(_M_initialize_timepunct): Initialize _M_c_locale_timepunct for
	C locale.
	* acinclude.m4: Include string.h when testing strcoll_l.
	For glibc 2.3 provide __-prefixed prototypes.
	(CLOCALE_INTERNAL_H): Set, add AC_LINK_FILES line.
	* aclocal.m4, configure: Rebuilt.

2002-09-05  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/locale_facets.h: Add declaration of specialization
	here.
	* config/locale/gnu/messages_members.cc: Add specialization for
	messages<wchar_t>.
	* config/locale/gnu/messages_members.h: Remove generic definition
	of do_get.

2002-09-04  Richard Henderson  <rth@redhat.com>

	* include/std/std_limits.h (__glibcpp_f32_infinity_bytes,
	__glibcpp_f32_has_infinity, __glibcpp_f64_infinity_bytes,
	__glibcpp_f64_has_infinity, __glibcpp_f80_infinity_bytes,
	__glibcpp_f80_has_infinity, __glibcpp_f96_infinity_bytes,
	__glibcpp_f96_has_infinity, __glibcpp_f128_infinity_bytes,
	__glibcpp_f128_has_infinity, __glibcpp_float_infinity_bytes,
	__glibcpp_float_has_infinity, __glibcpp_double_infinity_bytes,
	__glibcpp_double_has_infinity, __glibcpp_long_double_infinity_bytes,
	__glibcpp_long_double_has_infinity): Remove.
	(std::numeric_limits<float>, std::numeric_limits<double>,
	std::numeric_limits<long double>): Use __builtin_huge_val
	to implement has_infinity and infinity().
	* src/limits.cc (__glibcpp_float_infinity, __glibcpp_double_infinity,
	__glibcpp_long_double_infinity): Remove.

2002-09-03  Richard Henderson  <rth@redhat.com>

	* include/std/std_limits.h (__glibcpp_f32_min, __glibcpp_f32_max,
	__glibcpp_f32_digits, __glibcpp_f32_digits10, __glibcpp_f32_radix,
	__glibcpp_f32_epsilon, __glibcpp_f32_min_exponent,
	__glibcpp_f32_min_exponent10, __glibcpp_f32_max_exponent,
	__glibcpp_f32_max_exponent10, __glibcpp_f64_min, __glibcpp_f64_max,
	__glibcpp_f64_digits, __glibcpp_f64_digits10, __glibcpp_f64_radix,
	__glibcpp_f64_min_exponent, __glibcpp_f64_min_exponent10,
	__glibcpp_f64_max_exponent, __glibcpp_f64_max_exponent10,
	__glibcpp_f80_min, __glibcpp_f80_max, __glibcpp_f80_digits,
	__glibcpp_f80_digits10, __glibcpp_f80_radix, __glibcpp_f80_epsilon,
	__glibcpp_f80_min_exponent, __glibcpp_f80_min_exponent10,
	__glibcpp_f80_max_exponent, __glibcpp_f80_max_exponent10,
	__glibcpp_f96_min, __glibcpp_f96_max, __glibcpp_f96_digits,
	__glibcpp_f96_digits10, __glibcpp_f96_radix, __glibcpp_f96_epsilon,
	__glibcpp_f96_min_exponent, __glibcpp_f96_min_exponent10,
	__glibcpp_f96_max_exponent, __glibcpp_f96_max_exponent10,
	__glibcpp_f128_min, __glibcpp_f128_max, __glibcpp_f128_digits,
	__glibcpp_f128_digits10, __glibcpp_f128_radix, __glibcpp_f128_epsilon,
	__glibcpp_f128_min_exponent, __glibcpp_f128_min_exponent10,
	__glibcpp_f128_max_exponent, __glibcpp_f128_max_exponent10,
	__glibcpp_float_min, __glibcpp_float_max, __glibcpp_float_digits,
	__glibcpp_float_digits10, __glibcpp_float_radix,
	__glibcpp_float_epsilon, __glibcpp_float_min_exponent,
	__glibcpp_float_min_exponent10, __glibcpp_float_max_exponent,
	__glibcpp_float_max_exponent10, __glibcpp_double_min,
	__glibcpp_double_max, __glibcpp_double_digits,
	__glibcpp_double_digits10, __glibcpp_double_radix,
	__glibcpp_double_epsilon, __glibcpp_double_min_exponent,
	__glibcpp_double_min_exponent10, __glibcpp_double_max_exponent,
	__glibcpp_double_max_exponent10, __glibcpp_long_double_min,
	__glibcpp_long_double_max, __glibcpp_long_double_digits,
	__glibcpp_long_double_digits10, __glibcpp_long_double_radix,
	__glibcpp_long_double_epsilon, __glibcpp_long_double_min_exponent,
	__glibcpp_long_double_min_exponent10,
	__glibcpp_long_double_max_exponent,
	__glibcpp_long_double_max_exponent10): Remove macros.
	(std::numeric_limits<float>, std::numeric_limits<double>,
	std::numeric_limits<long double>): Use protected float.h macros.

2002-09-01  Phil Edwards  <pme@gcc.gnu.org>

	* testsuite/Makefile.am:  Use LD_RUN_PATH when linking abi_check.
	Fix spelling in comment.
	* testsuite/Makefile.in:  Regenerate.
	* testsuite/abi_check.cc:  Use string literals to build 'cmd' rather
	than 'quote' and 'bslash'.

2002-08-31  Phil Edwards  <pme@gcc.gnu.org>

	* acinclude.m4:  Minor comment tweaks.

	* docs/html/makedoc.awk:  New file...
	* docs/html/Makefile:  ...called from here...
	* docs/html/documentation.html:  ...to help generate this.

	* docs/html/21_strings/howto.html:  Prepare for new entry.
	* include/bits/basic_string.h:  Initial basic_stirng hook for
	doxygen.  Remove trailing whitespace.
	* include/bits/char_traits.h:  Point to onlinedocs for new entry.
	* include/bits/stringfwd.h:  Add doxygen hooks for string and
	wstring typedefs.

2002-08-29  Richard Earnshaw  <rearnshaw@arm.com>

	* config/cpu/arm/cpu_limits.h: New file.
	* configure.target: Use config/cpu/arm for XScale and StrongARM
	configurations.

2002-08-28  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* include/std/std_limits.h (__glibcpp_char_bits,
	__glibcpp_short_bits, __glibcpp_int_bits, __glibcpp_long_bits,
	__glibcpp_long_long_bits, __glibcpp_float_bits,
	__glibcpp_double_bits, __glibcpp_long_double_bits): Remove.  Use
	compiler predifined macros.
	(__glibcpp_wchar_t_is_signed): Define based on compiler predefined
	__WCHAR_UNSIGNED__.

2002-08-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* include/std/std_limits.h (__glibcpp_f32_infinity_bytes,
	__glibcpp_f32_has_infinity, __glibcpp_f32_QNaN_bytes,
	__glibcpp_f32_has_QNaN, __glibcpp_f32_SNaN_bytes,
	__glibcpp_f32_has_SNaN, __glibcpp_f32_denorm_min_bytes,
	__glibcpp_f32_has_denorm, __glibcpp_f32_is_iec559,
	__glibcpp_f64_infinity_bytes,
	__glibcpp_f64_has_infinity, __glibcpp_f64_QNaN_bytes,
	__glibcpp_f64_has_QNaN, __glibcpp_f64_SNaN_bytes,
	__glibcpp_f64_has_SNaN, __glibcpp_f64_denorm_min_bytes,
	__glibcpp_f64_has_denorm, __glibcpp_f64_is_iec559,
	__glibcpp_f80_infinity_bytes,
	__glibcpp_f80_has_infinity, __glibcpp_f80_QNaN_bytes,
	__glibcpp_f80_has_QNaN, __glibcpp_f80_SNaN_bytes,
	__glibcpp_f80_has_SNaN, __glibcpp_f80_denorm_min_bytes,
	__glibcpp_f80_has_denorm, __glibcpp_f80_is_iec559,
	__glibcpp_f96_infinity_bytes,
	__glibcpp_f96_has_infinity, __glibcpp_f96_QNaN_bytes,
	__glibcpp_f96_has_QNaN, __glibcpp_f96_SNaN_bytes,
	__glibcpp_f96_has_SNaN, __glibcpp_f96_denorm_min_bytes,
	__glibcpp_f96_has_denorm, __glibcpp_f96_is_iec559,
	__glibcpp_f128_infinity_bytes,
	__glibcpp_f128_has_infinity, __glibcpp_f128_QNaN_bytes,
	__glibcpp_f128_has_QNaN, __glibcpp_f128_SNaN_bytes,
	__glibcpp_f128_has_SNaN, __glibcpp_f128_denorm_min_bytes,
	__glibcpp_f128_has_denorm, __glibcpp_f128_is_iec559,
	__glibcpp_float_infinity_bytes,
	__glibcpp_float_has_infinity, __glibcpp_float_QNaN_bytes,
	__glibcpp_float_has_QNaN, __glibcpp_float_SNaN_bytes,
	__glibcpp_float_has_SNaN, __glibcpp_float_denorm_min_bytes,
	__glibcpp_float_has_denorm, __glibcpp_float_is_iec559,
	__glibcpp_double_infinity_bytes,
	__glibcpp_double_has_infinity, __glibcpp_double_QNaN_bytes,
	__glibcpp_double_has_QNaN, __glibcpp_double_SNaN_bytes,
	__glibcpp_double_has_SNaN, __glibcpp_double_denorm_min_bytes,
	__glibcpp_double_has_denorm, __glibcpp_double_is_iec559,
	__glibcpp_long_double_infinity_bytes,
	__glibcpp_long_double_has_infinity, __glibcpp_long_double_QNaN_bytes,
	__glibcpp_long_double_has_QNaN, __glibcpp_long_double_SNaN_bytes,
	__glibcpp_long_double_has_SNaN, __glibcpp_long_double_denorm_min_bytes,
	__glibcpp_long_double_has_denorm, __glibcpp_long_double_is_iec559:
	New macros.
	(__glibcpp_word_bits, __glibcpp_word): Likewise.
	(__glibcpp_byte): New typedef.
	(__float_storage, __double_storage, __long_double_storage): New types.
	(__glibcpp_float_infinity, __glibcpp_float_QNaN,
	__glibcpp_float_SNaN, __glibcpp_float_denorm_min): Now
	objects. Declare.
	(__glibcpp_double_infinity, __glibcpp_double_QNaN,
	__glibcpp_double_SNaN, __glibcpp_double_denorm_min): Likewise.
	(__glibcpp_long_double_infinity, __glibcpp_long_double_QNaN,
	__glibcpp_long_double_SNaN, __glibcpp_long_double_denorm_min):
	Likewise.

	* src/limits.cc (__glibcpp_float_infinity, __glibcpp_float_QNaN,
	__glibcpp_float_SNaN, __glibcpp_float_denorm_min): Define.
	(__glibcpp_double_infinity, __glibcpp_double_QNaN,
	__glibcpp_double_SNaN, __glibcpp_double_denorm_min): Likewise.
	(__glibcpp_long_double_infinity, __glibcpp_long_double_QNaN,
	__glibcpp_long_double_SNaN, __glibcpp_long_double_denorm_min):
	Likewise.

2002-08-25  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* include/std/std_limits.h: Indent conditional macro definitions.

2002-08-23  Phil Edwards  <pme@gcc.gnu.org>

	* Makefile.am (check-abi):  Specify current directory.
	* acinclude.m4 (GLIBCPP_CONFIGURE_TESTSUITE):  Fix shell syntax, use
	abi_baseline_triplet in baseline_file.
	* Makefile.in, aclocal.m4, configure:  Regenerate.
	* configure.target:  Add abi_baseline_triplet with default.
	* testsuite/abi_check.cc:  More error checking.

2002-08-23  Phil Edwards  <pme@gcc.gnu.org>

	* config/linker-map.gnu:  Verbose comments, clean up spacing.
	* include/bits/stl_alloc.h:  Fix indentation of 'if' bodies, return
	statements.
	__allocator:  Change class declaration to struct.
	* docs/html/17_intro/C++STYLE:  Fix typo.
	* include/bits/stl_deque.h, include/bits/stl_list.h,
	include/bits/stl_map.h, include/bits/stl_multimap.h,
	include/bits/stl_vector.h:  Fix fallout from typo.

2002-08-22  Benjamin Kosnik  <bkoz@redhat.com>

	* acinclude.m4 (GLIBCPP_CONFIGURE_TESTSUITE): Set
	GLIBCPP_BUILD_ABI_CHECK based on cross compiling, build, host
	variables.
	* aclocal.m4: Regenerate.
	* testsuite/Makefile.am (noinst_PROGRAMS): Make conditional on
	native compiling.
	* testsuite/Makefile.in: Regenerate.

2002-08-22  Loren J. Rittle <ljrittle@acm.org>

	* testsuite/abi_check.cc: Enhance shell portability.
	Support older binutils/readelf.
	* config/abi/i386-unknown-freebsd4.6: Add.
	* config/abi/i386-unknown-freebsd4.6/baseline_symbols.txt: New file.

2002-08-22  Paolo Carlini  <pcarlini@unitus.it>

	* docs/html/faq/index.html: Add Loren James Rittle and
	Paolo Carlini to the list of v3 maintainers.
	* docs/html/faq/index.txt: Ditto.
	* docs/html/17_intro/RELEASE-NOTES: Ditto.

2002-08-22  Benjamin Kosnik  <bkoz@redhat.com>
	    Phil Edwards  <pme@gcc.gnu.org>
	    Ulrich Drepper  <drepper@redhat.com>

	* Makefile.am (check-abi): New rule.
	* Makefile.in: Regenerate.
	* acinclude.m4 (GLIBCPP_CONFIGURE_TESTSUITE): Export baseline_file.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* testsuite/Makefile.am (noinst_PROGRAMS): Add abi_check.
	(abi_check_SOURCES): Add.
	* testsuite/Makefile.in: Regenerate.
	* testsuite/abi_check.cc: New file.
	* config/abi: Add.
	* config/abi/i686-pc-linux-gnu: Add.
	* config/abi/i686-pc-linux-gnu/baseline_symbols.txt: New file.

2002-08-19  Benjamin Kosnik  <bkoz@redhat.com>

	* configure.in (libtool_VERSION): Update to 5:1:0.
	* configure: Regenerate.

2002-08-19  Jonathan Wakely  <jw@kayari.org>

	* docs/html/configopts.html, docs/html/documentation.html,
	docs/html/install.html, docs/html/22_locale/codecvt.html,
	docs/html/22_locale/ctype.html, docs/html/22_locale/howto.html,
	docs/html/22_locale/locale.html,
	docs/html/22_locale/messages.html: Conform to HTML 4.01 standard.

2002-08-15  Benjamin Kosnik  <bkoz@redhat.com>

	* include/ext/stdio_filebuf.h (stdio_filebuf): Explicitly set
	_M_buf_size_opt to zero when unbuffering.
	* include/bits/fstream.tcc (filebuf::showmanyc): Simplify.
	Consistency checks for _M_buf_size_opt.

	Revert PR libstdc++/7445
	* src/locale.cc (locale::classic): Revert.

	* docs/html/17_intro/TODO: Add.

2002-08-15  Phil Edwards  <pme@gcc.gnu.org>

	* docs/html/documentation.html:  Update doxygen links for 3.2.

2002-08-15  Steve Ellcey  <sje@cup.hp.com>

	* libsupc++/unwind-cxx.h (__cxa_exception): Change catchTemp
	type from void* to _Unwind_Ptr.
	* libsupc++/eh_personality.cc (PERSONALITY_FUNCTION):
	Do not cast landing_pad or base_of_encoded_value to (void *).
	* libsupc++/eh_throw.cc (__gxx_exception_cleanup):
	Accept _URC_NO_REASON as a valid reason code.

2002-08-14  Jonathan Wakely  <jw@kayari.org>

	* docs/html/22_locale/messages.html:  Use HTML entities for
	punctuation.

2002-08-13  Jonathan Wakely  <jw@kayari.org>
	    Phil Edwards  <pme@gcc.gnu.org>

	* docs/html/documentation.html:  Use HTML entities for punctuation.

2002-08-09  Phil Edwards  <pme@gcc.gnu.org>

	* include/bits/deque.tcc, include/bits/list.tcc,
	include/bits/stl_deque.h, include/bits/stl_iterator_base_funcs.h,
	include/bits/stl_list.h, include/bits/stl_map.h,
	include/bits/stl_multimap.h, include/bits/stl_queue.h,
	include/bits/stl_stack.h, include/bits/stl_vector.h,
	include/bits/vector.tcc:  Re-indent contents of namespace std,
	re-wrap comment lines as necessary.

2002-08-08  Danny Smith  <dannysmith@users.sourceforge.net>
	    Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/istream.tcc (basic_istream::ignore): Use sbumpc,
	not snextc.
	* testsuite/27_io/narrow_stream_objects.cc (test10): Add.

2002-08-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* libsupc++/Makefile.am (LTCOMPILE): Add LIBSUPCXX_PICFLAGS.
	* libsupc++/Makefile.in: Regenerate.

2002-08-05  Gabriel Dos Reis  <gdr@nerim.net>

	PR/7491
	* include/bits/slice_array.h(_DEFINE_VALARRAY_OPERATOR):
	Instantiate with new function objects.
	* include/bits/mask_array.h (_DEFINE_VALARRAY_OPERATOR): Likewise.
	Reformat.  Uglify.
	* include/bits/gslice_array.h: Likewise.
	* include/bits/indirect_array.h: Likewise.

2002-08-03  Gabriel Dos Reis  <gdr@nerim.net>

	* testsuite/26_numerics/valarray_name_lookup.cc: Rename from
	testsuite/26_numerics/valarray_name_lookup.C

	* include/bits/valarray_array.h (_DEFINE_ARRAY_FUNCTION): Use our
	object function surrogates.
	* include/bits/valarray_meta.h (__shift_left): Fix typo.
	(_BinFunClos<>): Remove.
	(_BinFunBase<>): Likewise.
	(_BinFunBase1<>):Likewise.
	(_BinFunBase2<>): Likewise.
	(_DEFINE_EXPR_RELATIONAL_OPERATOR): Likewise.
	(_DEFINE_EXPR_UNARY_OPERATOR): Adjust definition.
	(_DEFINE_EXPR_BINARY_OPERATOR): Likewise.
	(_DEFINE_EXPR_BINARY_FUNCTION): Likewise.
	* include/std/std_valarray.h: Dont #include <functional> anymore.
	(_Bitwise_or<>, _Bitwise_and<>, _Bitwise_xor<>, _Shift_left<>,
	_Shift_right<>): Remove.
	(_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT): Adjust instantiation.
	(_DEFINE_BINARY_OPERATOR): Tweak definition.
	(_DEFINE_LOGICAL_OPERATOR): Remove.
	* testsuite/26_numerics/valarray_name_lookup.C (main): Add more tests.

2002-08-02  Gabriel Dos Reis  <gdr@nerim.net>

	* include/bits/valarray_meta.h (_UnFunBase<>): Remove.
	(_UnFunClos<>): Same.
	(_UnBase<>): Reformat.  Make first template-parameter non
	template.
	(_UnClos<>): Likewise.
	(_Expr<>): Reformate.  Adjust unary member operator return types.
	(_DEFINE_EXPR_UNARY_OPERATOR): Adjust definition.
	(_DEFINE_EXPR_UNARY_FUNCTION): Likewise.
	* include/std/std_valarray.h (_UnClos<>): Adjust declaration.
	(valarray<>::_UnaryOp<>):  New nested traits. Adjust unary member
	operator return types.  Reformat.
	(_Bitwise_not): Remove.
	(_DEFINE_VALARRAY_UNARY_OPERATOR): Adjust definition.
	* testsuite/26_numerics/valarray_name_lookup.C: New test.

2002-08-02  Danny Smith  <dannysmith@users.sourceforge.net>

	* config/os/newlib/ctype_inline.h (is): Don't offset _M_table.
	(scan_is): Use this->is.
	(scan_not): Likewise.

2002-08-02  Benjamin Kosnik  <bkoz@redhat.com>

	Revert PR libstdc++/6594
	* src/strstream.cc (strstreambuf): Revert.
	(strstreambuf::overflow): Same.
	(strstreambuf::~strstreambuf): Same.
	* testsuite/backward/strstream_members.cc (test02): Add.

	* docs/html/abi.txt: Update. Spell check.

	* testsuite/19_diagnostics/stdexceptions.cc (test04): Add bool test.

	* testsuite/Makefile.am (INCLUDES): Add LIBSUPCXX_INCLUDES.
	* testsuite/Makefile.in: Regenerate.
	* testsuite/testsuite_hooks.h: Use __throw_exception_again,
	include functexcept.h so that -fno-exceptions will build.

2002-08-02  Gabriel Dos Reis  <gdr@nerim.net>

	* include/bits/valarray_meta.h (__unary_plus, __negate,
	__bitwise_not, __plus, __minus, __multiplies, __divides,
	__modulus, __bitwise_xor, __bitwise_or, __bitwise_and,
	__shift_left, __shift_right, __logical_and, __logical_or,
	__logical_not, __equal_to, __not_equal_to, __less, __less_equal,
	__greater_equal, __greater, __atan2, __pow): New function object
	classes.
	(__fun<>):  New function traits class.

2002-08-01  Rick Danos  <rdanos@hotmail.com>

	PR libstdc++/7461
	* config/os/newlib/ctype_noninline.h (classic_table): Add offset.
	* config/os/newlib/ctype_inline.h (is): Use static_cast.

2002-08-01  Neil Booth  <neil@daikokuya.co.uk>

	* libsupc++/Makefile.am (LT_COMPILE): Remove C++ flags.
	* libsupc++/Makefile.in: Regenerate.

2002-08-01  Benjamin Kosnik  <bkoz@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* config/linker-map.gnu: Change CXXABI_1 to CXXABI_1.2,
	GLIBCPP_3.1 to GLIBCPP_3.2.

2002-07-31  Benjamin Kosnik  <bkoz@redhat.com>
	    Mark Mitchell  <mark@codesourcery.com>

	PR libstdc++/7442
	* libsupc++/cxxabi.h (class __base_class_type_info::hwm_bit):
	Change to __hwm_bit.
	(__class_type_info): And here.

2002-07-31  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/7442
	* libsupc++/cxxabi.h
	(__base_class_info): Change to __base_class_type_info. 2.9.5p6c
	(__base_class_info::__base): Change to __base_type. 2.9.5p6c
	(__base_class_info::offset_shift): Change to __offset_shift. 2.9.5p6c
	(__vmi_class_type_info::__base_info): Don't make const, of type
	__base_class_type_info, as per 2.9.5p6c
	(__pbase_type_info::__qualifier_flags): Change to __flags, as per
	2.9.5p7.
	(__pbase_type_info::__qualifier_masks): Change to __masks, as per
	2.9.5p7.
	(__pointer_to_member_type_info::__context_class): Change member to
	__context, as per 2.9.5p9.
	* libsupc++/tinfo2.cc (__pointer_catch): Change __context_class to
	__context.
	* libsupc++/tinfo2.cc (__do_catch): Change __qualifier_flags to
	__flags.
	* libsupc++/tinfo.cc (__do_find_public_src): Change __base to
	__base_type.
	* libsupc++/tinfo.cc (__do_dyncast): Same.
	* libsupc++/tinfo.cc (__do_upcast): Same.

2002-07-31  Benjamin Kosnik  <bkoz@redhat.com>

	* src/fstream.cc: Add _GLIBCPP_USE_WCHAR_T guards.

2002-07-31  Simon Whomsley  <whomsley@avacadcam.com>

	* docs/html/22_locale/howto.html: Fix.

2002-07-31  Alex Kompel  <shurik@sequoiap.com>

	PR libstdc++/7445
	* src/locale.cc (locale::classic): Move locks inside !_S_classic
	block.

2002-07-31  Benjamin Kosnik  <bkoz@redhat.com>

	* docs/html/abi.txt: Update.

2002-07-30  Benjamin Kosnik  <bkoz@redhat.com>
	    Gabriel Dos Reis  <gdr@nerim.net>

	* include/bits/char_traits.h: Remove generic definitions.
	* include/bits/streambuf_iterator.h (istreambuf_iterator): Use
	eof, not -2.
	* include/bits/istream.tcc (istream::readsome): Don't check
	against eof, instead use constants.
	(istream::sync): Same.
	(istream::sentry::sentry): Use eq_int_type.
	(istream::get): Same.
	* include/bits/ostream.tcc: Change __pad to
	__pad<_CharT, _Traits>::_S_pad.
	* include/bits/locale_facets.h: Add __pad_traits generic and
	ostreambuf_iterator specialization.
	* include/bits/locale_facets.tcc: Change __pad into struct __pad
	with a _CharT and _Traits template parameter and _S_pad static
	member function.
	* src/locale-inst.cc: Update __pad instantiations.

	* include/std/std_fstream.h: Declare _M_underflow_common
	specializations.
	* src/fstream.cc: New. Add _M_underflow_common specializations.
	* include/bits/fstream.tcc (filebuf::close): Use traits_type.
	(filebuf::_M_underflow_common(bool)): Remove generic version, as
	sys_ungetc and custom int_types don't get along.
	* include/std/std_streambuf.h: Add _M_pos.
	* src/Makefile.am (sources): Add fstream.cc.
	* src/Makefile.in: Regenerate.

	* testsuite/21_strings/capacity.cc: Add char_traits specializations.
	* testsuite/22_locale/codecvt_members_unicode_char.cc: Same.
	* testsuite/22_locale/codecvt_members_unicode_wchar_t.cc: Same.
	* testsuite/22_locale/ctor_copy_dtor.cc: Same.
	* testsuite/27_io/filebuf_virtuals.cc (test07): Move to...
	* testsuite/27_io/filebuf.cc: ...here.
	* testsuite/testsuite_hooks.h: Add gnu_char, gnu_int, char_traits
	specialization for both.
	* testsuite/27_io/streambuf.cc: Add instantiation test,
	testsuite_hooks include.
	* testsuite/27_io/istream.cc: Same.
	* testsuite/27_io/ostream.cc: Same.
	* testsuite/27_io/fstream.cc: Same.
	* testsuite/27_io/stringstream.cc: Same.
	* testsuite/27_io/filebuf.cc: Same.
	* testsuite/27_io/stringbuf.cc: Same.

2002-07-29  Alan Modra  <amodra@bigpond.net.au>

	* config/cpu/powerpc/cpu_limits.h (__glibcpp_long_bits): Define.
	* configure.target (cpu_include_dir): Use cpu/powerpc for powerpc64.
	* config/cpu/powerpc/atomicity.h (__always_swap): Remove.
	(__test_and_set): Remove.
	(_STWCX): Define and use.

2002-07-26  Phil Edwards  <pme@gcc.gnu.org>

	* libsupc++/new (placement delete):  Remove unused parameter names.

2002-07-25  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/7216
	* include/std/std_istream.h (basic_iostream): Add typedefs for
	char_type, int_type, pos_type, off_type, and traits_type.
	* testsuite/27_io/iostream.cc (test01): Add typedef tests.
	* testsuite/27_io/istream.cc: Same.
	* testsuite/27_io/ostream.cc: Same.
	* testsuite/27_io/filebuf.cc: Same.
	* testsuite/27_io/stringbuf.cc: Replace content, move to...
	* testsuite/27_io/stringbuf_members.cc: ...here.
	* testsuite/27_io/streambuf.cc: Replace content, move to...
	* testsuite/27_io/streambuf_members.cc: ...here.
	* testsuite/27_io/stringstream.cc: Replace content, move to...
	* testsuite/27_io/stringstream_members.cc: ...here.
	* testsuite/27_io/ios.cc: New file.
	* testsuite/27_io/fstream.cc: New file.
	* testsuite/27_io/ifstream.cc: New file.
	* testsuite/27_io/ofstream.cc: New file.
	* testsuite/27_io/istringstream.cc: New file.
	* testsuite/27_io/ostringstream.cc: New file.

2002-07-25  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/7220
	* include/bits/istream.tcc (istream::ignore): Don't extract on
	zero.
	* testsuite/27_io/istream_unformatted.cc (test10): Add.

2002-07-25  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/27_io/ios_base_type.cc: Move to...
	* testsuite/27_io/ios_base_types.cc: ...here.

2002-07-24  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/7222
	* src/locale.cc (locale::locale(const char*)): Use setlocale NULL.
	* testsuite/22_locale/ctor_copy_dtor.cc (test02): New.

2002-07-24  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/7230
	* config/linker-map.gnu: Revert strstream patch from 2002-07-01.
	* include/Makefile.am (backward_headers): Use strstream, not
	strstream.h.
	* include/Makefile.in: Regenerate.
	* include/backward/strstream: Revert.
	* include/backward/strstream.h: Remove.
	* src/strstream.cc: Revert.
	* testsuite/backward/strstream_members.cc: Change include.

2002-07-24  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/7219
	* include/bits/ios_base.h (ios_base::streampos): Add.
	(ios_base::streamoff): Add.
	* testsuite/27_io/ios_base_type.cc: New.

2002-07-24  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/7286
	* libsupc++/new: Add placement delete.
	* testsuite/18_support/new_delete_placement.cc: New.

	* docs/html/abi.txt: Fix typos.

2002-07-23  Benjamin Kosnik  <bkoz@redhat.com>

	* docs/html/documentation.html: Remove libstdc++-v3.0.86 links,
	confusing usage of "latest."
	De-tangle contributor information from introductory notes.
	Move abi.txt link placement, activate.
	Re-organize.
	Move chapter info into old FAQ format.
	* docs/html/organization.html: Removed, obsoleted by doxygen work.
	* docs/html/abi.txt: Add notes on testing ABI changes.

2002-07-20  Phil Edwards  <pme@gcc.gnu.org>

	* docs/html/abi.txt:  New file.
	* docs/html/23_containers/howto.html:  Tweak vector-overhead text.
	* docs/html/ext/lwg-active.html, docs/html/ext/lwg-defects.html:
	Import from upstream, R22.

	* include/bits/char_traits.h, include/bits/stl_iterator.h,
	include/bits/stl_iterator_base_types.h, libsupc++/exception,
	libsupc++/new, libsupc++/typeinfo:  Use @brief markup.

	* include/bits/deque.tcc, include/bits/stl_alloc.h,
	include/bits/stl_deque.h, include/bits/stl_list.h:  Postpone removal
	of deprecated functions until 3.4.  (Same timeframe, different text.)
	* include/bits/stl_vector.h:  Ditto.  Also do the same cleanups that
	the other sequence classes received.

2002-07-18  Brendan Kehoe  <brendan@zen.org>

	* bits/slice_array.h (_DEFINE_VALARRAY_OPERATOR): Fix typo of
	_Nname to _Name.

2002-07-19  Gabriel Dos Reis  <gdr@nerim.net>

	DR/123
	* include/bits/slice_array.h
	(slice_array<T>::operator=(const T&)): Constify.
	* include/bits/gslice_array.h
	(gslice_array<T>::operator=(const T&)):  Likewise.
	* include/bits/mask_array.h
	(mask_array<T>::operator=(const T&)): Likewise.
	* include/bits/indirect_array.h
	(indirect_array<T>::operator=(const T&): Likewise.

2002-07-17  Phil Edwards  <pme@gcc.gnu.org>

	* docs/doxygen/run_doxygen:  Remove template parameter names from
	"Compound List" summary page.  Reformat.
	* docs/html/documentation.html:  XHTML fixes.

2002-07-16  Andreas Schwab  <schwab@suse.de>

	* libsupc++/new (set_new_handler): Declare to not throw any
	exceptions.
	* libsupc++/new_handler.cc (set_new_handler): Likewise.

2002-07-16  Gabriel Dos Reis  <gdr@nerim.net>

	* include/Makefile.am (bits_headers): Remove slice.h
	* include/Makefile.in: Regenerate.
	* include/bits/slice.h (slice): move to include/bits/slice_array.h
	* include/bits/slice.h Remove.
	* include/std/std_valarray.h: Don't #include bits/slice.h anymore.
	* include/bits/slice_array.h: Comply to official coding styles.
	* testsuite/26_numerics/slice.cc: New test.

2002-07-15  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* config/os/solaris/solaris2.5/ctype_base.h (ctype_base): Fix
	print to match vendor <ctype.h>.

2002-07-15  Phil Edwards  <pme@gcc.gnu.org>

	* docs/html/faq/index.html:  Fix download links.
	* docs/html/faq/index.txt:  Regenerate.
	* docs/html/17_intro/porting.html:  Regenerate from earlier changes.

2002-07-11  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* configure.target (target_os switch): Allow for irix6*o32
	configurations.

2002-07-10  Gabriel Dos Reis  <gdr@nerim.net>

	* include/bits/valarray_meta.h (_UnFunBase): Take a second
	template parameter. Remove _M_func data member.
	(_UnFunClos): Take a third template parameter.
	(__abs, __cos, __acos, __cosh, __sin, __asin, __sinh, __tan,
	__atan, __tanh, __exp, __log, __log10, __sqrt): New classes.
	(_DEFINE_EXPR_UNARY_OPERATOR): Adjust definition.

2002-07-08  Eric Christopher  <echristo@redhat.com>

	* configure.target: Fix comment for mips atomicity. Add
	mips*-*-linux* target, enable atomic operations there.
	* config/cpu/mips/atomicity.h: Fix comments, remove
	#ifndef/#endif. Add push/pop mips2.

2002-07-08  Peter Schmid  <schmid@snake.iap.physik.tu-darmstadt.de>

	* include/bits/stl_deque.h (_Deque_alloc_base):  Change order of
	member declarations to avoid compiler warnings and restore 3.1 ABI.

2002-07-08  Phil Edwards  <pme@gcc.gnu.org>

	* docs/html/23_containers/howto.html:  Link to dk_std::vector paper
	and homepage.

2002-07-07  Paolo Carlini  <pcarlini@unitus.it>

	PR libstdc++/7186
	* include/bits/stl_deque.h (_Deque_iterator::operator-):
	Make non-member, as already happens for the comparison
	operators in accord with DR179 (Ready).
	* testsuite/23_containers/deque_operators.cc: Add test02.

2002-07-04  Benjamin Kosnik  <bkoz@redhat.com>
	    Jack Reeves  <jackw_reeves@hotmail.com>

	* include/std/std_streambuf.h (basic_streambuf::_M_buf): Change to
	size_t, from int_type.
 	(basic_streambuf::_M_buf_size_opt): Same.
 	(basic_streambuf::_S_pback_sizex): Same.
	* include/bits/streambuf.tcc: Same.
	* include/std/std_streambuf.h (basic_streambuf::snextc): Use
	eq_int_type.
	(basic_streambuf::uflow): Same.
	* include/bits/sstream.tcc (basic_stringbuf::overflow): Use
	to_char_type.
	* include/bits/basic_ios.tcc (basic_ios::init): Use _CharT().
	* include/bits/streambuf.tcc (basic_streambuf::xsgetn): Use
	eq_int_type.
	(basic_streambuf::xsputn): Same.
	(__copy_streambufs): Same.

2002-07-03  Benjamin Kosnik  <bkoz@redhat.com>

	* include/std/std_memory.h: Fix formatting.
	* testsuite/20_util/auto_ptr_neg.cc: New.
	* testsuite/20_util/auto_ptr.cc: Tweaks.
	* testsuite/23_containers/map_operators.cc (test01): Split into..
	* testsuite/23_containers/map_operators_neg.cc (test01): ...this. New.
	* testsuite/23_containers/set_operators.cc: Move to...
	* testsuite/23_containers/set_operators_neg.cc: ...here.
	* testsuite/README: Add some more naming rules.

2002-07-03  Steev Wilcox  <steev@paradigmds.com>

	PR libstdc++/7057
	* include/ext/stl_hashtable.h: Fix.
	* testsuite/ext/hash_map.cc: New.

2002-07-03  Jack Reeves  <jackw_reeves@hotmail.com>
	    Kenny Simpson  <theonetruekenny@yahoo.com>
	    Phil Edwards  <pme@gcc.gnu.org>

	PR libstdc++/3946
	* testsuite/20_util/auto_ptr.cc (test08):  New test.
	* include/std/std_memory.h (auto_ref_ptr):  Make constructor explicit.
	(auto_ptr::operator auto_ptr_ref):  Fix typo.
	General reformatting and doxygenating of the whole file.

2002-07-03  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/7097
	* include/c/std_cwchar.h: Fix.

2002-07-02  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/6410
	* include/bits/locale_facets.h (moneypunct::moneypunct): Add const
	char* name parameter.
	* config/locale/gnu/monetary_members.cc: Use it.
	* config/locale/generic/monetary_members.cc: Same.
	* src/localename.cc (_Impl::_Impl(const char*, size_t)): Use it.

	* include/backward/strstream.h: Update date.

2002-07-02  Paolo Carlini  <pcarlini@unitus.it>

	PR libstdc++/6642
	* include/bits/stl_iterator.h
	(__normal_iterator::operator-(const __normal_iterator&)):
	Make non-member, as already happens for the comparison
	operators in accord with DR179 (Ready).
	* testsuite/24_iterators/iterator.cc: Add test from the PR.

2002-07-02  Phil Edwards  <pme@gcc.gnu.org>

	PR libstdc++/7173
	* acinclude.m4:  Simplify determination of gcc_version, and move
	up to GLIBCPP_CONFIGURE.
	* configure.in (release_VERSION):  Really remove.
	(AM_INIT_AUTOMAKE, AM_CONFIG_HEADER):  Move after GLIBCPP_CONFIGURE.
	* aclocal.m4, configure:  Regenerate.

2002-07-02  Phil Edwards  <pme@gcc.gnu.org>

	* docs/html/configopts.html, docs/html/install.html:  Tweaks.
	* include/ext/algorithm, include/ext/hash_map, include/ext/hash_set,
	include/ext/iterator, include/ext/numeric, include/ext/rb_tree,
	include/ext/slist, include/ext/stl_rope.h:  Add doxygen hooks.

2002-07-01  Benjamin Kosnik  <bkoz@redhat.com>

	* include/backward/strstream: Remove namespace std. Transfer to...
	* include/backward/strstream.h: ...here. Qualify std names.
	* src/strstream.cc: Remove namespace std.
	* include/Makefile.am (backward_headers): Remove strstream.h.
	* include/Makefile.in: Regenerate.
	* config/linker-map.gnu: Export strstream bits.

	* src/fstream-inst.cc: Tweak.
	* src/io-inst.cc: Same.
	* src/istream-inst.cc: Same.
	* src/misc-inst.cc: Same.
	* src/ostream-inst.cc: Same.
	* src/sstream-inst.cc: Same.
	* src/valarray-inst.cc: Same.
	* src/misc-inst.cc: Remove unused instantiations.

2002-07-01  Benjamin Kosnik  <bkoz@redhat.com>

	* configure.in (libtool_VERSION): Bump to 5:0:0.
	* configure: Regenerate.

2002-06-28  Phil Edwards  <pme@gcc.gnu.org>

	PR libstdc++/7157, PR libstdc++/7158, PR libstdc++/7161
	* include/std/std_queue.h:  Include deque.tcc, vector.tcc.
	* include/std/std_stack.h:  Include deque.tcc.
	* testsuite/23_containers/adaptors.cc:  New file.

2002-06-27  Phil Edwards  <pme@gcc.gnu.org>

	* include/bits/stl_alloc.h:  Deprecate all 'reallocate' memfns.
	* docs/html/ext/howto.html:  Update allocator notes.

2002-06-26  Benjamin Kosnik  <bkoz@redhat.com>

	* configure.in (INTERFACE): Remove.
	(release_VERSION): Remove.
	* acinclude.m4 (GLIBCPP_EXPORT_INSTALL_INFO): Change include placement.
	(libstdcxx_interface): Change. Use gcc methods to determine version.
	* configure: Regenerate.
	* aclocal.m4: Regenerate.

2002-06-25  DJ Delorie  <dj@redhat.com>

	* acinclude.m4 (GLIBCPP_CONFIGURE): Split out
	GLIBCPP_TOPREL_CONFIGURE.
	* aclocal.m4: Likewise.
	* configure.in: Call it before AC_CANONICAL_SYSTEM.
	* configure: Regenerate.

2002-06-25  Jessica Han  <jessica@cup.hp.com>

	* config/os/hpux/os_defines.h Define _GLIBCPP_VTABLE_PADDING
	* libsupc++/tinfo.cc Handle the 8 byte aligned vtable entries when
	_GLIBCPP_VTABLE_PADDING is defined.

2002-06-25  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/stl_alloc.h: Additional formatting.

2002-06-24  Phil Edwards  <pme@gcc.gnu.org>

	* include/bits/stl_alloc.h:  Reformat as per C++STYLE.

2002-06-24  Phil Edwards  <pme@gcc.gnu.org>

	* config/cpu/*/bits/*:  Move header files up a level.  Remove bits.
	* config/os/*/bits/*:  Likewise.
	* configure.in:  Update.
	* configure:  Regenerate.
	* configure.target:  Update.
	* docs/html/17_intro/porting.texi:  Update.

2002-06-21  Phil Edwards  <pme@gcc.gnu.org>

	* include/bits/stl_map.h, include/bits/stl_multimap.h,
	include/bits/stl_queue.h, include/bits/stl_stack.h:  Reformat and
	complete doxygenation.
	* include/bits/boost_concept_check.h:  Minor comment.

2002-06-21  Benjamin Kosnik  <bkoz@redhat.com>

	* include/c_compatibility: New.
	* include/c_compatibility/assert.h: New.
	* include/c_compatibility/ctype.h: New.
	* include/c_compatibility/errno.h: New.
	* include/c_compatibility/float.h: New.
	* include/c_compatibility/iso646.h: New.
	* include/c_compatibility/limits.h: New.
	* include/c_compatibility/locale.h: New.
	* include/c_compatibility/math.h: New.
	* include/c_compatibility/setjmp.h: New.
	* include/c_compatibility/signal.h: New.
	* include/c_compatibility/stdarg.h: New.
	* include/c_compatibility/stddef.h: New.
	* include/c_compatibility/stdio.h: New.
	* include/c_compatibility/stdlib.h: New.
	* include/c_compatibility/string.h: New.
	* include/c_compatibility/time.h: New.
	* include/c_compatibility/wchar.h: New.
	* include/c_compatibility/wctype.h: New.

	* include/c/std_cerrno.h: Get out of the way... define errno.
	* include/c/std_cmath.h: Add abs, modf overloads.
	Undefine C99 isms. Still not sure how to deal with this sanely.
	* include/c/std_csetjmp.h: Tweak.
	* include/c/std_cwchar.h: Include cstddef for size_t.

	* include/c_std/std_cmath.h: Remove extra function.

	Pendantic std usage in testsuites.
	* testsuite/17_intro/header_cstdlib.cc (test01): Qualify ldiv_t
	with std.
	* testsuite/17_intro/header_cwchar.cc: Tweak.
	* testsuite/22_locale/codecvt_members_char_char.cc (test03): Use
	std::setlocale.
	* testsuite/22_locale/ctype_to_wchar_t.cc (test05): Same.
	* testsuite/22_locale/ctype_to_char.cc (test05): Same.
	* testsuite/22_locale/ctype_is_wchar_t.cc (test05): Same.
	* testsuite/22_locale/ctype_is_char.cc (test05): Same.
	* testsuite/22_locale/codecvt_members_wchar_t_char.cc (test03): Same.
	* testsuite/22_locale/time_get_members_wchar_t.cc (test08): Same.
	* testsuite/22_locale/time_get_members_char.cc (test08): Same.
	* testsuite/22_locale/time_put_members_wchar_t.cc (test04): Same.
	* testsuite/22_locale/time_put_members_char.cc (test04): Same.
	* testsuite/22_locale/num_put_members_wchar_t.cc (test04): Same.
	* testsuite/22_locale/num_put_members_char.cc (test04): Same.
	* testsuite/22_locale/numpunct_members_wchar_t.cc (test03): Same.
	* testsuite/22_locale/numpunct_members_char.cc (test03): Same.
	* testsuite/22_locale/num_get_members_wchar_t.cc: Same.
	* testsuite/22_locale/num_get_members_char.cc: Same.
	* testsuite/22_locale/money_put_members_wchar_t.cc (test07): Same.
	* testsuite/22_locale/money_put_members_char.cc (test07): Same.
	* testsuite/22_locale/moneypunct_members_wchar_t.cc (test03): Same.
	* testsuite/22_locale/moneypunct_members_char.cc (test03): Same.
	* testsuite/22_locale/money_get_members_wchar_t.cc (test08): Same.
	* testsuite/22_locale/money_get_members_char.cc (test08): Same.
	* testsuite/22_locale/messages_members_char.cc (test03): Same.
	* testsuite/22_locale/collate_members_wchar_t.cc (test04): Same.
	* testsuite/22_locale/collate_members_char.cc (test04): Same.
	* testsuite/26_numerics/fabs_inline.cc: Use std::printf.
	* testsuite/27_io/istream_seeks.cc (test02): Qualify abort.
	* testsuite/27_io/istream_extractor_arith.cc (test11): Qualify strtol.

2002-06-20  Benjamin Kosnik  <bkoz@redhat.com>

	* libsupc++/Makefile.am (libsupc__convenience_la_SOURCES): Add
	c_sources.

2002-06-20  Benjamin Kosnik  <bkoz@redhat.com>

	* src/ext-inst.cc (__gnu_cxx): Use instead of std:: for extensions.
	Use size_type instead of unsigned long.

2002-06-20  Steve Ellcey  <sje@cup.hp.com>

	* src/ext-inst.cc (_S_fetch): Add explicit templates for char and
	wchar types.
	(_S_min_len): Ditto.

2002-06-20  Benjamin Kosnik  <bkoz@redhat.com>

	* include/Makefile.am: Add rules.
	* include/Makefile.in: Regenerate.

	* acinclude.m4: Define GLIBCPP_C_HEADERS_COMPATIBILITY.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* configure.target (c_model, c_compatibility): Add.

	* libsupc++/Makefile.am (c_sources): New.
	(libsupc___la_SOURCES): Add c_sources.
	(LTCOMPILE): Remove INCLUDES.
	(GCC_INCLUDES): New.
	(C_COMPILE): New, like COMPILE but without INCLUDES.
	(cxa_demangle.o): Use C_COMPILE.
	(dyn-string.o): Use C_COMPILE.

	* include/c/std_cstdarg.h: Define __need___va_list.
	* include/c/std_cstddef.h: Define need_size_t, need_ptrdiff_t,
	need_NULL, need_offsetof.

2002-06-19  Steve Ellcey  <sje@cup.hp.com>

	* configure.in (HAVE_FINITE*, HAVE_ISINF*, HAVE_ISNAN*):  Remove
	definitions in hpux11 cross-build because these functions do
	not exist on hpux11 (but some exist on hpux10); move defaults out
	into existing sections.
	* configure:  Regenerate.

2002-06-18  Benjamin Kosnik  <bkoz@redhat.com>

	* include/c/std_cwchar.h: Guard. Add mbstate_t bits.
	* include/c/std_cwctype.h: Guard.

	* libsupc++/eh_alloc.cc: Tweak include order.
	* libsupc++/pure.cc: Use cstdio.
	* libsupc++/new_op.cc: Remove malloc forward declaration, as
	cstdlib brings it in. Use std::malloc.

	* src/Makefile.am (sources): Remove cmath.cc.
	* src/Makefile.in: Regenerate.
	* src/cmath.cc: Remove.

2002-06-18  Phil Edwards  <pme@gcc.gnu.org>

	* configure.target:  Force mips to use the generic cpu routines.

2002-06-18  Phil Edwards  <pme@gcc.gnu.org>

	* configure.host:  Delete file.
	* configure.target:  More documentation.  Factor out common parts of
	script into "intelligent" settings about defaults.  Remove redundancy.

	* acinclude.m4:  Update comments.  Do not call configure.host.
	(GLIBCPP_ENABLE_SYMVERS):  If disabled, do not bother checking for
	libgcc_s.
	* configure.in:  Slight reformatting, more comments.  Factor out
	"config/" from all the directories.
	* docs/html/17_intro/porting.texi:  Update and expand.
	* testsuite/Makefile.am (AM_RUNTESTFLAGS):  Move empty setting
	from configure.host.

	* aclocal.m4, configure, docs/html/17_intro/porting.html,
	testsuite/Makefile.in:  Regenerate.

2002-06-16  Phil Edwards  <pme@gcc.gnu.org>

	* docs/doxygen/TODO:  Update.
	* docs/doxygen/tables.html:  Uncomment magical middle column.
	* docs/doxygen/user.cfg.in:  Kludge to ignore function-like macros.
	* include/bits/stl_queue.h:  Doxygenate and reformat.
	* include/bits/ios_base.h, include/std/std_streambuf.h:  Add comment
	for deprecated names required by the standard.

2002-06-14  J.T. Conklin  <jtc@acorntoolworks.com>

	* configure.in (target_alias): Fix.
	* configure: Regenerate.
	* aclocal.m4: Regenerate.

2002-06-12  Phil Edwards  <pme@gcc.gnu.org>

	* include/Makefile.am:  Add new files.
	* include/Makefile.in:  Regenerate.

	* include/bits/stl_deque.h, include/bits/stl_list.h,
	include/bits/stl_vector.h:  Clean up, reformat.  Move definitions...
	* include/bits/deque.tcc, include/bits/list.tcc,
	include/bits/vector.tcc:  ...to here.  New files.

	* include/ext/stl_hashtable.h:  Inclide correct full headers.
	* include/std/std_deque.h:  Include .tcc files for now.
	* include/std/std_list.h:  Likewise.
	* include/std/std_vector.h:  Likewise.

2002-06-12  Daniel Jacobowitz  <drow@mvista.com>

	* Makefile.am: Add FLAGS_TO_PASS.
	* Makefile.in: Regenerated.

2002-06-11  J.T. Conklin  <jtc@acorntoolworks.com>
	    Benjamin Kosnik  <bkoz@redhat.com>

	* configure.target: Set os_include_dir to config/os/qnx/qnx6.1
	under *-qnx6.[12]*.
	* configure.in: Add support for *-qnx6.[12]*.
	* configure: Regenerate.

	* config/os/qnx, config/os/qnx/qnx6.1, config/os/qnx/qnx6.1/bits:
	New directories.
	* config/os/qnx/qnx6.1/bits/ctype_base.h, ctype_inline.h,
	ctype_noninline.h, os_defines.h: New files.

2002-06-10  Loren J. Rittle <ljrittle@acm.org>

	* acinclude.m4 (GLIBCPP_CHECK_SETRLIMIT_ancilliary): Reorder and
	include all required headers for test against older POSIX standard.
	(GLIBCPP_CHECK_SETRLIMIT): Likewise.
	(ac_setrlimit): Likewise.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* testsuite/testsuite_hooks.cc: Reorder and include all
	required headers for use against older POSIX standard.

2002-06-08  Paolo Carlini  <pcarlini@unitus.it>

	* testsuite/backwards/strstream_members.cc: New.

2002-06-08  Benjamin Kosnik  <bkoz@redhat.com>

	* include/backwards/strstream: Format.
	* src/strstream.cc: Format.

2002-06-08  Andreas Schwab  <schwab@suse.de>

	* src/strstream.cc (strstreambuf::overflow): Set _M_buf,
	_M_buf_size and _M_buf_size_opt to the new buffer and size.

2002-06-08  Benjamin Kosnik  <bkoz@redhat.com>

	* config/os/generic/bits/ctype_noninline.h: Tweak format.

2002-06-07  Steve Ellcey  <sje@cup.hp.com>

	* src/locale-inst.cc (__codecvt_abstract_base):
	Put inside _GLIBCPP_USE_WCHAR_T ifdef.
	* include/bits/istream.tcc (basic_istream): Ditto.
	(ws) Ditto.
	(operator>>) Ditto.
	* include/bits/ostream.tcc (basic_ostream): Ditto.
	(endl): Ditto.
	(ends): Ditto.
	(flush): Ditto.
	(operator<<): Ditto.

2002-06-07  Phil Edwards  <pme@gcc.gnu.org>

	* mkcheck.in:  Link against local testsuite library.
	* testsuite/testsuite_hooks.h (__set_testsuite_memlimit):  Move null
	implementation out...
	* testsuite/testsuite_hooks.cc:  ...to here.

2002-06-06  Loren J. Rittle <ljrittle@acm.org>

	* src/Makefile.am (AUTOMAKE_OPTIONS): Use cygnus-style generation.
	* include/Makefile.am (AUTOMAKE_OPTIONS): Likewise.
	* testsuite/Makefile.am (AUTOMAKE_OPTIONS): Likewise.
	* src/Makefile.in: Regenerate (explicitly with --cygnus option).
	* testsuite/Makefile.in: Likewise.

2002-06-05  David Edelsohn  <edelsohn@gnu.org>

	* config/os/aix/bits/ctype_noninline.h (do_toupper,do_tolower):
	Call external symbol.

2002-06-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* testsuite/lib/libstdc++-v3-dg.exp (libstdc++-v3_target_compile):
	Search correct multilib testsuite dir for libv3test.

2002-06-04  Paolo Carlini  <pcarlini@unitus.it>
	    Gaby Dos Reis  <gdr@codesourcery.com>

	* include/bits/basic_string.tcc
	(basic_string::_S_construct(forward_iterator_tag):
	Fix typo in null pointer check.
	* testsuite/21_strings/ctor_copy_dtor.cc: Add test04.

2002-06-04  Paolo Carlini  <pcarlini@unitus.it>

	* testsuite/22_locale/money_get_members_char.cc
	(test02): Add decimal point to long double constants.
	* testsuite/22_locale/money_get_members_wchar_t.cc
	(test02): Likewise.
	* testsuite/22_locale/money_put_members_char.cc
	(test02, test03, test06): Likewise.
	* testsuite/22_locale/money_put_members_wchar_t.cc:
	(test02, test03, test06): Likewise.
	* testsuite/22_locale/num_get_members_char.cc:
	(test02, test01): Likewise; suffix long long constants with LL.
	* testsuite/22_locale/num_get_members_wchar_t.cc:
	(test02, test01): Likewise.
	* testsuite/22_locale/num_put_members_char.cc:
	(test02, test01): Likewise.
	* testsuite/22_locale/num_put_members_wchar_t.cc:
	(test02, test01): Likewise.

2002-06-03  Marc Espie  <espie@openbsd.org>

	* config/cpu/m68k/bits/atomicity.h(__exchange_and_add): Fix inline
	assembly for old assemblers.

2002-06-03  Phil Edwards  <pme@gcc.gnu.org>

	* include/bits/stl_bvector.h (swap(_Bit_reference,_Bit_reference)):
	Move/rename...
	(vector<bool>::swap(reference,reference)): ...to this.

2002-06-03  Phil Edwards  <pme@gcc.gnu.org>

	* docs/doxygen/TODO:  Update.
	* docs/doxygen/user.cfg.in (SORT_MEMBER_DOCS):  Set to off, now that
	some class members are in 14882 order.
	* docs/html/ext/howto.html:  3.1 is in the past now, not the future.

	* include/std/std_bitset.h:  Update comment.
	* src/bitset.cc:  Update comments, clean up spacing.

	* src/Makefile.am (sources):  Alphabetize for convenience.
	* src/Makefile.in:  Regenerate.

2002-06-03  Phil Edwards  <pme@gcc.gnu.org>

	* include/bits/stl_deque.h, include/bits/stl_list.h,
	include/bits/stl_vector.h:  Reformat to (mostly) match C++STYLE.
	Reorder to match 14882.  Doxygen blocks for all public members.

2002-05-31  Marcus Meissner  <meissner@suse.de>

	PR libstdc++/6886
	* include/bits/stl_bvector.h:  Use UL suffix for unsigned longs.
	* testsuite/23_containers/vector_bool.cc (test02):  New test.

2002-05-30  Marc Espie  <espie@openbsd.org>

	* configure.in: Always check for sys/types.h
	* configure: Regenerate.

2002-05-28  Nick Clifton  <nickc@cambridge.redhat.com>

	* testsuite/lib/libstdc++-v3-dg.exp (libstdc++-v3-init):
	Rebuild the wrapper file every time this proc is called.

2002-05-28  Phil Edwards  <pme@gcc.gnu.org>

	* testsuite/Makefile.am (noinst_LIBRARIES):  New target.  Pull in
	CXX/INCLUDES.
	* testsuite/Makefile.in:  Regenerate.
	* testsuite/testsuite_hooks.h (gnu_copy_tracker):  Move from
	list_modifiers.cc and rename from 'T'.  Move code bodies...
	* testsuite/testsuite_hooks.cc:  ...to here.  New file.
	* testsuite/23_containers/list_modifiers.cc:  Move 'T' class out.
	* testsuite/lib/libstdc++-v3-dg.exp (libstdc++-v3_target_compile):
	Add libv3test.a to link options.

2002-05-27  Benjamin Kosnik  <bkoz@redhat.com>

	* src/misc-inst.cc: Define unnecessary algorithm
	instantiations. Break apart instantiations into groupings below.
	* src/fstream-inst.cc: New.
	* src/io-inst.cc: New.
	* src/istream-inst.cc: New.
	* src/ostream-inst.cc: New.
	* src/streambuf-inst.cc: New.
	* src/sstream-inst.cc: New.
	* src/Makefile.am (sources): Add files.
	* src/Makefile.in: Regenerate.

	* acinclude.m4: Work around automake 1.4-p5 bug, change
	AM_GNU_GETTEXT in comments to AM-GNU-GETTEXT.

2002-05-27  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/6795.
	* config/os/solaris/solaris2.6/bits/ctype_noninline.h
	(classic_table): Fix.
	* config/os/solaris/solaris2.5/bits/ctype_noninline.h: Same.

2002-05-27  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/22_locale/ctype_is_wchar_t.cc: Guard with
	_GLIBCPP_USE_WCHAR_T.
	* testsuite/22_locale/ctype_narrow_wchar_t.cc: Same.
	* testsuite/22_locale/ctype_to_wchar_t.cc: Same.
	* testsuite/22_locale/ctype_widen_wchar_t.cc: Same.

2002-05-26  Carlo Wood  <carlo@alinoe.com>
	    Paolo Carlini  <pcarlini@unitus.it>

	PR libstdc++/6811
	* config/locale/ieee_1003.1-2001/codecvt_specializations.h
	(__enc_traits::operator=): add missing return statement.

2002-05-24  Phil Edwards  <pme@gcc.gnu.org>

	PR libstdc++/6282
	* include/std/std_bitset.h (_Base_biteset<0>):  New specialization.
	(operator>>):  If nothing was extracted, don't fail in the
	zero-length case.
	* testsuite/23_containers/bitset_ctor.cc (test02):  New test.

2002-05-24  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/6701
	* testsuite/22_locale/ctype_narrow_char.cc: New.
	* testsuite/22_locale/ctype_narrow_wchar_t.cc: New.
	* testsuite/22_locale/ctype_widen_char.cc: New.
	* testsuite/22_locale/ctype_widen_wchar_t.cc: New.
	* testsuite/22_locale/ctype_members_char.cc: Move some bits into...
	* testsuite/22_locale/ctype_is_char.cc: ...this.
	* testsuite/22_locale/ctype_to_char.cc: ...and this.
	* testsuite/22_locale/ctype_members_wchar_t.cc: Move some bits into...
	* testsuite/22_locale/ctype_is_wchar_t.cc: ...this.
	* testsuite/22_locale/ctype_to_wchar_t.cc: ...and this.

	* testsuite/22_locale/ctype_scan_wchar_t.cc: Should pass.

2002-05-24  Dale Peakall <dale@peakall.net>

	PR libstdc++/6701
	* config/locale/gnu/ctype_members.cc (ctype<wchar_t>::do_narrow): Fix.
	* config/locale/generic/ctype_members.cc: Same.

2002-05-24  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/6750
	* include/bits/ostream.tcc (ostream::operator<<(const char*)): Fix
	for empty string literal.
	(ostream::operator<<(const _CharT*)): Same.
	(ostream<char>::operator<<(const char*)): Same.
	(ostream<char>::operator<<(streambuf*)): Same.
	* testsuite/27_io/ostream_inserter_char.cc (test08): Add tests.
	* testsuite/27_io/ostream_inserter_other.cc (test02): Modify.

2002-05-23  Benjamin Kosnik  <bkoz@redhat.com>

	* configure.in (release_VERSION): Update to 3.1.1.
	(libtool_VERSION): Update to 4:1:0.
	* configure: Regenerate.

2002-05-21  Phil Edwards  <pme@gcc.gnu.org>

	* include/bits/stl_pair.h:  Tweak comment markup.

2002-05-21  Phil Edwards  <pme@gcc.gnu.org>

	* include/ext/stdio_filebuf.h:  Add header guards.  Doxygenate.

2002-05-21  Phil Edwards  <pme@gcc.gnu.org>

	* docs/doxygen/user.cfg.in (EXCLUDE):  Add 'CVS'.

2002-05-21  Phil Edwards  <pme@gcc.gnu.org>

	* include/bits/stl_vector.h:  Reformat to follow C++STYLE.
	Doxygenate all public members.  Reorder to follow 14882.
	(vector::push_back(void)):  Remove previously-deprecated fn.
	(vector::insert(iterator), vector::_M_insert_aux(iterator)):
	Deprecate for removal in 3.3.

2002-05-20  Phil Edwards  <pme@gcc.gnu.org>

	* docs/html/faq/index.html (5.4):  Recommend against -I options for
	finding the ext headers.
	* docs/html/faq/index.txt:  Regenerate.

2002-05-19  Paolo Carlini  <pcarlini@unitus.it>

	* testsuite/23_containers/deque_operators.cc (test01):
	Fix minor typo in last commit.

2002-05-18  Paolo Carlini  <pcarlini@unitus.it>

	PR libstdc++/6503
	* include/bits/stl_deque.h (_Deque_iterator::operator==,
	operator!=, operator<, operator>, operator>=, operator<=):
	Make non-member functions, to allow comparing const and
	non-const iterators in any order.
	* testsuite/23_containers/deque_operators.cc: New testfile.

2002-05-16  Phil Edwards  <pme@gcc.gnu.org>

	* docs/html/faq/index.html:  Update not-a-bug list with basic_file.h.
	* docs/html/faq/index.txt:  Regenerate.

2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* Makefile.am: Allow for PWDCMD to override hardcoded pwd.
	* acinclude.m4: Likewise.
	* docs/html/Makefile: Likewise.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* Makefile.in: Regenerate.

2002-05-15  Loren J. Rittle <ljrittle@acm.org>

	libstdc++/6641
	* include/bits/c++config (__USE_MALLOC): Report case where
	the user improperly defined it on the command line.

2002-05-15  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* testsuite/testsuite_hooks.h (__set_testsuite_memlimit):
	Retrieve current limits before setting.

2002-05-15  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/6518
	* include/bits/ostream.tcc (ostream::operator<<(const char*)): Fix
	for null case.
	(ostream::operator<<(const _CharT*)): Same.
	(ostream<char>::operator<<(const char*)): Same.
	* testsuite/27_io/ostream_inserter_char.cc (test07): Add test.

2002-05-15  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/6594
	* src/strstream.cc (strstreambuf): Fix leak.

2002-05-15  Paolo Carlini  <pcarlini@unitus.it>

	PR libstdc++/6648
	* include/bits/istream.tcc (istream::getline, ignore):
	Upon __idelim (__delim) call sbumpc() not snextc().
	* testsuite/27_io/narrow_stream_objects.cc:
	Add test08 and test09.

2002-05-13  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/22_locale/ctype_scan_char.cc: Tweak.
	* testsuite/22_locale/ctype_scan_wchar_t.cc: New.

	* docs/html/install.html: Fix.

2002-05-13  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/fstream.tcc
	(basic_filebuf::_M_allocate_internal_buffer): Remove extraneous
	try/catch blocks.
	* src/localename.cc (locale::_Impl::_M_install_facet): Same.

	* docs/html/install.html: Tweak, add bits about required locales
	for the 22_locale tests when using the gnu model.

	* testsuite/27_io/istream_sentry.cc: Tweak.

2002-05-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* config/os/irix/irix5.2/bits/ctype_inline.h (scan_is, scan_not):
	Fix typo, use this->is() rather than manually (and perhaps
	incorrectly) inlining it.
	* config/os/irix/irix6.5/bits/ctype_inline.h (scan_is, scan_not):
	Likewise.
	* testsuite/22_locale/ctype_scan_char.cc: New file.

2002-05-13  Paolo Carlini  <pcarlini@unitus.it>
	    Jakub Jelinek  <jakub@redhat.com>

	* testsuite/22_locale/money_get_members_char.cc
	(test01, test02, test04): Use the de_DE@euro named locale
	instead of de_DE to allow for an uniform behaviour with
	both old and Euro-era localedata; tweak some tests.
	* testsuite/22_locale/money_get_members_wchar_t.cc
	(test01, test02, test04): Likewise.
	* testsuite/22_locale/money_put_members_char.cc
	(test01, test02, test04): Likewise.
	* testsuite/22_locale/money_put_members_wchar_t.cc
	(test01, test02, test04): Likewise.

2002-05-13  Paolo Carlini  <pcarlini@unitus.it>

	* testsuite/22_locale/codecvt_members_char_char.cc
	(test03): Robustify wrt localedata.
	* testsuite/22_locale/codecvt_members_wchar_t_char.cc (test03): Likewise.
	* testsuite/22_locale/collate_members_char.cc (test04): Likewise.
	* testsuite/22_locale/collate_members_wchar_t.cc (test04): Likewise.
	* testsuite/22_locale/ctype_members_char.cc (test05): Likewise.
	* testsuite/22_locale/ctype_members_wchar_t.cc (test04): Likewise.
	* testsuite/22_locale/messages_members_char.cc (test03): Likewise.
	* testsuite/22_locale/money_get_members_char.cc (test08): Likewise.
	* testsuite/22_locale/money_get_members_wchar_t.cc (test08): Likewise.
	* testsuite/22_locale/money_put_members_char.cc (test07): Likewise.
	* testsuite/22_locale/money_put_members_wchar_t.cc (test07): Likewise.
	* testsuite/22_locale/moneypunct_members_char.cc (test03): Likewise.
	* testsuite/22_locale/moneypunct_members_wchar_t.cc (test03): Likewise.
	* testsuite/22_locale/num_get_members_char.cc (test06): Likewise.
	* testsuite/22_locale/num_get_members_wchar_t.cc (test06): Likewise.
	* testsuite/22_locale/num_put_members_char.cc (test04): Add comment.
	* testsuite/22_locale/num_put_members_wchar_t.cc (test04): Likewise.
	* testsuite/22_locale/numpunct_members_char.cc (test03): Likewise.
	* testsuite/22_locale/numpunct_members_wchar_t.cc (test03): Likewise.
	* testsuite/22_locale/time_get_members_char.cc (test08): Likewise.
	* testsuite/22_locale/time_get_members_wchar_t.cc (test08): Likewise.
	* testsuite/22_locale/time_put_members_char.cc (test04): Likewise.
	* testsuite/22_locale/time_put_members_wchar_t.cc (test04): Likewise.

2002-05-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* config/os/irix/irix5.2/bits/os_defines.h: Revert 2002-05-06
	change.

2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* config/os/gnu-linux/bits/os_defines.h (__glibcpp_long_bits): Define
	to 64 for hppa 64-bit port.
	(__glibcpp_long_double_bits): Define to 64 for all hppa ports.

2002-05-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* acinclude.m4 (enable_symvers): Quote $LD.
	* aclocal.m4: Regenerate.
	* configure: Likewise.

2002-05-09  Jakub Jelinek  <jakub@redhat.com>

	* testsuite/lib/libstdc++-v3-dg.exp (libstdc++-v3-init): Append all
	multilib dirs containing libgcc_s*.so.1 below gcc object dir to
	LD_LIBRARY_PATH.

2002-05-08  Alexandre Oliva  <aoliva@redhat.com>

	* configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
	script entry, and set LD to it when configuring multilibs.
	* configure: Rebuilt.

2002-05-07  Mark Mitchell  <mark@codesourcery.com>

	* configure.in: Add support for WindISS.
	* configure: Regenerated.
	* configure.target: Add support for WindISS.
	* config/os/windiss/bits/ctype_base.h: New file.
	* config/os/windiss/bits/ctype_inline.h: Likewise.
	* config/os/windiss/bits/ctype_noninline.h: Likewise.
	* config/os/windiss/bits/os_defines.h: Likewise.

2002-05-06  Paolo Carlini  <pcarlini@unitus.it>

	Test all the facets for the temporary "C" locale switch issue.
	* testsuite/22_locale/codecvt_members_char_char.cc: Add test03.
	* testsuite/22_locale/codecvt_members_wchar_t_char.cc: Likewise.
	* testsuite/22_locale/collate_members_char.cc: Add test04.
	* testsuite/22_locale/collate_members_wchar_t.cc: Likewise.
	* testsuite/22_locale/ctype_members_char.cc: Add test05.
	* testsuite/22_locale/ctype_members_wchar_t.cc: Add test04.
	* testsuite/22_locale/messages_members_char.cc: Add test03.
	* testsuite/22_locale/money_get_members_char.cc: Add test08.
	* testsuite/22_locale/money_get_members_wchar_t.cc: Likewise.
	* testsuite/22_locale/money_put_members_char.cc: Add test07.
	* testsuite/22_locale/money_put_members_wchar_t.cc: Likewise.
	* testsuite/22_locale/moneypunct_members_char.cc: Add test03.
	* testsuite/22_locale/moneypunct_members_wchar_t.cc: Likewise.
	* testsuite/22_locale/num_get_members_char.cc: Add test06.
	* testsuite/22_locale/num_get_members_wchar_t.cc: Likewise.
	* testsuite/22_locale/numpunct_members_char.cc: Add test03.
	* testsuite/22_locale/numpunct_members_wchar_t.cc: Likewise.
	* testsuite/22_locale/time_get_members_char.cc: Add test08.
	* testsuite/22_locale/time_get_members_wchar_t.cc: Likewise.
	* testsuite/22_locale/time_put_members_char.cc: Add test04.
	* testsuite/22_locale/time_put_members_wchar_t.cc: Likewise.

	* testsuite/22_locale/num_put_members_char.cc (test04): Add comment.
	* testsuite/22_locale/num_put_members_wchar_t.cc (test04): Likewise.

2002-05-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* config/os/irix/irix5.2/bits/os_defines.h (_SGI_SOURCE,
	__EXTENSIONS__): Ensure they are always defined.

2002-05-06  Phil Edwards  <pme@gcc.gnu.org>

	* docs/html/documentation.html:  Fix broken link.

2002-05-04  Benjamin Kosnik  <bkoz@redhat.com>
	    Paolo Carlini  <pcarlini@unitus.it>

	* testsuite/22_locale/num_put_members_char.cc: Add test04(),
	testing for the locale_facets.tcc entry of the previous commit.
	* testsuite/22_locale/num_put_members_wchar_t.cc: Likewise.

2002-05-04  Takeshi Kobayakawa  <tskoba@mte.biglobe.ne.jp>

	* config/locale/generic/c_locale.cc
	(__convert_to_v(float, double, long double)):
	Fix the temporary switch to the "C" locale, saving and
	restoring in the proper way the current locale.
	* config/locale/generic/time_members.cc
	(__timepunct<char, wchar_t>::_M_put): Likewise.
	* config/locale/gnu/messages_members.cc
	(messages<char>::do_get): Likewise.
	* config/locale/gnu/messages_members.h
	(messages<_CharT>::do_get): Likewise.
	* config/locale/gnu/time_members.cc
	(__timepunct<char, wchar_t>::_M_put): Likewise.
	* include/bits/locale_facets.tcc (__convert_from_v): Likewise.

2002-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* configure.in (AC_CHECK_HEADERS): Check for string.h & stdlib.h.
	* libsupc++/Makefile.am (LTCOMPILE): Add $(DEFS).

	* Makefile.in, config.h.in, configure: Regenerate.

2002-05-03  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/6549.
	* include/bits/fstream.tcc (filebuf::_M_underflow_common): Revert.
	* testsuite/27_io/narrow_stream_objects.cc (test07): Add.

2002-05-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* config/os/irix/irix5.2/bits/ctype_noninline.h (classic_table):
	Return __ctype + 1.
	(ctype:_M_table): Initialize to classic_table(), not __ctype.

2002-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* configure.in: Update local install.html, configopts.html paths.
	* configure: Regenerate.

2002-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* config/os/irix/irix5.2/bits/os_defines.h
	(__glibcpp_long_double_bits, __glibcpp_long_bits): Define.

	* config/os/irix/irix5.2/bits/ctype_inline.h: Cast to unsigned
	char.

2002-05-02  Phil Edwards  <pme@gcc.gnu.org>

	* docs/html/faq/index.html:  Update list in #4.1.
	* docs/html/faq/index.txt:  Regenerated.

2002-05-02  Benjamin Kosnik  <bkoz@redhat.com>

	* docs/html/17_intro/RELEASE-NOTES (New): Update.

2002-05-01  Phil Edwards  <pme@gcc.gnu.org>

	* include/std/std_bitset.h:  Fix doxygen comments.
	* docs/html/documentation.html:  Minor tweaks for 3.1.
	* docs/html/27_io/howto.html:  Likewise.
	* docs/html/ext/howto.html:  Likewise, mention stdio_filebuf.
	* docs/html/faq/index.html:  Likewise.
	* docs/html/faq/index.txt:  Regenerated.

2002-05-01  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/6533
	* include/bits/streambuf_iterator.h (istreambuf_iterator::_M_get): New.
	(istreambuf_iterator::equal): Use it.
	(istreambuf_iterator::operator*): Use it.

2002-05-01  Paolo Carlini  <pcarlini@unitus.it>

	PR libstdc++/6513
	* include/bits/stl_uninitialized.h
	(uninitialized_copy(_InputIter, _InputIter, _ForwardIter)):
	Fix typo in 2001-07-17 commit: typedef _ValueType to
	iterator_traits<_ForwardIter> not <_InputIter>.
	* testsuite/23_containers/vector_ctor.cc: Add test04.

2002-04-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	PR libstdc++/6501
	* include/c_std/std_cctype.h: Include bits/c++config.h.
	* config/os/hpux/bits/os_defines.h (_SB_CTYPE_MACROS): Define.

2002-04-30  Benjamin Kosnik  <bkoz@redhat.com>

	* include/ext/stdio_filebuf.h: New file.
	* include/ext/enc_filebuf.h: New file.
	* config/io/basic_file_stdio.h (__basic_file::sys_open): Add fd ctor.
	* config/io/basic_file_stdio.cc: Same.
	* include/bits/fstream.tcc (filebuf::_M_allocate_internal_buffer):
	Remove _M_unbuf hacks.
	(filebuf::_M_destroy_internal_buffer): Same.
	(filebuf::filebuf(cfile, openmode, int_type): Remove definition.
	(filebuf::fd): Remove.
	* include/std/std_fstream.h (filebuf::_M_unbuf): Remove.
	(filebuf::filebuf(__c_file*, openmode, int_type)): Remove.
	(filebuf::fd): Remove.
	* src/ios.cc (ios_base::_S_ios_create): Change to use specialized
	filebufs.
	(ios_base::_S_ios_destroy): Same.
	* src/misc-inst.cc (file_filebuf<char>): Add instantiation.
	* include/Makefile.am (ext_headers): Add ext_filebuf.h,
	stdio_filebuf.h.  * include/Makefile.in: Regenerate.

2002-04-30  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/6511
	* config/os/solaris/solaris2.7/bits/ctype_noninline.h: Fix typo.

2002-04-29  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/5820
	* include/bits/fstream.tcc (basic_filebuf::_M_underflow_common):
	Check for eof.
	* include/bits/streambuf_iterator.h: Match stream_iterator.h.
	(istreambuf_iterator::operator++): Invalidate on eof.
	(istreambuf_iterator::operator++(int)): Same.
	(istreambuf_iterator::operator*): Same.

2002-04-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* testsuite/lib/libstdc++-v3-dg.exp (libstdc++-v3-init): Set all
	of LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
	LD_LIBRARY64_PATH.

2002-04-28  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/5820
	* config/io/basic_file_stdio.h (__basic_file::sys_getc): Return int.
	(__basic_file::sys_ungetc): Take int.
	* config/io/basic_file_stdio.cc (__basic_file::sys_ungetc): Same.
	* include/bits/fstream.tcc (basic_filebuf::_M_underflow_common):
	Use sys_getc for unbuffered input.
	* testsuite/27_io/narrow_stream_objects.cc (test06): New.

	* src/ios.cc (_M_grow_words): Adjust error checking.
	* testsuite/27_io/ios_base_storage.cc: Same.

2002-04-28  Peter Schmid  <schmid@snake.iap.physik.tu-darmstadt.de>

	* include/ext/stl_hashtable.h: Import __iterator_category

2002-04-28  Paolo Carlini  <pcarlini@unitus.it>
	    Peter Schmid  <schmid@snake.iap.physik.tu-darmstadt.de>

	* testsuite/ext/hash_set.cc: New testfile.

2002-04-27  Benjamin Kosnik  <bkoz@redhat.com>

	* config/os/solaris/solaris2.5/bits/os_defines.h: Remove
	_G_USING_THUNKS.
	* config/os/solaris/solaris2.6/bits/os_defines.h: Same.
	* config/os/solaris/solaris2.7/bits/os_defines.h: Same.

2002-04-26  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/basic_string.h (replace(__pos, __n1, __s, __n2):
	Fix and tighten __throw_length_error check.
	* testsuite/21_strings/replace.cc (test05): New.
	* testsuite/21_strings/replace.cc (test02, test03, test04): Tweak.

2002-04-23  Loren J. Rittle <ljrittle@acm.org>

	* include/std/std_fstream.h (basic_filebuf::sync): Hoist
	unconditional flush on lower-layer handle to here...
	* include/bits/fstream.tcc (basic_filebuf::_M_really_overflow):
	...from here.  Optimize remaining _M_file.sync() call pattern.
	* testsuite/27_io/narrow_stream_objects.cc (test04): New test.
	(test05): Likewise.

2002-04-23  Jason Merrill  <jason@redhat.com>

	* include/bits/fstream.tcc (basic_filebuf::seekoff): Fix for
	output-only filebufs.
	* include/std/std_fstream.h (basic_filebuf::_M_set_indeterminate):
	Likewise.
	(basic_filebuf::_M_set_determinate): Likewise.

	PR libstdc++/6414
	* include/bits/fstream.tcc (basic_filebuf::seekoff): Adjust return
	value properly in the trivial case.
	* testsuite/27_io/istream_seeks.cc (test04): Make sure that
	tellg() returns the right value after a read.

2002-04-23  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/cpu/mmix/bits/cpu_limits.h: New file.
	* configure.target (CPULIMITSH): Use it.

2002-04-22  Loren J. Rittle <ljrittle@acm.org>

	* docs/html/17_intro/porting.texi (_GLIBCPP_AVOID_FSEEK): Remove.
	* docs/html/17_intro/porting.html: Rebuilt.

2002-04-20  Jason Merrill  <jason@redhat.com>

	PR libstdc++/4150
	* include/std/std_streambuf.h (basic_streambuf::_M_set_indeterminate):
	Move to filebuf.
	(basic_streambuf::_M_set_determinate): Likewise.
	(basic_streambuf::_M_is_indeterminate): Likewise.
	* include/bits/std_fstream.h (basic_filebuf::_M_filepos): New
	non-static data member.
	(basic_filebuf::_M_underflow_common): New non-static member function.
	(basic_filebuf::_M_underflow, _M_uflow): Call it.
	(basic_filebuf::sync): Avoid useless seeking.
	(basic_filebuf::_M_set_indeterminate): Move here from streambuf.
	Set _M_filepos.
	(basic_filebuf::_M_set_determinate): Likewise.
	(basic_filebuf::_M_is_indeterminate): Likewise.
	* include/bits/fstream.tcc (basic_filebuf::_M_really_overflow): Seek
	back to _M_out_beg if necessary.
	(basic_filebuf::seekoff): Likewise.
	(basic_filebuf::_M_underflow_common): Generalization of old
	underflow().  Don't seek back to _M_in_beg.
	* src/ios.cc: Lose _GLIBCPP_AVOID_FSEEK stuff.
	* config/os/solaris/solaris2.?/bits/os_defines.h: Likewise.
	* config/os/bsd/freebsd/bits/os_defines.h: Likewise.
	* config/os/mingw32/bits/os_defines.h: Likewise.
	* testsuite/27_io/filebuf_virtuals.cc (test05): Don't overspecify
	ungetc test.

2002-04-22  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/istream.tcc (istream::read): Fix.
	* testsuite/27_io/istream_unformatted.cc (main): Add.

2002-04-20  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/6360
	* include/bits/istream.tcc (istream::ignore): Streamline, use
	delimiter as is.
	* include/bits/streambuf.tcc: Use this->gptr.
	* testsuite/27_io/istream_unformatted.cc (test08): Add test.

2002-04-18  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/localefwd.h (locale::id::_M_id): Do this correctly,
	as type safety is important, especially on solaris.
	* include/bits/istream.tcc (istream::read): Clean.
	(istream::readsome): Same.
	* locale.cc: Wrap lines.

	* testsuite/21_strings/inserters_extractors.cc: Tweaks.
	* testsuite/27_io/instantiations.cc (test): Add bool variable...
	* testsuite/21_strings/capacity.cc: Clean.

2002-04-17  Phil Edwards  <pme@gcc.gnu.org>

	* docs/doxygen/doxygroups.cc:  New group on binary searching.
	* include/bits/stl_algo.h:  Document binary searches and merges.
	* include/bits/stl_deque.h:  The 'map' member is not the 'map' class.

2002-04-17  Phil Edwards  <pme@gcc.gnu.org>

	* docs/doxygen/mainpage.html:  Doxygen logo is now a PNG file.
	* docs/doxygen/run_doxygen:  Bump required version.
	* docs/doxygen/user.cfg.in:  Revert accidental change.
	* docs/html/faq/index.html:  Reindent a block of links.
	(4.4):  New note on using dlsym.
	* docs/html/faq/index.txt:  Regenerated.

2002-04-17  Phil Edwards  <pme@gcc.gnu.org>

	* testsuite_flags.in (cxxflags):  Also pass @EXTRA_CXX_FLAGS@.

2002-04-17  Benjamin Kosnik  <bkoz@redhat.com>

	* config/linker-map.gnu (__malloc_alloc_template): Add.
	(__default_alloc_template): Same.
	* include/bits/stl_alloc.h (__malloc_alloc_template): Add extern
	template.
	(__default_alloc_template): Same.

2002-04-17  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/27_io/filebuf_virtuals.cc: Add _S_pback_size instantiation.

2002-04-16  Benjamin Kosnik  <bkoz@redhat.com>

	* src/concept-inst.cc (vector<locale::facet*>): Remove instantiations.
	* src/stl-inst.cc (vector::_M_insert_aux): Remove instantiation.
	(__malloc_alloc_template): Conditionalize.

	* include/bits/istream.tcc: Remove sputbackc calls.

	* testsuite/19_diagnostics/stdexceptions.cc: Fix comment.

2002-04-16  Paolo Carlini <pcarlini@unitus.it>

 	* testsuite/24_iterators/rel_ops.cc: New test.

2002-04-16  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>

	* include/bits/type_traits.h (__normal_iterator): Declare in
	__gnu_cxx.  Adjust use at global namespace.
	* include/bits/stl_iterator.h (__normal_iterator): Move definition
	into __gnu_cxx::. Add more operator overloads.  Tidy existing ones.
	* include/bits/basic_string.h (basic_string): Adjust use of
	__normal_iterator.
	* include/bits/stl_vector.h (_Alloc>): Likewise.
	* src/concept-inst.cc (__gnu_cxx): __normal_iterator<> is now here.
	* src/string-inst.cc (operator==): Instantiate in __gnu_cxx.

2002-04-15  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/4164
	Valgrind fixes.
	* config/io/basic_file_stdio.cc (__basic_file::~__basic_file):
	Call close.
	(__basic_file::close): Call fflush. Correct return if fclose ok.
	(__basic_file::is_open): Make const.
	Change __c_file_type to __c_file.
	* config/io/basic_file_stdio.h: Change __c_file_type to __c_file.
	(__basic_file::is_open): Make const.
	* config/io/c_io_stdio.h: Change __c_file_type to __c_file.
	* include/std/std_fstream.h (filebuf::_M_allocate_file): Remove.
	(filebuf::_M_unbuf): Add.
	(filebuf::_M_file): Change to non-pointer.
	(filebuf::_M_allocate_pback_buffer): Remove.
	* include/bits/fstream.tcc (filebuf::_M_allocate_file): Remove.
	(filebuf::_M_allocate_internal_buffer): Use _M_unbuf.
	Change initialization list for _M_file change.
	(filebuf::_M_allocate_pback_buffer): Remove.
	Change _M_file usage to reflect non-pointer data member.

	* config/locale/generic/c_locale.cc
	(locale::facet::_S_create_c_locale): Add parameter.
	* config/locale/generic/collate_members.cc: Change
	_M_compare_helper to _M_compare.
	Change _M_transform_helper to _M_transform.
	* config/locale/generic/monetary_members.cc: Changeup data types.
	Add dtors.
	* config/locale/generic/numeric_members.cc: Add dtors.
	* config/locale/generic/time_members.cc: Add dtors.
	* config/locale/gnu/c_locale.cc: Add parameter.
	* config/locale/gnu/collate_members.cc:Change
	_M_compare_helper to _M_compare.
	Change _M_transform_helper to _M_transform.
	* config/locale/gnu/ctype_members.cc: Better error checking.
	* config/os/gnu-linux/bits/ctype_noninline.h: Better error checking.
	* config/locale/gnu/messages_members.cc: Tweak comment.
	* config/locale/gnu/monetary_members.cc: Change data types.
	Add dtors.
	* config/locale/gnu/numeric_members.cc: Add dtors, better error
	checking.
	* config/locale/gnu/time_members.cc: Same.
	* config/locale/ieee_1003.1-2001/c_locale.cc
	(locale::facet::_S_create_c_locale): Add parameter.
	* config/locale/ieee_1003.1-2001/c_locale.h: Correct typedef.
	* config/locale/ieee_1003.1-2001/codecvt_specializations.h: Remove
	bogus ctor.

	* include/bits/locale_facets.h (moneypunct): Use string literals.
	Don't define dtor.
	(numpunct): Same.
	(__timepunct): Same.
	(locale::_Impl::_M_facets): Change from vector to array.
	(locale::_Impl::_M_names): Change from array of strings to array
	of string literals.
	(locale::facet::_S_create_c_locale): Add parameter.
	(locale::locale::_S_num_facets): Move to...
	(locale::_Impl::_M_facets_size): Here.
	* include/bits/locale_facets.tcc: Fixups for _M_facets, _M_name
	changes.
	* include/bits/localefwd.h: (locale::id::_M_id): Add member function.
	(locale::_Impl::_Impl(facet**, size_t, bool)): Add.
	(locale::_Impl::_Impl(string, size_t)): Change to
	(locale::_Impl::_Impl(const char*, size_t)): This.

	* include/bits/streambuf.tcc (streambuf::_S_pback_size): Define.
	* include/std/std_streambuf.h (streambuf::_M_pback_size): Change to
	(streambuf::_S_pback_size): This.

	* src/globals.cc: Add pre-allocations for "C" facets.
	* src/locale-inst.cc: Remove vector instantiations.
	* src/locale.cc: Remove vector include. Fixups for _M_names,
	_M_facets changes.
	* src/localename.cc: Same.

	* include/bits/stl_vector.h: Fix odd formatting.

	* include/bits/basic_string.tcc: Tweak comment.

	* libsupc++/new: Make sure parameters are uglified.
	* libsupc++/typeinfo: Same.

	* testsuite/22_locale/num_get_members_char.cc: Fixup.
	* testsuite/22_locale/num_get_members_wchar_t.cc: Same.
	* testsuite/27_io/filebuf_members.cc: Same.

2002-04-12  Steve Ellcey  <sje@cup.hp.com>

	* gcc/libstdc++-v3/config/os/hpux/bits/os_defines.h
	(strtoll, strtoull): In 64 bit mode HP-UX (IA64 and HPPA)
	does not define strtoll or strtoull, but does define strtol
	and strtoul which are the same since in 64 bit mode
	sizeof(long) == sizeof(long long).

2002-04-12  Phil Edwards  <pme@gcc.gnu.org>

	* include/std/std_bitset.h:  Doxygenate std::bitset<>.  Clean up
	trailing spaces, indentation, and macro names.  Make exception
	messages more informative.

2002-04-11  Richard Henderson  <rth@redhat.com>

	* include/bits/fstream.tcc (basic_filebuf<>::open): Fix & ordering.
	* include/bits/ostream.tcc (basic_ostream<>::operator<<(long)): Same.
	(basic_ostream<>::operator<<(long long)): Same.

2002-04-11  Richard Henderson  <rth@redhat.com>

	* config/linker-map.gnu: Add __gxx_personality_sj0.

2002-04-09  Benjamin Kosnik  <bkoz@redhat.com>

	libstdc++/1072
	* include/bits/localefwd.h (locale::_Impl::_M_facets): Change from
	pointer to vector.
	Remove forward declaration of vector.
	Include vector.
	* include/bits/locale_facets.tcc: Remove vector include.
	(use_locale): Adjust.
	(has_locale): Adjust.
	* src/locale.cc: Adjust.
	* src/localename.cc: Same.

2002-04-09  Benjamin Kosnik  <bkoz@redhat.com>
	    Richard Henderson  <rth@redhat.com>

	* include/bits/sstream.tcc: Clean up bit ops.
	* include/bits/fstream.tcc: Same.

2002-04-09  Jakub Jelinek  <jakub@redhat.com>

	* include/bits/locale_facets.h (__num_base::_S_scale_hex): Remove.
	(__num_base::_S_scale_oct): Remove.
	* src/locale.cc (__num_base::_S_scale_hex): Remove.
	(__num_base::_S_scale_oct): Remove.

2002-04-09  Benjamin Kosnik  <bkoz@redhat.com>

	libstdc++/6124
	* testsuite/23_containers/bitset_members.cc: New test.
	* include/std/std_bitset.h (_Bit_count::_S_bit_count): Move..
	(_S_bit_count): Here.
	(_First_one::_S_first_one): Move...
	(_S_first_one): Here.
	Format.
	* src/bitset.cc: Adjust.
	* config/linker-map.gnu: Export.

2002-04-08  Benjamin Kosnik  <bkoz@redhat.com>

	libstdc++/5180
	* include/bits/fstream.tcc (filebuf::seekpos): Fix.
	* include/std/std_fstream.h: Clean.
	* include/bits/ostream.tcc: Remove extraneous variables.
	* include/bits/sstream.tcc (stringbuf::seekoff): Be strict about
	open modes and which modes.
	(stringbuf::seekpos): Same.
	* testsuite/27_io/stringbuf_virtuals.cc: New tests.

2002-04-05  Jonathan Wakely <jw@kayari.org>

	* include/bits/stl_algo.h (unique_copy, __gcd, rotate, rotate_copy,
	random_shuffle, partition, stable_partition, sort, stable_sort,
	partial_sort, partial_sort_copy, nth_element):  Doxygenate.

2002-04-05  David S. Miller  <davem@redhat.com>

	* config/os/gnu-linux/bits/os_defines.h
	(__glibcpp_long_double_bits): Set to 64 on 32-bit Sparc.

2002-04-04  Benjamin Kosnik  <bkoz@redhat.com>

	libstdc++/3457
	via gawrilow@math.tu-berlin.de
	* acinclude.m4 (version_specific_libs): Fix combo usage with
	--with-gxx-include-dir.
	* aclocal.m4: Regenerate.
	* configure: Same.

2002-04-03  Benjamin Kosnik  <bkoz@redhat.com>

	As per DR 184, libstdc++/3139
	* include/std/std_limits.h (__glibcpp_bool_digits): Change to 1.
	(numeric_limits<bool>::is_iec559): False.
	(numeric_limits<bool>::is_modulo): False.

	* testsuite/27_io/ios_init.cc: Add instantiations.

2002-04-02  Benjamin Kosnik  <bkoz@redhat.com>

	libstdc++/5268
	* src/ios.cc: (ios_base::Init::_S_ios_destroy): Remove flush calls.
	* testsuite/27_io/ios_init.cc (tests04): Add test.

	libstdc++/3983
	* include/bits/basic_ios.h (basic_ios::_M_get_fctype_ios): Remove.
	(basic_ios::_M_ios_fctype): Consistently name to _M_fctype.
	* include/bits/basic_ios.tcc: Same. Remove outdated comments.
	* include/bits/istream.tcc: Use _M_fctype, make consistent with
	ostream.
	* testsuite/27_io/ios_init.cc (tests03): Add test.

2002-04-02  Phil Edwards  <pme@gcc.gnu.org>

	* include/Makefile.am (install-data-local):  Use mkinstalldirs.
	* include/Makefile.in:  Regenerate.

2002-04-02  Paolo Carlini  <pcarlini@unitus.it>
	    Nathan Myers  <ncm@cantrip.org>
	    Philip Martin  <philip@codematters.co.uk>

	* include/bits/basic_string.h
	(replace(i1, i2, _CharT* k1, _CharT* k2),
	replace(i2, i2, const _CharT* k1, const _CharT* k2),
	replace(i1, i2, iterator k1, iterator k2,
	replace(i1, i2, const_iterator k1, const_iterator k2):
	New specializations to optimize for the common cases of
	pointers and iterators.
	(replace(pos, n1, s, n2)): Tweak.
	* include/bits/basic_string.tcc: Tweak comments.
	* testsuite/21_strings/replace.cc (test04): New tests.

2002-04-01  Benjamin Kosnik  <bkoz@redhat.com>

	libstdc++/5542
	* acinclude: More extensive checks for msgfmt, --enable-nls.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

2002-04-01  Phil Edwards  <pme@gcc.gnu.org>

	* libsupc++/exception (__verbose_terminate_handler):  Point to docs.
	* docs/doxygen/doxygroups.cc:  Doxygen hooks for abi::__cxa_demangle.
	* docs/html/18_support/howto.html:  Document the demangler.
	* docs/html/17_intro/howto.html:  And link to it.

	* docs/doxygen/mainpage.html:  Describe user-vs-maintainer docs.
	* docs/doxygen/run_doxygen:  Print user-vs-maintainer.

2002-04-01  Phil Edwards  <pme@gcc.gnu.org>

	* config/linker-map.gnu:  Export __verbose_terminate_handler.
	* libsupc++/Makefile.am (sources):  Add cxa_demangle.c, dyn-string.c.
	Make new LTCOMPILE variable, use it in new special build rules.
	* libsupc++/Makefile.in:  Rebuild.
	* src/vterminate.cc (__verbose_terminate_handler):  Enable use of
	runtime __cxa_demangle.

	* docs/html/install.html:  Update prereqs and instructions.
	* docs/html/19_diagnostics/howto.html:  Bring naming for
	verbose_terminate_handler into line with reality.

2002-04-01  Benjamin Kosnik  <bkoz@redhat.com>

	libstdc++/3129
	* include/bits/basic_ios.h (basic_ios::_M_exception): Move.
	(basic_ios::_M_streambuf_state): Move.
	* include/bits/ios_base (ios_base): To here.
	* include/bits/ios_base.h (ios_base::_S_local_words): To
	_S_local_word_size.
	(ios_base::_M_word_array): To _M_local_word.
	(ios_base::_M_words_limit): To _M_word_size.
	(ios_base::_M_words): To _M_word.
	Comment.
	* include/bits/basic_ios.tcc: Adjust.
	* src/ios.cc (ios_base::_M_grow_words): Tweak.
	* testsuite/27_io/ios_base_storage.cc: Add tests.

	libstdc++/5207
	Kenny Simpson <theonetruekenny@yahoo.com>
	* include/bits/ios_base.h: Fix.

	Richard Henderson  <rth@redhat.com>
	* include/bits/ostream.tcc (ostream::operator<<(_CharT)): Correct
	last change.

	* include/bits/basic_string.h: Tweak formatting.

2002-04-01  Paolo Carlini  <pcarlini@unitus.it>

	* config/locale/ieee_1003.1-2001/codecvt_specializations.h
	(codecvt::do_out, codecvt::do_unshift, codecvt::do_in):
	By definition, sizeof(char) == 1.
	* include/bits/locale_facets.tcc (money_get::do_get,
	money_put::do_put): Ditto.
	* testsuite/21_strings/inserters_extractors.cc
	(test04): Ditto.

2002-03-30  Richard Henderson  <rth@redhat.com>

	PR c++/3719
	* libsupc++/eh_personality.cc (__cxa_call_unexpected): Copy handler
	data out of the exception struct before calling unexpectedHandler.

2002-03-28  Roger Sayle  <roger@eyesopen.com>

	* include/c_std/std_cmath.h:  To prevent problems overloading
	g++ builtins, use the double variants from the global namespace
	before defining float and long double variants in std::.

2002-03-28  Loren J. Rittle <ljrittle@acm.org>

	* testsuite/18_support/numeric_limits.cc (test_extrema): Fix typo.

2002-03-28  Paolo Carlini  <pcarlini@unitus.it>

	* testsuite/24_iterators/istream_iterator.cc
	(test02): New tests.

2002-03-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
	    Paolo Carlini  <pcarlini@unitus.it>

	* testsuite/22_locale/codecvt_members_unicode_wchar_t.cc
	(test01): Protect the test with _GLIBCPP_USE_WCHAR_T;
	fix i_lit_base e_lit_base arrays, making them independent
	from the endianness of the platform; tweak UCS4 to UCS-4BE.

2002-03-27  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/ostream.tcc (ostream::operator<<(_CharT)): Always
	allocate at least a byte.

	* testsuite/18_support/numeric_limits.cc (test_extrema): Make
	debugger-friendly.
	* testsuite/27_io/streambuf.cc (test07): Fix.
	(test06): Enable.

2002-03-27  Phil Edwards  <pme@gcc.gnu.org>

	* docs/doxygen/Intro.3:  Date tweak.
	* docs/doxygen/TODO:  Update.
	* docs/doxygen/doxygroups.cc:  Point to tables.html.
	* docs/doxygen/mainpage.html:  Date tweak.
	* docs/doxygen/run_doxygen:  Version tweak.  Copy tables.html over.
	* docs/doxygen/tables.html:  Fill in the blanks.

	* docs/doxygen/user.cfg.in (ALIASES):  Remove maint and endmaint.
	* include/bits/stl_algo.h:  Likewise; use expanded form.
	* include/bits/stl_alloc.h:  Likewise.
	* include/bits/stl_construct.h:  Likewise.
	* include/bits/stl_deque.h:  Likewise.
	* include/bits/stl_iterator_base_types.h:  Likewise.
	* include/bits/stl_list.h:  Likewise.
	* include/bits/stl_relops.h:  Likewise.
	* include/bits/stl_tempbuf.h:  Likewise.
	* include/bits/stl_vector.h:  Likewise.
	* include/std/std_memory.h:  Likewise.

	* include/bits/stl_deque.h:  Point into tables.html and add @ingroup.
	* include/bits/stl_list.h:  Likewise.
	* include/bits/stl_vector.h:  Likewise.

2002-03-26  Benjamin Kosnik  <bkoz@redhat.com>

	* include/c/: Guard with _CPP_.
	* include/c_std/: Same.
	* include/Makefile.am: Fixup install, link routines for null
	c_base_headers_extra scenarios.
	* include/Makefile.in: Regerate.

2002-03-25  Paolo Carlini <pcarlini@unitus.it>
	    Richard Henderson  <rth@redhat.com>

	* testsuite/22_locale/codecvt_members_unicode_char.cc
	(test01, test02): make sure that the i_lit_base array
	is sufficiently aligned.

2002-03-25  Benjamin Kosnik  <bkoz@redhat.com>

	* config/os/newlib/bits/ctype_noninline.h (ctype::classic): Set to
	_ctype_.

2002-03-25  Paolo Carlini  <pcarlini@unitus.it>

	* testsuite/22_locale/collate_byname.cc
	(test01): compare the result of collate::compare with
	that of collate::transform + string::compare, not with
	that of collate::transform + collate::compare; values
	returned by collate::compare are normalized, therefore
	test against +-1.

2002-03-25  Benjamin Kosnik  <bkoz@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* config/locale/gnu/messages_members.h: Correct conditional.
	* config/locale/gnu/messages_members.cc: Same.
	* config/locale/gnu/time_members.cc: Same.

2002-03-25  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
	    Paolo Carlini  <pcarlini@unitus.it>

	* testsuite/22_locale/codecvt_members_unicode_char.cc
	(test01, test02): Fix i_lit_base arrays, making them
	independent from the endianness of the platform.

2002-03-22  Benjamin Kosnik  <bkoz@redhat.com>

	* acinclude.m4 (GLIBCPP_CHECK_COMPLEX_MATH_SUPP): Just test for
	signbit and __signbit directly.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* config.h.in: Regenerate.
	* libmath/Makefile.am: Simplify.
	* libmath/Makefile.in: Regenerate.
	* include/c_std/std_cmath.h: Update paths for include of cmath.tcc.

	* include/Makefile.am: Clean up handling of extra "C" header files.
	Add hooks for "C" compatibility headers.
	* include/Makefile.in: Regenerate.

	* include/c/*: Formatting tweaks, cleanups.
	* include/c_std/*: Same.

2002-03-22  Benjamin Kosnik  <bkoz@redhat.com>

	* config/locale/gnu/messages_members.h: Add __uselocale bits.
	* config/locale/gnu/messages_members.cc: Same.
	* config/locale/gnu/time_members.cc: Same.

2002-03-22  Benjamin Kosnik  <bkoz@redhat.com>

	* src/vterminate.cc: Format, -fno-exceptions cleanup.

2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* acinclude.m4 (GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_3): New.
	(GLIBCPP_CONFIGURE_TESTSUITE): Use it to check for setenv.
	* aclocal.m4: Regenerate.
	* configure: Likewise.

2002-03-19  Paolo Carlini  <pcarlini@unitus.it>
	    Ulrich Drepper  <drepper@redhat.com>

	* src/locale-inst.cc (__convert_from_v): Add an additional
	__size parameter in the declarations.
	* include/bits/locale_facets.tcc
	(__convert_from_v): When available (that is,
	_GLIBCPP_USE_C99 defined) use snprintf instead of sprintf.
	(num_put::_M_convert_float): Depending on _GLIBCPP_USE_C99
	being defined or not, call and use __convert_from_v in the
	appropriate way.
	(num_put::_M_convert_int): Same here.
	(money_put::do_put(long double)): Same here.

2002-03-19  Phil Edwards  <pme@gcc.gnu.org>

	* docs/html/faq/index.html (#3.6):  Rewrap and close <a href> tags.
	* docs/html/faq/index.txt:  Regenerate.

2002-03-19  Steve Ellcey  <sje@cup.hp.com>

	* acinclude.m4 (GLIBCPP_ENABLE_LIBUNWIND_EXCEPTIONS): Define
	GLIBCPP_ENABLE_LIBUNWIND_EXCEPTIONS to set LIBUNWIND_FLAG if
	--enable-libunwind-exceptions is set.
	* configure.in (GLIBCPP_ENABLE_LIBUNWIND_EXCEPTIONS): Call new
	macro to check for libunwind.
	* configure: Regenerate.
	* src/Makefile.am (libstdc___la_LDFLAGS): Add
	LIBUNWIND_FLAG to libstdc link line.
	* src/Makefile.in: Regenerate.

2002-03-19  Benjamin Kosnik  <bkoz@redhat.com>

	* docs/html/faq/index.html: Add OS X workaround.
	* docs/html/17_intro/TODO: Update.

2002-03-18  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/locale_facets.tcc
	(money_put::do_put(long double)): Fix dimensioning of
	temporary buffers to avoid risk of overruns.
	(money_put::do_put(string)): Same for the buffer used to
	add the grouping chars.
	* testsuite/22_locale/money_put_members_char.cc: Add test06.
	* testsuite/22_locale/money_put_members_wchar_t.cc: Ditto.

	* include/bits/locale_facets.tcc
	(collate::do_transform): Simplify.

2002-03-18  Phil Edwards  <pme@gcc.gnu.org>

	* acinclude.m4 (GLIBCPP_CONFIGURE):  Make indentation/spacing uniform.
	* configure.in:  Add comments pointing the way for autoconf 2.5x.
	* aclocal.m4, config.h.in, configure:  Regenerate.

2002-03-18  Philipp Thomas  <pthomas@suse.de>

	* include/backward/hash_map.h: hash, hashtable, hash_map and
	hash_multimap are in namespace __gnu_cxx.
	include/backward/hash_set.h: hash, hashtable, hash_set and
	hash_multiset are in namespace __gnu_cxx.
	include/backward/hashtable.h: hash and hashtable are in
	namespace __gnu_cxx.
	include/backward/rope.h: char_producer, sequence_buffer,
	rope, crope and wrope are in namespace __gnu_cxx.
	include/backward/slist.h: slist is in namespace __gnu_cxx.
	* testsuite/backward/header_hash_map_h.cc
	testsuite/backward/header_hash_set_h.cc
	testsuite/backward/header_hashtable_h.cc
	testsuite/backward/header_rope_h.cc
	testsuite/backward/header_slist_h.cc
	testsuite/backward/header_tempbuf_h.cc: New tests for
	checking that we're using the correct namespace.

2002-03-17  Jason Merrill  <jason@redhat.com>

	PR c++/4381
	* libsupc++/eh_personality.cc (get_adjusted_ptr): New static fn.
	(check_exception_spec): Call it.  Take the thrown pointer.
	(__cxa_call_unexpected): Pass it.
	(PERSONALITY_FUNCTION): Likewise.  Use get_adjusted_ptr.

2002-03-15  Anthony Green  <green@redhat.com>

	* configure.in: Remove useless is_mingw32.
	* configure: Rebuilt.

2002-03-15  Paolo Carlini  <pcarlini@unitus.it>

	* testsuite/22_locale/collate_members_char.cc
	(test01): compare the result of collate::compare with
	that of collate::transform + string::compare, not with
	that of collate::transform + collate::compare.
	(test01): values returned by collate::compare are
	normalized, therefore test against +-1.
	* testsuite/22_locale/collate_members_wchar_t.cc: Ditto.

2002-03-12  Loren Rittle  <ljrittle@acm.org>

	reported by Peter Schmid <schmid@snake.iap.physik.tu-darmstadt.de>
	* testsuite/thread/pthread4.cc: Lower nominal iteration counter.

2002-03-12  Benjamin Kosnik  <bkoz@redhat.com>
	    Per Liboriussen  <liborius@stofanet.dk>

	* config/os/gnu-linux/bits/ctype_noninline.h: Cast to
	unsigned char.
	* config/os/gnu-linux/bits/ctype_inline.h: Same.

	* config/os/irix/irix6.5/bits/ctype_inline.h: Same.

	* config/os/solaris/solaris2.5/bits/ctype_inline.h: Same.
	* config/os/solaris/solaris2.5/bits/ctype_noninline.h: Same.

	* config/os/solaris/solaris2.6/bits/ctype_inline.h: Same.
	* config/os/solaris/solaris2.6/bits/ctype_noninline.h: Same.

	* config/os/solaris/solaris2.7/bits/ctype_inline.h: Same.
	* config/os/solaris/solaris2.7/bits/ctype_noninline.h: Same.

	* testsuite/22_locale/ctype_members_char.cc (main): Add tests.

2002-03-12  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/basic_string.tcc (string::_S_construct(_InIter,
	_InIter, const _Alloc&, forward_iterator_tag): Check for null.
	(string::basic_string(const _CharT* __s, const _Alloc& __a)): Same.
	* testsuite/21_strings/ctor_copy_dtor.cc (test01): Re-enable, now
	that memory limits are in place.
	(test03): Add tests.

2002-03-11  Benjamin Kosnik  <bkoz@redhat.com>

	* acinclude.m4 (GLIBCPP_CHECK_WCHAR_T_SUPPORT): Check for wctype.h.
	* aclocal.m4: Regenerate.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* include/c_std/std_cwctype.h: Guard.

2002-03-11  Chris Demetriou  <cgd@broadcom.com>

	* acinclude.m4 (GLIBCPP_ENABLE_SYMVERS): Enhance check for
	whether GLIBCPP_CHECK_LINKER_FEATURES has been used.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

2002-03-11  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/stl_bvector.h: Fix warning.

2002-03-11  Richard Henderson  <rth@redhat.com>

	* include/bits/stl_bvector.h (_Bit_type): New.  Use throughout.

2002-03-11  Phil Edwards  <pme@gcc.gnu.org>

	* testsuite/lib/libstdc++-v3-dg.exp (libstdc++-v3-list-sourcefiles):
	New function.  Build the list of tests to run in testsuite_files.
	* testsuite/libstdc++-v3.dg/dg.exp:  Use it.

2002-03-11  Phil Edwards  <pme@gcc.gnu.org>

	* testsuite/21_strings/capacity.cc:  Only explicitly instantiate on
	platforms with no weak support.
	* testsuite/27_io/ios_init.cc:  Likewise.

2002-03-10  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/locale_facets.tcc (time_put::do_put):
	Consider sizeof(char_type) in allocating the buffer.

	* include/bits/locale_facets.tcc (collate::do_tranform):
	Remove redundant variable.

2002-03-10  Ulrich Drepper  <drepper@redhat.com>
	    Paolo Carlini  <pcarlini@unitus.it>

	* config/locale/generic/collate_members.cc
	(collate<char,wchar_t>::_M_compare_helper): normalize
	values returned by strcoll and wcscoll.
	* config/locale/gnu/collate_members.cc
	(collate<char,wchar_t>::_M_compare_helper): ditto
	for __strcoll_l and __wcscoll_l.

2002-03-10  Anthony Green  <green@redhat.com>

	* configure.in: Support cross builds to mingw32 target.
	* configure: Rebuilt.

2002-03-09  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/locale_facets.tcc (collate::do_transform):
	Rewrite to fix problems with long transformed strings.

2002-03-08  Benjamin Kosnik  <bkoz@redhat.com>

	* c_locale_generic.cc: Move to...
	* generic/c_locale.cc
	* c_locale_generic.h: Move to...
	* generic/c_locale.h
	* codecvt_specializations_generic.h: Move to...
	* generic/codecvt_specializations.h
	* collate_members_generic.cc: Move to...
	* generic/collate_members.cc
	* ctype_members_generic.cc: Move to...
	* generic/ctype_members.cc
	* messages_members_generic.cc: Move to...
	* generic/messages_members.cc
	* messages_members_generic.h: Move to...
	* generic/messages_members.h
	* moneypunct_members_generic.cc: Move to...
	* generic/monetary_members.cc
	* numpunct_members_generic.cc: Move to...
	* generic/numeric_members.cc
	* time_members_generic.cc: Move to...
	* generic/time_members.cc
	* c_locale_gnu.cc: Move to...
	* gnu/c_locale.cc
	* c_locale_gnu.h: Move to...
	* gnu/c_locale.h
	* collate_members_gnu.cc: Move to...
	* gnu/collate_members.cc
	* ctype_members_gnu.cc: Move to...
	* gnu/ctype_members.cc
	* messages_members_gnu.cc: Move to...
	* gnu/messages_members.cc
	* messages_members_gnu.h: Move to...
	* gnu/messages_members.h
	* moneypunct_members_gnu.cc: Move to...
	* gnu/monetary_members.cc
	* numpunct_members_gnu.cc: Move to...
	* gnu/numeric_members.cc
	* time_members_gnu.cc: Move to...
	* gnu/time_members.cc
	* c_locale_ieee_1003.1-200x.cc: Move to...
	* ieee_1003.1-2001/c_locale.cc
	* c_locale_ieee_1003.1-200x.h: Move to...
	* ieee_1003.1-2001/c_locale.h
	* codecvt_specializations_ieee_1003.1-200x.h: Move to...
	* ieee_1003.1-2001/codecvt_specializations.h
	* messages_members_ieee_1003.1-200x.cc: Move to...
	* ieee_1003.1-2001/messages_members.cc
	* messages_members_ieee_1003.1-200x.h: Move to...
	* ieee_1003.1-2001/messages_members.h

	* acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): Make consistent.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* src/Makefile.am (sources): Change to monetary and numeric.
	* src/Makefile.in: Regenerate.
	* docs/html/configopts.html: Update to ieee_1003.1-2001.

2002-03-08  scott snyder  <snyder@fnal.gov>

	libstdc++/5875
	* include/bits/locale_facets.tcc (num_put::_M_convert_float):
	Allow one more digit of precision.
	* testsuite/27_io/ostream_inserter_arith.cc: Test that we can
	write a double and read back in the same value.

2002-03-08  Benjamin Kosnik  <bkoz@redhat.com>

	* include/std/std_limits.h: Move static const data members out of
	generic template, into base class __numeric_limits_base.
	* src/limits.cc: Add definitions.
	* config/linker-map.gnu: Add __numeric_limits_base.
	* testsuite/18_support/numeric_limits.cc: Declare test in scope.

2002-03-07  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/stl_alloc.h: Add extern implicit allocator
	instantiations.
	* include/bits/basic_string.tcc: Tweak.
	* include/bits/locale_facets.tcc: Remove default args. Add
	has_facet, use_facet extern instantiations.
	* src/stl-inst.cc: Add explicit instantiation.
	* src/locale-inst.cc: Clean. Remove locale member template
	instantiations.

	* testsuite/22_locale/operators.cc (test02): Enable.

2002-03-06  Benjamin Kosnik  <bkoz@redhat.com>
	    Stephen M. Webb  <stephen.webb@bregmasoft.com>

	* include/bits/stl_tree.h (_S_rb_tree_red): Make enum.
	(_S_rb_tree_black): Make enum.
	Clean. Format.
	* include/bits/stl_bvector.h (__WORD_BIT): To _M_word_bit, enum.
	* include/bits/stl_algo.h (__stl_chunk_size): _M_chunk_size, enum.
	(__stl_threshold): _M_threshold, enum.
	* src/stl-inst.cc: Same.
	* config/linker-map.gnu: Remove.

	* testsuite/23_containers/vector_bool.cc: New.

2002-03-06  Phil Edwards  <pme@gcc.gnu.org>

	* docs/doxygen/user.cfg.in:  Also document deprecated entries.
	* docs/html/Makefile:  Example rule to rebuild porting-howto.html.
	* docs/html/17_intro/howto.html:  "gcc"->"GCC" changes, when
	referring to the collection as a whole.  New section on which macros
	can be redefined by the user.
	* docs/html/19_diagnostics/howto.html:  Update note for concepts.
	* docs/html/20_util/howto.html:  Update link to SGI.
	* docs/html/faq/index.html:  Update snapshot versions.  New entry
	on why g++ (but not gcc) must currently predefine certain macros.
	* docs/html/faq/index.txt:  Regenerated.

	* include/bits/basic_string.h (basic_string::_S_construct):  Fix
	names in declaration.
	(basic_string::compare):  These are no longer optional.
	* include/bits/ostream.tcc:  Tweak closing brace placement.
	* include/bits/stl_algo.h:  Lots of initial doxygen comment hooks.
	* include/std/std_sstream.h:  Fix typo in comment.
	* include/bits/locale_facets.tcc:  Remove unneeded header inclusion.
	* src/locale.cc:  Likewise.

2002-03-06  Phil Edwards  <pme@gcc.gnu.org>

	PR libstdc++/5734
	* include/bits/stl_vector.h (vector::push_back()):  Guard with
	_GLIBCPP_DEPRECATED.

2002-03-06  Phil Edwards  <pme@gcc.gnu.org>

	* include/bits/c++config:  Fix misplaced leading blanks on first line.

2002-03-05  Benjamin Kosnik  <bkoz@redhat.com>

	* docs/html/17_intro/RELEASE-NOTES: Fix usage.
	* README (libmath): Make clear.

2002-03-05  Jakub Jelinek  <jakub@redhat.com>

	* acinclude.m4 (GLIBCPP_ENABLE_SYMVERS): Check for version
	script globbing in ld.
	* aclocal.m4: Rebuilt.
	* configure: Rebuilt.

2002-03-05  Benjamin Kosnik  <bkoz@redhat.com>

	* docs/html/17_intro/RELEASE-NOTES: Update.
	* README: Format subdirectories.

2002-03-05  Paolo Carlini  <pcarlini@unitus.it>

	libstdc++/5816
	* include/bits/locale_facets.tcc
	(num_get::_M_extract_float): Fix the parsing of __dec, since
	the standard prescribes that if no grouping characters are
	seen, no grouping check is applied.
	* testsuite/22_locale/num_get_members_char.cc: Add test05
	distilled from the PR.
	* testsuite/22_locale/num_get_members_wchar_t.cc: Ditto.

2002-03-04  Craig Rodrigues  <rodrigc@gcc.gnu.org>

	* docs/html/17_intro/porting-howto.xml: Refer to
	http://www.oasis-open.org for docbookx.dtd.
	* docs/html/17_intro/porting-howto.html: Regenerated.

2002-03-03  Phil Edwards  <pme@gcc.gnu.org>

	PR libstdc++/3955
	* include/std/std_sstream.h:  Remove trailing spaces.
	(basic_stringbuf::_M_stringbuf_init):  Also check for ios_base::app.
	* testsuite/27_io/stringbuf.cc (test05, test06):  New tests.

2002-03-02  Paolo Carlini  <pcarlini@unitus.it>

	* testsuite/22_locale/num_get_members_char.cc (test04):
	Use a named locale expecting grouping (de_DE).
	* testsuite/22_locale/num_get_members_wchar_t.cc (test04):
	Ditto.
	* testsuite/27_io/ios_manip_basefield.cc (test01):
	Extend coverage, uniform treatment of hexs and octs.

2002-02-28  Richard Henderson  <rth@redhat.com>

	* config/linker-map.gnu: Export operator new with unsigned long,
	and with std::nothrow_t.  Likewise operator delete.

2002-02-28  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/locale_facets.tcc (num_get::_M_extract_int):
	Admit grouping for octals and hexadecimals too.
	* testsuite/22_locale/num_get_members_char.cc: Add test04.
	(test01): Tweak "." -> "," in void* test.
	* testsuite/22_locale/num_get_members_wchar_t.cc: Ditto.

	* testsuite/27_io/ios_manip_basefield.cc: Remove static keyword.
	* testsuite/27_io/ios_manip_fmtflags.cc: Remove two of them.

2002-02-27  Paolo Carlini  <pcarlini@unitus.it>

	* testsuite/27_io/ios_manip_basefield.cc (test01):
	Fix for 64 bit machines.

2002-02-26  Benjamin Kosnik  <bkoz@redhat.com>

	libstdc++/3983
	* include/bits/basic_ios.tcc (basic_ios::init): Set _M_fill to zero.
	Adjust comment.
	* include/bits/basic_ios.h (basic_ios::_M_fill): Make mutable.
	(basic_ios::_M_fill_init): New.
	(basic_ios::fill()): Delay dealing with _M_fill.
	Adjust comment.
	* ios.cc (ios_base::ios_base()): Initialize _M_callbacks, _M_words.
	(ios_base::_M_call_callbacks): Adjust.
	* testsuite/27_io/ios_init.cc (test02): Adjust testcase.

2002-02-26  Loren Rittle  <ljrittle@acm.org>

	* include/Makefile.am (thread_target_headers): Unconditionally
	stage and install gthr-posix.h.
	(${target_builddir}/gthr-posix.h): New rule cloned off
	${target_builddir}/gthr-default.h.
	(${target_builddir}/gthr-default.h): Support chained inclusion
	of gthr support headers.
	* include/Makefile.in: Rebuilt.

2002-02-26  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/locale_facets.tcc (num_put::_M_widen_int):
	Group all the integral types, not only decs.
	* testsuite/27_io/ios_manip_basefield.cc (test01): Tweak existing
	tests, add a few more.

2002-02-25  Benjamin Kosnik  <bkoz@redhat.com>

	* src/ios.cc (ios_base::~ios_base): Tweak.
	(ios_base::_M_call_callbacks): Deal with null __p.
	(ios_base::ios_base): Set _M_callbacks.
	* include/bits/basic_ios.tcc (basic_ios::init): Adjust comment.
	* testsuite/27_io/ios_init.cc (test02): Fix.

	* mkcheck.in (static_fail): Failed links go to output file.

2002-02-25  Phil Edwards  <pme@gcc.gnu.org>

	* docs/html/faq/index.html:  Update.
	* docs/html/faq/index.txt:  Regenerate.

2002-02-22  Phil Edwards  <pme@gcc.gnu.org>

	* acinclude.m4 (GLIBCPP_ENABLE_SYMVERS):  Fix comment.
	* aclocal.m4:  Regenerate.
	* docs/html/configopts.html:  Document --enable-symvers.
	* config/linker-map.gnu:  Break libsupc++ symbols out to their own tag.

2002-02-22  Philipp Thomas  <pthomas@suse.de>

	* include/backward/tempbuf.h: get_temporary_buffer and
	return_temporary_buffer are in namespace std, not in __gnu_cxx.

2002-02-21  Benjamin Kosnik  <bkoz@redhat.com>

	* configure.in (target_alias): Default to yes.
	* acinclude.m4 (GLIBCPP_ENABLE_SYMVERS): Add check for shared
	libgcc to default case.

2002-02-20  Phil Edwards  <pme@gcc.gnu.org>

	* acinclude.m4 (GLIBCPP_CHECK_LINKER_FEATURES):  Also check version.
	(GLIBCPP_ENABLE_SYMVERS):  Redo logic, use linker version.
	* configure.in (GLIBCPP_ENABLE_SYMVERS):  Move later in the script.
	* aclocal.m4:  Regenerate.
	* configure:  Regenerate.
	* config/linker-map.dummy:  New file.  Contains nothing useful.

2002-02-20  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/22_locale/money_put_members_char.cc: Fix.
	* testsuite/22_locale/money_put_members_wchar_t.cc: Fix.

	* testsuite/27_io/standard_manipulators.cc: New file.

	* testsuite/27_io/ios_manip_basefield.cc: Check results, now failing.
	* testsuite/27_io/ios_manip_fmtflags.cc: Use locale::classic().

2002-02-20  Danny Smith  <dannysmith@users.sourceforge.net>

	* config/os/mingw32/bits/ctype_noninline.h
	(ctype<char>::ctype): Remove default args from parm list.
	* config/os/djgpp/bits/ctype_noninline.h: Same.

2002-02-19  Benjamin Kosnik  <bkoz@redhat.com>

	* include/std/std_iomanip.h: Inline, tweaks.
	* config/linker-map.gnu: Remove hacks.

	* testsuite/21_strings/capacity.cc: Add explicit instantiations.
	* testsuite/27_io/ios_init.cc: Same.
	* testsuite/22_locale/money_get_members_char.cc (test07): Fix.
	* testsuite/22_locale/money_get_members_wchar_t.cc (test07): Same.

2002-02-19  Benjamin Kosnik  <bkoz@redhat.com>

	* config/linker-map.gnu: Export global vtable, typeinfo, guard
	variable, and thunk info as per CXXABI docs.

2002-02-19  Loren Rittle <ljrittle@acm.org>

	* include/Makefile.am: Use CONFIG_HEADER instead of ad hoc names.
	* include/Makefile.in: Rebuilt.

2002-02-18  Peter Schmid  <schmid@snake.iap.physik.tu-darmstadt.de>

	* testsuite/22_locale/collate_byname.cc (test01): Replace size4
	  with size3 for the string collations of str5.

2002-02-18  Paolo Carlini  <pcarlini@unitus.it>

	libstdc++/5708
	* include/bits/locale_facets.tcc (money_put::do_put):
	For the space field use __fill instead of ' ', uniformly.
	* testsuite/22_locale/money_put_members_char.cc:
	Add test05 distilled from PR.
	(test01-02-03): Trim some '*' to ' '.
	* testsuite/22_locale/money_put_members_wchar_t.cc: Ditto.

2002-02-18  Loren Rittle <ljrittle@acm.org>

	libstdc++/5697
	* include/Makefile.am (thread_builddir): Remove (map all
	existing uses to target_builddir).
	(thread_headers): Rename to...
	(thread_target_headers): ...this.
	(stamp-thread): Remove.
	(stamp-target): Correctly state the position as built.
	Update all dependencies to match the new reality.  Remove all
	dependency calculations on directories.
	* include/Makefile.in: Rebuilt.

2002-02-16   Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/locale_facets.tcc: Add pragma GCC system_header.
	* include/bits/fstream.tcc: Same.
	* include/bits/sstream.tcc: Same.
	* include/bits/ostream.tcc: Same.
	* include/bits/istream.tcc: Same.
	* include/bits/streambuf.tcc: Same.
	* include/bits/basic_ios.tcc: Same.
	* include/bits/basic_string.tcc: Same.

2002-02-15  Benjamin Kosnik  <bkoz@redhat.com>

	* include/std/std_iosfwd.h: Don't guard typedefs with
	_GLIBCPP_USE_WCHAR_T
	* include/bits/stringfwd.h: Same.

2002-02-15  Benjamin Kosnik  <bkoz@redhat.com>

	* src/locale.cc (moneypunct_byname): Remove definitions.
	* include/std/std_streambuf.h (streambuf::operator=): Return.

2002-02-15  Benjamin Kosnik  <bkoz@redhat.com>

	Tune for size.
	* src/string-inst.cc (string::_Rep::_S_terminal): Remove redundant
	explicit instantiation.
	(string::_Rep::_S_max_size): Same.
	* include/bits/basic_string.tcc: Add extern explicit
	instantiations for string, wstring.
	* include/bits/basic_ios.tcc: Add extern explicit instantiations
	for ios, wios.
	* include/bits/streambuf.tcc: Same, for streambuf, wstreambuf.
	* include/bits/istream.tcc: Same, for istream, wistream.
	* include/bits/ostream.tcc: Same for ostream, wostream, iostream,
	wiostream.
	* include/bits/sstream.tcc: Same, for stringbuf, wstringbuf,
	istringstream, wistringstream, ostringstream, wostringstream,
	stringstream, wstringstream.
	* include/bits/fstream.tcc: Same, for filebuf, wfilebuf, ifstream,
	wifstream, ofstream, wofstream, fstream, wfstream.
	* src/misc-inst.cc: Correct comments.
	Add iomanip instantiations for wide streams.
	* include/std/std_iomanip.h: Same.
	* include/bits/locale_facets.tcc: Same.

	* include/std/std_streambuf.h: Correct
	_GLIBCPP_FULLY_COMPLIANT_HEADERS guard.
	* include/std/std_sstream.h: Same.
	* include/std/std_ostream.h: Same.
	* include/std/std_istream.h: Same.
	* include/std/std_fstream.h: Same.

	* include/std/std_streambuf.h: Add definitions for private copy
	ctor and assignment operator.
	* include/std/std_istream.h: Remove declared but undefined copy
	ctor and assignment operator. This is taken care of in ios_base,
	so adding it in the derived class as well is superfluous.
	* include/std/std_ostream.h: Same.

	* include/bits/basic_ios.h (basic_ios::clear): Don't inline.
	* include/bits/basic_ios.tcc (basic_ios::clear): Move definition here.

2002-02-14  Benjamin Kosnik  <bkoz@redhat.com>

	* config/linker-map.gnu: Change tag from GCC_3.1 to GLIBCPP_3.1.
	Add typeinfo bits. Smooth.
	* aclocal.m4: Regenerate.
	* configure: Same.
	* src/Makefile.in: Same.

2001-02-14  Joel Sherrill  <joel@OARcorp.com>

	* config/cpu/m68k/bits/atomicity.h: Corrected for RTEMS targets
	which do not have a CAS instruction.

2002-02-14  Phil Edwards  <pme@gcc.gnu.org>

	* acinclude.m4 (GLIBCPP_ENABLE_SYMVERS):  New macro, initial revision.
	* configure.in:  Call it.
	* config/linker-map.gnu:  New file, initial incomplete revision.
	* src/Makefile.am:  Optionally pass version script to the linker.
	* aclocal.m4:  Regenerate.
	* configure:  Regenerate.
	* src/Makefile.in:  Regenerate.

2002-02-13  Benjamin Kosnik  <bkoz@redhat.com>

	* src/localename.cc: Remove stdexcept include.
	* src/locale-inst.cc: Same.
	* src/locale.cc: Same.
	* src/functexcept.cc: Remove string includes.
	* include/std/std_bitset.h: Remove stdexcept include.
	* testsuite/23_containers/bitset_members.cc: Add stdexcept.
	* testsuite/23_containers/bitset_ctor.cc: Same.

2002-02-11  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/stl_algo (__stl_threshold): Declare external.
	(__stl_chunk_size): Same.
	* include/bits/stl_bvector.h (__WORD_BIT): Same.
	* include/bits/stl_tree.h (_S_rb_tree_red): Same.
	(_S_rb_tree_black): Same.
	* src/stl-inst.cc (__stl_threshold): Define.
	(__stl_chunk_size): Same.
	(__WORD_BIT): Same.
	(_S_rb_tree_red): Same.
	(_S_rb_tree_black): Same.

	* config/io/basic_file_libio.h (__basic_file): Add declarations.
	* include/bits/basic_file.h: Remove.
	* config/io/c_io_stdio.h: Remove _GLIBCPP_BASIC_FILE_ENCAPSULATION
	Declare generic types, specialization.
	* config/io/basic_file_stdio.cc: Definitions.
	* config/io/c_io_libio.h: Remove _GLIBCPP_BASIC_FILE_INHERITANCE.
	Declare generic types.
	* include/Makefile.am (bits_headers): Remove basic_file.h.
	(extra_target_headers): Change basic_file_model.h to basic_file.h.
	(stamp-target): Same.

	* include/bits/stl_alloc.h: Tweaks.
	* include/bits/localefwd.h: Same.

2002-02-11  Aaron W LaFramboise  <AWLaFramboise@aol.com>

	* include/bits/locale_facets.tcc (collate::do_hash): Fix.
	* testsuite/22_locale/collate_members_char.cc (test03): New test.
	* testsuite/22_locale/collate_members_wchar_t.cc (test03): Same.

2002-02-10  Phil Edwards  <pme@gcc.gnu.org>

	* include/bits/stl_algo.h (transform (both signatures), generate_n):
	Use __typeof__ in concept checks.

2002-02-10  Jonathan Wakely  <cow@compsoc.man.ac.uk>

	* include/bits/stl_algo.h (__median, for_each, find, find_if,
	adjacent_find, count, count_if, search, search_n, swap_ranges,
	transform, replace, replace_if, replace_copy, replace_copy_if,
	generate, generate_n, remove_copy, remove_copy_if, remove, remove_if,
	unique, unique_copy, reverse, reverse_copy):  Doxygenate.

2002-02-08  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/locale_facets.h
	(numpunct<_CharT>::_M_initialize_numpunct): Remove definition.
	(__timepunct<_CharT>::_M_initialize_timepunct): Same.
	(__timepunct<_CharT>::_M_put_helper): Same.
	(moneypunct<_CharT, _Intl>::_M_initialize_moneypunct): Same.

	* include/bits/fstream.tcc (filebuf::underflow): Remove
	__codecvt_type typedef.
	(filebuf::_M_convert_to_external): Same.

2002-02-08  Phil Edwards  <pme@gcc.gnu.org>

	* docs/doxygen/TODO:  Update.
	* docs/doxygen/doxygroups.cc:  Tweak __gnu_cxx description.
	* docs/doxygen/mainpage.html:  Add TODO list link.
	* docs/doxygen/user.cfg.in:  Add @doctodo hook.
	* docs/doxygen/tables.html:  New file, emoty structure only.

	* include/bits/stl_iterator.h:  Doxygenate just about everything.
	* include/bits/stl_iterator_base_funcs.h:  Ditto, clean up spaces.
	* include/bits/stl_iterator_base_types.h:  Add notes.

2002-02-07  Stephan Buys  <sbproxy@icon.co.za>

	* include/bits/stl_map.h:  Tweak doxygen markup.
	* include/bits/stl_multimap.h:  Doxygenate and remove extra spaces.
	* include/bits/stl_vector.h:  Likewise.

2002-02-07  Benjamin Kosnik  <bkoz@redhat.com>

	libstdc++/5286
	libstdc++/3860
	* include/std/std_fstream.h (filebuf::__file_type): Change to
	__basic_file<char>.
	(filebuf::_M_convert_to_external): Declare.
	* include/bits/fstream.tcc (filebuf::_M_convert_to_external): Define
	codecvt bits for wide streams.
	(filebuf::_M_really_overflow): Use it.
	(filebuf::underflow): Use codecvt.
	* config/locale/codecvt_specializations_ieee_1003.1-200x.h:
	(codecvt<__enc_traits>::do_out): Deal with partial.
	(codecvt<__enc_traits>::do_encoding): Return something useful.
	* src/codecvt.cc (codecvt<wchar_t>::do_encoding): Return sizeof
	wchar_t.
	* testsuite/22_locale/codecvt_members_unicode_char.cc (test01):
	Change expected encoding output.
	(test02): Same.
	* testsuite/22_locale/codecvt_members_wchar_t_char.cc (test01): Same.
	(test02): Same.

2002-02-07  Benjamin Kosnik  <bkoz@redhat.com>
	    Wolfgang Bangerth  <wolfgang.bangerth@iwr.uni-heidelberg.de>

	* include/bits/basic_ios.tcc (basic_ios::narrow): Add default value.
	(basic_ios::widen): Same.

2002-02-07  Paolo Carlini  <pcarlini@unitus.it>

	* testsuite/22_locale/money_get_members_char.cc:
	Add comment, tidy up.
	(test01): more "en_HK" tests (without showbase).
	* testsuite/22_locale/money_get_members_wchar_t.cc: Ditto.

2002-02-06  Loren Rittle <ljrittle@acm.org>

	* config/locale/c_locale_generic.cc: Do not trust
	_GLIBCPP_HAVE_STRTOF or _GLIBCPP_HAVE_STRTOLD as
	set by configure.

2002-02-06  Loren Rittle <ljrittle@acm.org>

	* acinclude.m4: Add C++ linkage check for strtof.
	* aclocal.m4: Rebuilt.
	* config.h.in: Rebuilt.
	* configure: Rebuilt.
	* config/locale/c_locale_generic.cc: Conditionally include
	<ieeefp.h>.  Improve handling and error checking of float
	and long double input for non-C99 configurations.

2002-02-06  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/locale_facets.tcc (money_get::do_get(string)):
	In case money_base::symbol deal properly with multi-char sign
	for patterns {X,Y,Z,symbol} and {X,Y,symbol,none}.
	* testsuite/22_locale/money_get_members_char.cc: Add test07.
	* testsuite/22_locale/money_get_members_wchar_t.cc: Add test07.

2002-02-05  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/locale_facets.tcc (money_get::do_get(string)):
	First construct a tentative returned string, then, only if the
	parsing succeeds, copy it into the string passed by reference.
	* testsuite/22_locale/money_get_members_char.cc: Add test06.
	* testsuite/22_locale/money_get_members_wchar_t.cc: Add test06.

2002-02-04  Phil Edwards  <pme@gcc.gnu.org>

	* docs/doxygen/TODO:  Impl-defined behavior now documented...
	* docs/html/17_intro/howto.html:  ...here.
	* docs/doxygen/mainpage.doxy:  Remove, rename...
	* docs/doxygen/mainpage.html:  ...to this.  Tweak HTML, add license.
	* docs/doxygen/style.css:  Add small text.
	* docs/doxygen/run_doxygen:  Adjust for new mainpage.
	* docs/doxygen/user.cfg.in:  Likewise.

2002-02-04  Stephan Buys  <sbproxy@icon.co.za>

	* include/bits/stl_map.h:  Initial doxygen markup.
	* include/std/std_fstream.h:  Initial doxygen markup.

2002-02-04  Paolo Carlini  <pcarlini@unitus.it>

	libstdc++/5579
	* include/bits/locale_facets.tcc (money_get::do_get(string)):
	Deal correctly with !(__io.flags() & ios_base::showbase)
	for case money_base::symbol.
	* testsuite/22_locale/money_get_members_char.cc: Add test05.
	* testsuite/22_locale/money_get_members_wchar_t.cc: Add test05.

2002-02-02  Paolo Carlini  <pcarlini@unitus.it>

	* testsuite/22_locale/operators.cc
	(gnu_collate::do_compare()): Add return statement to
	suppress "no return statement" warning.

2002-02-01  Paolo Carlini  <pcarlini@unitus.it>

	* testsuite/27_io/ostream_manip.cc: Enable test02.

2002-02-01  Phil Edwards  <pme@gcc.gnu.org>

	* docs/html/documentation.html:  Update for 3.0.96.
	* docs/html/faq/index.html:  Update for 3.0.96.
	* docs/html/faq/index.txt:  Regenerated.
	* docs/doxygen/TODO:  Update notes.
	* docs/html/17_intro/howto.html:  Initial impl-specific listing.

2002-01-31  Benjamin Kosnik  <bkoz@redhat.com>

	* config/locale/codecvt_specializations_ieee_1003.1-200x.h:
	Initialize all data members in copy ctor. Make ctors explicit.
	(__enc_traits::__enc_traits()): Default ctor does nothing.
	(__enc_traits::_M_init): Guard against multiple iconv_opens.
	* include/std/std_sstream.h (basic_stringbuf): Make data members
	protected.
	* include/std/std_fstream.h (basic_filebuf): Same.
	* include/std/std_streambuf.h: Tweak.
	* include/bits/streambuf.tcc: Same.
	* include/bits/sstream.tcc: Same.
	* include/bits/fstream.tcc: Same.

2002-01-31  Loren Rittle <ljrittle@acm.org>

	* testsuite/22_locale/codecvt_members_char_char.cc: Do not
	allow NULL argument to be passed to setenv().
	* testsuite/22_locale/codecvt_members_wchar_t_char.cc: Likewise.
	* testsuite/22_locale/collate_members_char.cc: Likewise.
	* testsuite/22_locale/collate_members_wchar_t.cc: Likewise.
	* testsuite/22_locale/ctype_members_char.cc: Likewise.
	* testsuite/22_locale/ctype_members_wchar_t.cc: Likewise.
	* testsuite/22_locale/messages_members_char.cc: Likewise.
	* testsuite/22_locale/money_get_members_char.cc: Likewise.
	* testsuite/22_locale/money_get_members_wchar_t.cc: Likewise.
	* testsuite/22_locale/money_put_members_char.cc: Likewise.
	* testsuite/22_locale/money_put_members_wchar_t.cc: Likewise.
	* testsuite/22_locale/moneypunct_members_char.cc: Likewise.
	* testsuite/22_locale/moneypunct_members_wchar_t.cc: Likewise.
	* testsuite/22_locale/num_get_members_char.cc: Likewise.
	* testsuite/22_locale/num_get_members_wchar_t.cc: Likewise.
	* testsuite/22_locale/num_put_members_char.cc: Likewise.
	* testsuite/22_locale/num_put_members_wchar_t.cc: Likewise.
	* testsuite/22_locale/numpunct_members_char.cc: Likewise.
	* testsuite/22_locale/numpunct_members_wchar_t.cc: Likewise.
	* testsuite/22_locale/time_get_members_char.cc: Likewise.
	* testsuite/22_locale/time_get_members_wchar_t.cc: Likewise.
	* testsuite/22_locale/time_put_members_char.cc: Likewise.
	* testsuite/22_locale/time_put_members_wchar_t.cc: Likewise.

2002-01-30  Benjamin Kosnik  <bkoz@redhat.com>

	* config/locale/c_locale_gnu.cc: Same errno fixes as generic.

	* ChangeLog-2001: Fix spelling errors...
	* docs/html/17_intro/RELEASE-NOTES: Update.
	* docs/html/17_intro/TODO: Update.
	* README (file): Update.

2002-01-30  Loren Rittle <ljrittle@acm.org>

	* config/locale/c_locale_generic.cc: Check errno for ERANGE
	instead of non-zero to aid portability.

2002-01-30  Peter Schmid  <schmid@snake.iap.physik.tu-darmstadt.de>

	* docs/html/22_locale/messages.html: Fix example code.

2002-01-30  Richard Henderson  <rth@redhat.com>

	* testsuite/27_io/ostream_inserter_arith.cc (test03_check): Break
	out from test03 and templatize.
	(test03): Use it.

2002-01-30  Paolo Carlini  <pcarlini@unitus.it>

	* config/locale/numpunct_members_gnu.cc
	(numpunct<char, wchar_t>::_M_initialize_numpunct()):
	Fix initialization of _M_grouping for locales which have
	_M_thousands_sep == '\0'(L'\0', respectively).
	* testsuite/22_locale/numpunct_byname.cc (test02): Add test.

2002-01-30  Paolo Carlini  <pcarlini@unitus.it>

	* testsuite/27_io/ostream_inserter_arith.cc (test03):
	Better fix for 32/64 bit architectures, avoiding the
	implicit assumption that CHAR_BIT == 8.

2002-01-28  Phil Edwards  <pme@gcc.gnu.org>

	* Makefile.am (doxygen, doxygen-maint, doxygen-man):  Tweak targets.
	* Makefile.in:  Regenerate.

	* docs/doxygen/run_doxygen:  Update, mostly for man pages.
	* docs/doxygen/Intro.3:  Update.
	* docs/doxygen/TODO:  Update.
	* docs/doxygen/doxygroups.cc:  Add namespace hook for __gnu_cxx.
	* docs/doxygen/mainpage.doxy:  Update.
	* docs/doxygen/user.cfg.in:  Update for header rename.  Also
	regenerate comments and variables with 1.2.12.
	* docs/doxygen/maint.cfg.in:  Remove file.

	* include/bits/stl_relops.h:  Doxygenate.
	* include/bits/stl_tempbuf.h (std::_Temporary_buffer):  Likewise.

	* include/c_std/std_cassert.h, include/c_std/std_cctype.h,
	include/c_std/std_cerrno.h, include/c_std/std_cfloat.h,
	include/c_std/std_ciso646.h, include/c_std/std_climits.h,
	include/c_std/std_clocale.h, include/c_std/std_cmath.h,
	include/c_std/std_csetjmp.h, include/c_std/std_csignal.h,
	include/c_std/std_cstdarg.h, include/c_std/std_cstddef.h,
	include/c_std/std_cstdio.h, include/c_std/std_cstdlib.h,
	include/c_std/std_cstring.h, include/c_std/std_ctime.h,
	include/c_std/std_cwchar.h, include/c_std/std_cwctype.h,
	include/ext/algorithm, include/ext/functional, include/ext/hash_map,
	include/ext/hash_set, include/ext/iterator, include/ext/memory,
	include/ext/numeric, include/ext/rb_tree, include/ext/rope,
	include/ext/ropeimpl.h, include/ext/slist, include/ext/stl_hash_fun.h,
	include/ext/stl_hashtable.h, include/ext/stl_rope.h,
	include/std/std_algorithm.h, include/std/std_bitset.h,
	include/std/std_complex.h, include/std/std_deque.h,
	include/std/std_fstream.h, include/std/std_functional.h,
	include/std/std_iomanip.h, include/std/std_ios.h,
	include/std/std_iosfwd.h, include/std/std_iostream.h,
	include/std/std_istream.h, include/std/std_iterator.h,
	include/std/std_limits.h, include/std/std_list.h,
	include/std/std_locale.h, include/std/std_map.h,
	include/std/std_memory.h, include/std/std_numeric.h,
	include/std/std_ostream.h, include/std/std_queue.h,
	include/std/std_set.h, include/std/std_sstream.h,
	include/std/std_stack.h, include/std/std_stdexcept.h,
	include/std/std_streambuf.h, include/std/std_string.h,
	include/std/std_utility.h, include/std/std_valarray.h,
	include/std/std_vector.h:  Add/correct @file doxygen hook.

	* include/ext/memory:  Doxygenate most of rest of file.
	* libsupc++/exception:  Doxygen output formatting.
	* libsupc++/new:  Say which header it is.

	* testsuite/lib/libstdc++-v3-dg.exp:  Fix spacing.
	* docs/html/19_diagnostics/howto.html:  Describe concept-checks switch.
	* docs/html/23_containers/howto.html:  Describe O(n) list::size().
	* docs/html/27_io/howto.html:  Also link to Langer and Kreft text.

2002-01-28  Paolo Carlini  <pcarlini@unitus.it>
	    Charles Leggett <CGLeggett@lbl.gov>

	* testsuite/27_io/filebuf_members.cc (test_05): Add test.

2002-01-28  Paolo Carlini  <pcarlini@unitus.it>

	* testsuite/27_io/ostream_inserter_arith.cc (test03):
	Fix to deal correctly with both 32 bit and 64 bit architectures

2002-01-25  Loren Rittle <ljrittle@acm.org>

	* testsuite/thread/pthread1.cc: Use one condition variable
	per predicate instead of tricky use of one condition variable.

2002-01-25  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/fstream.tcc (filebuf::close()): Fix close for input
	streams.
	(filebuf::_M_really_overflow): Match indeterminate and sync calls.
	* testsuite/27_io/filebuf.cc: Compile only.
	* testsuite/27_io/filebuf_members.cc: Move tests to here.
	* testsuite/27_io/filebuf_virtuals.cc: And here.
	Revert sungetc, sync changes for expected values.
	* testsuite/27_io/filebuf-*: Move to...
	* testsuite/27_io/filebuf_virtuals-*: ...here.
	* testsuite/27_io/istream.cc: Compile only, activate.
	* testsuite/27_io/ostream.cc: Same.
	* testsuite/27_io/iostream.cc: New.
	* testsuite/27_io/iostream_members.cc: New.

2002-01-25  David Billinghurst <David.Billinghurst@riotinto.com>

	* testsuite/thread/pthread1.cc: Enable on cygwin.
	* testsuite/thread/pthread2.cc: Likewise.
	* testsuite/thread/pthread3.cc: Likewise.
	* testsuite/thread/pthread4.cc: Likewise.
	* testsuite/thread/pthread5.cc: Likewise.
	* testsuite/thread/pthread6.cc: Likewise.

2002-01-24  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/27_io/ostream_inserter_char.cc (test07): New.

2002-01-24  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/basic_ios.h (basic_ios::_M_check_facet): Make
	const, tweak.
	(basic_ios::fill(char_type)): Use fill().
	* include/bits/basic_ios.tcc (basic_ios::widen): Use _M_check_facet.
	(basic_ios::narrow): Same.
	(basic_ios::_M_cache_facets): Explicitly set cached facets to zero
	if they are invalid.
	(basic_ios::init): Comment.
	* testsuite/27_io/ios_init.cc (test02): New.

2002-01-24  Phil Edwards  <pme@gcc.gnu.org>

	* include/bits/stl_tempbuf.h (_Temporary_buffer):  Add doxygen hook.
	* include/bits/stl_algo.h:  Include stl_tempbuf.h.
	* include/ext/memory:  Do not include stl_tempbuf.h.
	(temporary_buffer):  Add doxygen hook.
	(__get_temporary_buffer, get_temporary_buffer,
	return_temporary_buffer):  Move back to std:: header...
	* include/std/std_memory.h:  ...here.  Do not include stl_tempbuf.h.
	* include/ext/rope:  Do not include stl_tempbuf.h.
	* include/ext/stl_hashtable.h:  Likewise.
	* include/std/std_algorithm.h:  Likewise.
	* testsuite/20_util/temporary_buffer.cc:  New file.

2002-01-24  andrew@andypo.net
	    (tweaks, test and commit by Loren J. Rittle  <ljrittle@acm.org>)

	libstdc++/5432
	* include/bits/ios_base.h: Use _Atomic_word for reference counts.
	* include/bits/localefwd.h: Likewise.
	Also use for std::locale::id::_S_highwater.
	* src/ios.cc (ios_base::xalloc): Use _Atomic_word.
	* src/locale.cc: Support new usage of _Atomic_word.
	(std::locale::classic): Guard entire function against reentry.
	* src/localename.cc: Support new usage of _Atomic_word.

2002-01-24   Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/22_locale/num_put_members_wchar_t.cc (test03): Use
	_GLIBCPP_HAVE_SETENV.
	* testsuite/22_locale/codecvt_members_wchar_t_char.cc (test02): Same.
	* testsuite/22_locale/collate_members_char.cc (test02): Same.
	* testsuite/22_locale/ctype_members_char.cc (test03): Same.
	* testsuite/22_locale/ctype_members_wchar_t.cc (test03): Same.
	* testsuite/22_locale/messages_members_char.cc (test02): Same.
	* testsuite/22_locale/moneypunct_members_char.cc (test02): Same.
	* testsuite/22_locale/moneypunct_members_wchar_t.cc (test02): Same.
	* testsuite/22_locale/money_put_members_char.cc (test04): Same.
	* testsuite/22_locale/money_put_members_wchar_t.cc (test04): Same.
	* testsuite/22_locale/num_get_members_char.cc (test03): Same.
	* testsuite/22_locale/num_get_members_wchar_t.cc (test03): Same.
	* testsuite/22_locale/numpunct_members_char.cc (test02): Same.
	* testsuite/22_locale/numpunct_members_wchar_t.cc (test02): Same.
	* testsuite/22_locale/time_get_members_char.cc (test07): Same.
	* testsuite/22_locale/time_get_members_wchar_t.cc (test07): Same.
	* testsuite/22_locale/time_put_members_char.cc (test03): Same.
	* testsuite/22_locale/time_put_members_wchar_t.cc (test03): Same.
	* testsuite/22_locale/num_put_members_char.cc (test03): Same.
	* acinclude.m4 (GLIBCPP_CONFIGURE_TESTSUITE): Check for setenv.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* config.h.in: Regenerate.

2002-01-23  Loren Rittle <ljrittle@acm.org>

	* testsuite/thread/pthread1.cc: New test.
	* testsuite/thread/pthread2.cc: New test adapted from libstdc++/5347.
	* testsuite/thread/pthread3.cc: Likewise.
	* testsuite/thread/pthread4.cc: New test adapted from
	http://gcc.gnu.org/ml/gcc-bugs/2002-01/msg00679.html
	* testsuite/thread/pthread5.cc: New test adapted from libstdc++/5464.
	* testsuite/thread/pthread6.cc: New test adapted from libstdc++/5444.

2002-01-23  Richard Henderson  <rth@redhat.com>

	PR libstdc++/5198
	* config/cpu/m68k/bits/atomicity.h (__exchange_and_add): Only use
	CAS on the cpu variants that support it.  Add versions that use
	TAS and that disable interrupts.
	(__atomic_add): Use __exchange_and_add to guarantee atomicity.

2002-01-23  Matt Kraai  <kraai@alumni.cmu.edu>

	* include/bits/locale_facets.tcc: Remove old comments.

2002-01-23  Andreas Tobler  <toa@pop.agri.ch>

	* include/bits/locale_facets.tcc (__convert_to_v): Change template
	parameter to _Tv.
	(__convert_from_v): Same.

2002-01-23  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/locale_facets.h (num_get::_M_extract_int): Change
	prototype.
	* include/bits/locale_facets.tcc (num_get::_M_extract_int): Remove
	__max_digits checks, adjust arguments.
	(num_get::do_get(*)): Changeup.

2002-01-23  Loren Rittle <ljrittle@acm.org>

	* config/locale/c_locale_generic.cc: Fix typename usage.

2002-01-22  Benjamin Kosnik  <bkoz@redhat.com>

	* config/locale/c_locale_generic.cc: Fix.

2002-01-22  Benjamin Kosnik  <bkoz@redhat.com>

	* docs/html/22_locale/messages.html: Remove angle brackets.
	* docs/html/17_intro/TODO: Add.

2002-01-22  Paolo Carlini  <pcarlini@unitus.it>

	* testsuite/27_io/ios_manip_basefield.cc: Enable test02.
	* testsuite/27_io/ostream_inserter_arith.cc: Enable test03.
	* testsuite/27_io/ostream_inserter_char.cc: Enable test01.
	* testsuite/27_io/ostream_inserter_other.cc: Enable test04.

2002-01-22  Benjamin Kosnik  <bkoz@redhat.com>

	Audit for LANG independence.
	* include/bits/localefwd.h: Tweaks.
	* include/bits/locale_facets.tcc (money_get::do_get(long double)):
	Use __convert_to_v.
	(time_get::do_get_year): Same.
	(__convert_from_v): Add.
	(num_put::_M_convert_float): Use.
	(num_put::_M_convert_int): Same.
	(money_put::do_put): Same.

	* src/locale-inst.cc: Add instantiations for __convert_from_v.
	* config/locale/time_members_gnu.cc: Cleanup setlocale usage.
	* config/locale/time_members_generic.cc:
	* config/locale/messages_members_gnu.cc: Same.
	* config/locale/messages_members_gnu.h: Same.

	* testsuite/22_locale/codecvt_members_wchar_t_char.cc (test02): New.
	* testsuite/22_locale/codecvt_members_char_char.cc (test02): New.
	* testsuite/22_locale/collate_members_wchar_t.cc (test02): New.
	* testsuite/22_locale/collate_members_char.cc (test02): New.
	* testsuite/22_locale/ctype_members_wchar_t.cc (test03): New.
	* testsuite/22_locale/ctype_members_char.cc (test03): New.
	* testsuite/22_locale/messages_members_char.cc (test02): New.
	* testsuite/22_locale/moneypunct_members_wchar_t.cc (test02): New.
	* testsuite/22_locale/moneypunct_members_char.cc (test02): New.
	* testsuite/22_locale/money_get_members_wchar_t.cc (test04): New.
	* testsuite/22_locale/money_get_members_char.cc (test04): New.
	* testsuite/22_locale/money_put_members_wchar_t.cc (test04): New.
	* testsuite/22_locale/money_put_members_char.cc (test04): New.
	* testsuite/22_locale/numpunct_members_wchar_t.cc (test02): New.
	* testsuite/22_locale/numpunct_members_char.cc (test02): New.
	* testsuite/22_locale/time_put_members_wchar_t.cc (test03): New.
	* testsuite/22_locale/time_put_members_char.cc (test03): New.
	* testsuite/22_locale/time_get_members_wchar_t.cc (test07): New.
	* testsuite/22_locale/time_get_members_char.cc (test07): New.
	* testsuite/22_locale/num_get_members_wchar_t.cc (test03): New.
	* testsuite/22_locale/num_get_members_char.cc (test03): New.
	* testsuite/22_locale/num_put_members_wchar_t.cc (test03): New.
	* testsuite/22_locale/num_put_members_char.cc (test03): New.

	* testsuite/22_locale/time_get_members_char.cc: Fixups for global
	locale issues.
	* testsuite/22_locale/time_get_members_char.cc: Same.

2002-01-22  Benjamin Kosnik  <bkoz@redhat.com>

	libstdc++/5280
	* include/bits/localefwd.h: Tweak comments.
	* include/bits/locale_facets.h (__convert_to_v): Add.
	* include/bits/locale_facets.tcc (num_get::do_get(double)): Use it.
	(num_get::do_get(float)): Same.
	(num_get::do_get(long double)): Same.
	(num_get::do_get(bool)): Same.
	(num_get::do_get(long)): Same.
	(num_get::do_get(long long)): Same.
	(num_get::do_get(unsigned int)): Same.
	(num_get::do_get(unsigned short)): Same.
	(num_get::do_get(unsigned long)): Same.
	(num_get::do_get(unsigned long long)): Same.
	* config/locale/c_locale_gnu.cc (__convert_to_v): Specialize.
	* config/locale/c_locale_generic.cc: Same.

2002-01-22  Loren Rittle <ljrittle@acm.org>

	* include/Makefile.am (c_base_builddir): Remove redundant slash.
	(std_builddir): Likewise.
	(std_headers_rename): Fix cut-n-paste typo.
	(install-data-local): Concat path per element instead of once to
	first element of list.
	* include/Makefile.in: Rebuilt.

2002-01-22  Benjamin Kosnik  <bkoz@redhat.com>

	* config/os/aix/bits/ctype_noninline.h: Fix formatting.
	* config/os/bsd/netbsd/bits/ctype_noninline.h: Fix typo.
	* config/os/bsd/freebsd/bits/ctype_noninline.h: Fix formatting.

2002-01-20  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/locale_facets.h (ctype<char>::classic_table):
	Remove definition.
	(ctype<char>::_S_ctable): Remove.
	* config/os/gnu-linux/bits/ctype_noninline.h
	(ctype<char>::_S_table): Remove definition.
	(ctype<char>::classic_table): Define.
	(ctype<char>::ctype): Replace _S_ctable with classic_table().
	* config/os/aix/bits/ctype_noninline.h: Same.
	* config/os/bsd/freebsd/bits/ctype_noninline.h: Same.
	* config/os/bsd/netbsd/bits/ctype_noninline.h: Same.
	* config/os/djgpp/bits/ctype_noninline.h: Same.
	* config/os/generic/bits/ctype_noninline.h: Same.
	* config/os/gnu-linux/bits/ctype_noninline.h: Same.
	* config/os/hpux/bits/ctype_noninline.h: Same.
	* config/os/irix/irix5.2/bits/ctype_noninline.h: Same.
	* config/os/irix/irix6.5/bits/ctype_noninline.h: Same.
	* config/os/mingw32/bits/ctype_noninline.h: Same.
	* config/os/newlib/bits/ctype_noninline.h: Same.
	* config/os/solaris/solaris2.5/bits/ctype_noninline.h: Same.
	* config/os/solaris/solaris2.6/bits/ctype_noninline.h: Same.
	* config/os/solaris/solaris2.7/bits/ctype_noninline.h: Same.

2002-01-20  Danny Smith  <dannysmith@users.sourceforge.net>

	* config/os/mingw32/bits/ctype_noninline.h: Declare _ctype instead
	of _pctype. Use to define _S_ctable.  Add definition for alternate
	ctor.  Initialise _M_ctable to _S_ctable in ctors.
	(do_toupper, do_tolower): Use inline code appropriate for C-locale
	rather than ::toupper, ::tolower.

2002-01-18  Loren Rittle <ljrittle@acm.org>

	* testsuite/18_support/numeric_limits.cc (test_extrema<long double>):
	Add specialization for FreeBSD systems only to avoid losing test
	only due to extra precision unmentioned in system headers.

2002-01-18  David Billinghurst <David.Billinghurst@riotinto.com>

	* config/os/irix/irix6.5/bits/ctype_noninline.h: Fix typo

2002-01-17  Nick Clifton  <nickc@cambridge.redhat.com>

	* testsuite/testsuite_hooks.h: Fix comment typo.  Memory
	limiting is only attempted if _GLIBCPP_MEM_LIMIT is defined.

2002-01-17  Peter Schmid  <schmid@snake.iap.physik.tu-darmstadt.de>

	* testsuite/22_locale/ctor_copy_dtor.cc: Remove check.

2002-01-17  David Edelsohn  <edelsohn@gnu.org>

	* configure.target: Define OPT_LDFLAGS for AIX case.

2002-01-17  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>

	* include/std/std_limits.h (__glibcpp_float_has_quiet_NaN,
	__glibcpp_double_has_quiet_NaN): Correct mispelling.

2002-01-17  Andreas Tobler  <toa@pop.agri.ch>

	* config/os/solaris/solaris2.6/bits/ctype_noninline.h: Fix.

2002-01-16  David Edelsohn  <dje@watson.ibm.com>

	* acinclude.m4 (GLIBCPP_CHECK_LINKER_FEATURES): Do not clear
	SECTION_LDFLAGS and OPT_LDFLAGS.  Fix ac_sectionLDflags type.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

2002-01-16  Benjamin Kosnik  <bkoz@redhat.com>

	* include/Makefile.am (c_base_headers_rename): New.
	(c_base_headers_extra): New.
	(stamp-c_base): Modify.
	(install-data-local): Use both.
	* include/Makefile.in: Regenerate.
	* include/c/[cctype ciso646 cmath cstdarg cstdlib cerrno climits
	csetjmp cstddef cstring cwchar cassert cfloat clocale csignal
	cstdio ctime cwctype]: Move to..
	* include/c/std_*: Here.
	* include/c_std/[cctype ciso646 cmath cstdarg cstdlib cerrno climits
	csetjmp cstddef cstring cwchar cassert cfloat clocale csignal
	cstdio ctime cwctype]: Move to..
	* include/c_std/std_*: Here.

	Alexandre Oliva  <aoliva@redhat.com>
	* include/Makefile.am (.PRECIOUS): Add rule.
	* include/Makefile.in: Regenerate.

2002-01-16  Benjamin Kosnik  <bkoz@redhat.com>
	    Peter Schmid  <schmid@snake.iap.physik.tu-darmstadt.de>

	* include/bits/stl_iterator.h (reverse_iterator::_M_current):
	Deuglify, should be current.
	(back_insert_iterator::_M_container): Deuglify, should be container.
	(front_insert_iterator::_M_container): Same.
	(insert_iterator::_M_container): Same.
	* testsuite/24_iterators/reverse_iterator.cc: Add check.
	* testsuite/24_iterators/back_insert_iterator.cc: Add check.
	* testsuite/24_iterators/front_insert_iterator.cc: Same.
	* testsuite/24_iterators/insert_iterator.cc: Same.

2002-01-16  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/locale_facets.h (ctype<char>::classic_table): Make
	static.
	(ctype<char>::_M_ctable): Make static, change name to _S_ctable.
	* config/os/gnu-linux/bits/ctype_noninline.h: Define _S_ctable.
	* config/os/solaris/solaris2.7/bits/ctype_noninline.h: Same.
	* config/os/solaris/solaris2.6/bits/ctype_noninline.h: Same.
	* config/os/solaris/solaris2.5/bits/ctype_noninline.h: Same.
	* config/os/newlib/bits/ctype_noninline.h: Same.
	* config/os/irix/irix6.5/bits/ctype_noninline.h: Same.
	* config/os/irix/irix5.2/bits/ctype_noninline.h: Same.
	* config/os/hpux/bits/ctype_noninline.h: Same.
	* config/os/djgpp/bits/ctype_noninline.h: Same.
	* config/os/bsd/netbsd/bits/ctype_noninline.h: Same.
	* config/os/bsd/freebsd/bits/ctype_noninline.h: Same.
	* config/os/aix/bits/ctype_noninline.h: Same.

	Testcase by Dietmar Kühl via Peter Schmid
	* testsuite/22_locale/ctype_members_char.cc (char>): Add test for
	classic_table().

2002-01-16  Benjamin Kosnik  <bkoz@redhat.com>

	* libmath/signbitl.c: Copyright years as list, not range.
	* libmath/Makefile.am: Same.
	* libmath/Makefie.in: Regenerate.
	* libmath/signbit.c: Same.
	* libmath/nan.c: Same.
	* libmath/copysignf.c: Same.
	* libmath/signbitf.c: Same.
	* testsuite/22_locale/money_get_members_char.cc: Same.
	* testsuite/22_locale/money_get_members_wchar_t.cc: Same.
	* testsuite/22_locale/money_put_members_char.cc: Same.
	* testsuite/22_locale/money_put_members_wchar_t.cc: Same.
	* testsuite/22_locale/time_get_members_char.cc: Same.
	* testsuite/22_locale/time_get_members_wchar_t.cc: Same.
	* testsuite/22_locale/time_put_members_char.cc: Same.
	* testsuite/22_locale/time_put_members_wchar_t.cc: Same.
	* testsuite/21_strings/nonmember.cc: Same.
	* testsuite/21_strings/compare.cc: Same.
	* testsuite/27_io/stringstream.cc: Same.
	* testsuite/27_io/stringbuf.cc: Same.
	* testsuite/27_io/filebuf.cc: Same.
	* testsuite/27_io/ios_manip_basefield.cc: Same.
	* testsuite/27_io/ios_manip_fmtflags.cc: Same.
	* include/bits/cpp_type_traits.h: Same.
	* include/bits/generic_shadow.h: Same.
	* include/bits/gslice_array.h: Same.
	* include/bits/gslice.h: Same.
	* include/bits/indirect_array.h: Same.
	* include/bits/slice_array.h: Same.
	* include/bits/sstream.tcc: Same.
	* include/bits/streambuf_iterator.h: Same.
	* include/bits/valarray_array.tcc: Same.
	* include/bits/valarray_meta.h: Same.
	* include/bits/valarray_array.h: Same.
	* config/os/mingw32/bits/ctype_noninline.h: Same.
	* config/os/mingw32/bits/ctype_base.h: Same.
	* config/os/hpux/bits/ctype_noninline.h: Same.
	* config/os/hpux/bits/ctype_base.h: Same.
	* config/os/gnu-linux/bits/ctype_noninline.h: Same.
	* config/os/gnu-linux/bits/ctype_base.h: Same.
	* config/os/generic/bits/ctype_noninline.h: Same.
	* config/os/generic/bits/ctype_base.h: Same.

	* libsupc++/tinfo.h: Tweaks.

2002-01-15  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/22_locale/num_put_members_wchar_t.cc (test02): Same.
	* testsuite/22_locale/num_put_members_char.cc (test01): Tweak.
	* testsuite/22_locale/ctype_members_char.cc: Tweak.

2002-01-15  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/locale_facets.tcc (num_put::do_put(bool): Fix.
	(num_put::do_put(void*)): Fix.
	* testsuite/22_locale/num_put_members_char.cc (test02): Add.
	* testsuite/22_locale/num_put_members_wchar_t.cc (test02): Add.
	* testsuite/22_locale/num_get_members_char.cc (test02): Add
	long double, void, bool types.
	* testsuite/22_locale/num_get_members_wchar_t.cc (test02): Add.

2002-01-15  Benjamin Kosnik  <bkoz@redhat.com>
	    Alexandre Oliva  <aoliva@redhat.com>

	* libmath/Makefile.am (LINK): Add --tag CC.
	* libmath/Makefile.in: Regenerate.

2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* config/os/hpux/bits/ctype_noninline.h: Use __SB_masks for address
	of character to attribute mapping table.

2002-01-15  David Billinghurst <David.Billinghurst@riotinto.com>

	* testsuite/26_numerics/c99_classification_macros_c.cc
	Remove dg-error and dg-excess-errors comments.

2002-01-14  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/locale_facets.tcc (time_put::put): Correct output
	iterator positions.
	* testsuite/22_locale/time_put_members_char.cc (test02): Add.
	* testsuite/22_locale/time_put_members_wchar_t.cc (test02): Add.
	* testsuite/22_locale/time_get_members_wchar_t.cc (test06): Add.
	* testsuite/22_locale/time_get_members_char.cc (test06): Add.

2002-01-14  Craig Rodrigues  <rodrigc@gcc.gnu.org>

	* docs/html/17_intro/porting-howto.xml: Update filebuf section.

2002-01-14  Paolo Carlini  <pcarlini@unitus.it>
	    Nathan Myers  <ncm@cantrip.org>

	* include/bits/basic_string.h
	(replace(__pos, __n1, __s, __n2)): Optimize by avoiding
	temporaries (i.e., call _M_replace_safe) when possible.
	(replace(__pos, __n, __str)): Call replace(__pos, __n1, __s, __n2).
	(replace(__pos, __n1, __s)): Call replace(__pos, __n1, __s , __n2).
	(replace(__i1, __i2, __str)): Call replace(__i1, __i2, __s, __n).
	(replace(__i1, __i2, __s)): Call replace(__i1, __i2, __s, __n).
	(replace(__i1, __i2, __s, __n)): Call replace(__pos1, __n1, __s, __n2).
	* include/bits/basic_string.tcc
	(replace(__pos1, __n1, __str, __pos2, __n2)): Call
	replace(__pos, __n1, __s, __n2).
	* testsuite/21_strings/replace.cc (test03): New testcases.

	* include/bits/basic_string.h (insert(__pos, __s, __n)):
	Adjust comparison wrt overflow.

2002-01-12  Benjamin Kosnik  <bkoz@redhat.com>

	* include/Makefile.am (std_headers_rename): New variable.
	(install-data-local): Use it.
	* include/Makefile.in: Regenerate.

2002-01-12  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/locale_facets.tcc (money_put::do_put(string):
	Correct output iterator value.
	* testsuite/22_locale/money_put_members_char.cc (test03): Add.
	* testsuite/22_locale/money_put_members_wchar_t.cc: Same.

2002-01-11  Phil Edwards  <pme@gcc.gnu.org>

	* include/Makefile.am, include/Makefile.in (stamp-std):  Fix typo from
	previous commit.

2002-01-11  Phil Edwards  <pme@gcc.gnu.org>

	* include/Makefile.am (std_headers):  Update list with new names.
	(stamp-std):  Link to standardized name.
	* include/Makefile.in:  Regenerate.

	* include/std/algorithm, include/std/bitset, include/std/complex,
	include/std/deque, include/std/fstream, include/std/functional,
	include/std/iomanip, include/std/ios, include/std/iosfwd,
	include/std/iostream, include/std/istream, include/std/iterator,
	include/std/limits, include/std/list, include/std/locale,
	include/std/map, include/std/memory, include/std/numeric,
	include/std/ostream, include/std/queue, include/std/set,
	include/std/sstream, include/std/stack, include/std/stdexcept,
	include/std/streambuf, include/std/string, include/std/utility,
	include/std/valarray, include/std/vector:  Rename to...

	* include/std/std_algorithm.h, include/std/std_bitset.h,
	include/std/std_complex.h, include/std/std_deque.h,
	include/std/std_fstream.h, include/std/std_functional.h,
	include/std/std_iomanip.h, include/std/std_ios.h,
	include/std/std_iosfwd.h, include/std/std_iostream.h,
	include/std/std_istream.h, include/std/std_iterator.h,
	include/std/std_limits.h, include/std/std_list.h,
	include/std/std_locale.h, include/std/std_map.h,
	include/std/std_memory.h, include/std/std_numeric.h,
	include/std/std_ostream.h, include/std/std_queue.h,
	include/std/std_set.h, include/std/std_sstream.h,
	include/std/std_stack.h, include/std/std_stdexcept.h,
	include/std/std_streambuf.h, include/std/std_string.h,
	include/std/std_utility.h, include/std/std_valarray.h,
	include/std/std_vector.h:  ...this.

2002-01-11  Loren Rittle <ljrittle@acm.org>

	* include/Makefile.am (extra_target_headers): New list of all
	target files built with ad hoc naming rules.
	(stamp-*): Handle LN_S failure in manner portable across make
	implementations.
	(install-data-local): Install header files from human-maintained
	file lists and directory components instead of non-robust find.
	* include/Makefile.in: Rebuilt.

2002-01-11  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/locale_facets.tcc (money_get::do_get(string)):
	Check for zero-length negative sign before adding it to output
	string.
	(money_get::do_get(long double)): Return beg.
	* testsuite/22_locale/money_get_members_char.cc (test02): Add
	iterator checks.
	* testsuite/22_locale/money_get_members_wchar_t.cc: Same.

2002-01-10  David Seymour  <seymour_dj@yahoo.com>

	libstdc++/5331
	* include/bits/locale_facets.h (num_get<>): Return advanced iterator
	for _M_extract_float and _M_extract_int
	* include/bits/locale_facets.tcc (num_get<>::_M_extract_float)
	(num_get<>::_M_extract_int): Likewise, all callers changed
	* testsuite/22_locale/num_get_members_char.cc: Testcase

2002-01-09  Paolo Carlini <pcarlini@unitus.it>

	* libsupc++/exception (bad_exception): Add comment.
	* libsupc++/new (bad_alloc): Same.
	* libsupc++/typeinfo (bad_cast, bad_typeid): Same.

2002-01-09  Paolo Carlini <pcarlini@unitus.it>

	libstdc++/3150: revert 2001-11-30 commit. DR266 only means
	that the destructors should be removed from the descriptions
	in the standard: writing them explicitly allows the vtable
	heuristic to work. For additional information see:
	http://gcc.gnu.org/ml/libstdc++/2002-01/msg00090.html
	http://gcc.gnu.org/ml/libstdc++/2002-01/msg00110.html
	http://gcc.gnu.org/ml/libstdc++/2002-01/msg00155.html
	* libsupc++/exception (bad_exception::~bad_exception()):
	Reintroduce declaration.
	* libsupc++/new (bad_alloc::~bad_alloc()): Same.
	* libsupc++/typeinfo (bad_cast::~bad_cast()): Same.
	(bad_typeid::~bad_typeid()): Same.
	* libsupc++/eh_exception.cc (bad_exception::~bad_exception()):
	Reintroduce definition.
	* libsupc++/new_handler.cc (bad_alloc::~bad_alloc()): Same.
	* libsupc++/tinfo.cc (bad_cast::~bad_cast()): Same.
	(bad_typeid::~bad_typeid()): Same.

2002-01-09  Benjamin Kosnik  <bkoz@redhat.com>

	* include/Makefile.am (c_base_srcdir): Remove duplicate '/'.
	* include/Makefile.in: Regenerate.

2002-01-09  Bo Thorsen  <bo@suse.co.uk>

	* config/cpu/x86-64/bits/cpu_limits.h (__glibcpp_long_bits): Add
	definition.

2002-01-08  Benjamin Kosnik  <bkoz@redhat.com>

	libstdc++/2913
	libstdc++/4879
	* include/bits/fstream.tcc (filebuf::_M_really_overflow): Test
	return value of _M_file->sync().
	(filebuf::showmanyc): Check for is_open.
	* include/std/fstream (filebuf::sync): Tweak.
	* testsuite/27_io/filebuf.cc: Tweak.

2002-01-08  John Fardo  <jfardo@laurelnetworks.com>
	    Brad Garcia  <garsh@attbi.com>

	* testsuite/27_io/filebuf_members.cc: Add test.

2002-01-07  Benjamin Kosnik  <bkoz@redhat.com>
 	    Craig Rodrigues  <rodrigc@mediaone.net>

	libstdc++/5174
	* po/Makefile.am (mkinstalldirs): Add.
	* po/Makefile.in: Regenerate.

2002-01-07  David Billinghurst  <David.Billinghurst@riotinto.com>

	* testsuite_flags.in: Add -fmessage-length=0 to CXXFLAGS *
	testsuite/lib/prune.exp: Delete lines ":In function ..."  from
	compiler output.
	* testsuite/23_containers/map_operators.cc: Remove
	dg-excess-errors comment.
	* testsuite/23_containers/set_operators.cc: Likewise.

2002-01-06  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/stl_function.h:  Remove two lines of comments;
	adjust copyright years.

2002-01-04  Benjamin  Kosnik  <bkoz@redhat.com>

	* include/Makefile.am (std_headers): Remove cXXX from list.
	(c_base_srcdir): No bits subdirectory.
	(c_base_builddir): Same.
	(c_base_headers): Adjust names, add ciso646.
	(bits_headers): Remove std_xxx.h headers.
	* include/Makefile.in: Regenerate.

	* include/ext/iterator: Adjust includes.
	* include/ext/ropeimpl.h: Same.
	* include/ext/stl_hash_fun.h: Same.
	* include/ext/algorithm: Same.

	* include/backward/bvector.h: Adjust includes.
	* include/backward/vector.h: Same.
	* include/backward/strstream: Same.
	* include/backward/streambuf.h: Same.
	* include/backward/stack.h: Same.
	* include/backward/set.h: Same.
	* include/backward/queue.h: Same.
	* include/backward/multiset.h: Same.
	* include/backward/multimap.h: Same.
	* include/backward/map.h: Same.
	* include/backward/list.h: Same.
	* include/backward/iterator.h: Same.
	* include/backward/iostream.h: Same.
	* include/backward/iomanip.h: Same.
	* include/backward/fstream.h: Same.
	* include/backward/deque.h: Same.
	* include/backward/complex.h: Same.

	* include/bits/std_algorithm.h: Move to...
	* include/std/algorithm: ...here.
	* include/bits/std_iosfwd.h, std_locale.h, std_stack.h,
	std_bitset.h, std_ios.h, std_map.h, std_stdexcept.h,
	std_complex.h, std_iostream.h, std_memory.h, std_streambuf.h,
	std_deque.h, std_istream.h, std_numeric.h, std_string.h,
	std_fstream.h, std_ostream.h, std_utility.h, std_iterator.h,
	std_queue.h, std_valarray.h, std_functional.h, std_limits.h,
	std_set.h, std_vector.h, std_iomanip.h, std_list.h, std_sstream.h:
	Same.

	* include/c_std/bits/std_cassert.h: Move to...
	* include/c_std/cassert: Here.
	* include/c_std/std_cctype.h, std_cerrno.h, std_cfloat.h,
	std_climits.h, std_clocale.h, std_cmath.h, std_csetjmp.h,
	std_csignal.h, std_cstdarg.h, std_cstddef.h, std_cstdio.h,
	std_cstdlib.h, std_cstring.h, std_ctime.h, std_cwchar.h,
	std_cwctype.h: Same.
	* include/c_std/cmath: Adjust cmath.tcc include.
	* include/c_std/cstdlib: Adjust includes.
	* include/c_std/cwchar: Same.
	* include/c_std/ctime: Same.
	* include/c_std/cstring: Same.
	* include/c_std/cstdio: Same.
	* include/c_std/bits: Remove directory.

	* include/c/bits/std_cassert.h: Move to...
	* include/c/cassert: Here.
	* include/c/std_cctype.h, std_cerrno.h, std_cfloat.h,
	std_climits.h, std_clocale.h, std_cmath.h, std_csetjmp.h,
	std_csignal.h, std_cstdarg.h, std_cstddef.h, std_cstdio.h,
	std_cstdlib.h, std_cstring.h, std_ctime.h, std_cwchar.h,
	std_cwctype.h: Same.
	* include/c/bits: Remove directory.

	* include/std/cwctype: Remove.
	* include/std/cwchar: Remove.
	* include/std/ctime: Remove.
	* include/std/cstring: Remove.
	* include/std/cstdlib: Remove.
	* include/std/cstdio: Remove.
	* include/std/cstddef: Remove.
	* include/std/cstdarg: Remove.
	* include/std/csignal: Remove.
	* include/std/csetjmp: Remove.
	* include/std/cmath: Remove.
	* include/std/clocale: Remove.
	* include/std/climits: Remove.
	* include/std/ciso646: Remove.
	* include/std/cfloat: Remove.
	* include/std/cerrno: Remove.
	* include/std/cctype: Remove.
	* include/std/cassert: Remove.

	* include/bits/fpos.h: Adjust includes, removing <bits/std_xxx.h>
	files and subsituting <xxx>.
	* include/bits/valarray_array.h: Same.
	* include/bits/stl_uninitialized.h: Same.
	* include/bits/stl_alloc.h: Same.
	* include/bits/stl_algobase.h: Same.
	* include/bits/sstream.tcc: Same.
	* include/bits/pthread_allocimpl.h: Same.
	* include/bits/ostream.tcc: Same.
	* include/bits/localefwd.h: Same.
	* include/bits/locale_facets.tcc: Same.
	* include/bits/locale_facets.h: Same.
	* include/bits/istream.tcc: Same.
	* include/bits/char_traits.h: Same.
	* include/bits/boost_concept_check.h: Same.
	* include/bits/basic_file.h: Same.
	* include/std/bitset: Same.
	* include/std/complex: Same.
	* include/std/fstream: Same.
	* include/std/functional: Same.
	* include/std/ios: Same.
	* include/std/iostream: Same.
	* include/std/ostream: Same.
	* include/std/sstream: Same.
	* include/std/streambuf: Same.
	* include/std/string: Same.
	* include/std/iterator: Same.
	* include/std/valarray: Same.

	* src/ios.cc: Adjust includes.
	* src/valarray-inst.cc: Same.
	* src/string-inst.cc: Same.
	* src/stl-inst.cc: Same.
	* src/stdexcept.cc: Same.
	* src/misc-inst.cc: Same.
	* src/localename.cc: Same.
	* src/locale-inst.cc: Same.
	* src/locale.cc: Same.
	* src/limits.cc: Same.
	* src/concept-inst.cc: Same.
	* src/complex_io.cc: Same.
	* src/codecvt.cc: Same.
	* src/bitset.cc: Same.
	* src/cmath.cc: Same.

2002-01-04  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/stl_tree.h (rb_tree):  Move to...
	* include/ext/rb_tree:  ...here, new file.
	* include/Makefile.am (ext_headers):  Add new file.
	* include/Makefile.in:  Regenerate.
	* include/bits/stl_tempbuf.h (get_temporary_buffer + helper,
	return_temporary_buffer, struct temporary_buffer):  Move to...
	* include/ext/memory:  ...here.
	* testsuite/ext/headers.cc:  Include <ext/rb_tree>.
	* include/backward/tempbuf.h:  Include <ext/memory>, tweak.
	* include/backward/tree.h:  Include <ext/rb_tree), tweak.

2002-01-03  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/stl_numeric.h (power + helpers, iota):  Move to...
	* include/ext/numeric:  ...here, new file.
	* include/bits/stl_function.h (identity_element, unary_compose,
	binary_compose, compose1, compose2, identity, select1st,
	select2nd, project1st + helper, project2nd + helper,
	constant_void_fun + helper, constant_unary_fun + helper,
	costant_binary_fun + helper, constant0, constant1, constant2,
	subtractive_rng, mem_fun1, mem_fun1_ref):  Move to...
	* include/ext/functional:  ...here, new file.
	* include/Makefile.am (ext_headers):  Add new files.
	* include/Makefile.in:  Regenerate.
	* testsuite/ext/headers.cc:  Include <ext/numeric> and
	<ext/functional>.
	* include/backward/algo.h:  Include <ext/numeric>, tweak.
	* include/backward/function.h:  Include <ext/functional>, tweak.
	* include/ext/ropeimpl.h:  Include <ext/numeric>.

2002-01-03  Jeffrey A Law  <law@redhat.com>

	* config/os/hpux/bits/os_defines.h: Prefix __strtoll and
	__strtoull declarations with __extension__.

2002-01-03  David Billinghurst <David.Billinghurst@riotinto.com>

	* testsuite/lib/prune.exp: Correct regular expression for
	-ffunction-sections

2002-01-02  Phil Edwards  <pme@gcc.gnu.org>

	* include/bits/stl_algo.h (upper_bound, equal_range, binary_search):
	Change concept checks, as with lower_bound and PR 2054.
	* testsuite/ext/concept_checks.cc:  Expand test to include those.

2002-01-02  Phil Edwards  <pme@gcc.gnu.org>

	* include/bits/boost_concept_check.h:  Import some changes from
	upsteam (Boost) version.

2002-01-02  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/stl_algobase.h (copy_n + helpers,
	lexicographical_compare_3way + helpers):  Move to...
	* include/ext/algorithm:  ...here.
	* include/bits/stl_uninitialized.h (uninitialized_copy_n +
	helpers):  Move to...
	* include/ext/memory:  ...here, new file.
	* include/Makefile.am (ext_headers):  Add new file.
	* include/Makefile.in:  Regenerate.
	* testsuite/ext/headers.cc:  Include <ext/memory>.
	* include/backward/algobase.h:  Include <ext/memory> and
	<ext/algorithm>, tweak.
	* include/ext/ropeimpl.h:  Include <ext/memory>, tweak.
	* include/ext/stl_rope.h:  Include <ext/memory>, tweak.

2002-01-01  Roger Sayle <roger@eyesopen.com>

	* libmath/stubs.c (sinf,cosf): Implement stubs to enable the
	equivalent ___builtin__ versions.

	* include/c_shadow/bits/std_cmath.h: All __builtin math functions
	are available in libstdc++ as the necessary stub implementations
	are provided by libmath/stubs.c.

2002-01-01  Jason Thorpe  <thorpej@wasabisystems.com>

	* configure.in: Add support for NetBSD cross compiles.
	* configure: Regenerate.

Copyright (C) 2002 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
