2000-12-31  Alexandre Oliva  <aoliva@redhat.com>

	* include/c_std/bits/std_cstdlib.h (mblen): Protect against macro.

2000-12-23  Benjamin Kosnik  <bkoz@redhat.com>

	* src/Makefile.am (CSTD_INCLUDES): Change from CSHADOW_INCLUDES.
	(strstream.cc): Add special rule for deprecated files.
	* libsupc++/Makefile.am (INCLUDES): Sync.
	* acinclude.m4 (GLIBCPP_EXPORT_INCLUDES): And here.

	Reported by Fred Fish  <fnf@ninemoons.com>
	* include/backward/iomanip.h: Remove backward from include
	* include/backward/strstream.h: Same.
	* include/backward/stream.h: Same.
	* include/backward/ostream.h: Same.
	* include/backward/istream.h: Same.
	* src/strstream.cc: And here.

	Reported by  Brad Garcia  <bgarcia@laurelnetworks.com>
	* src/string-inst.cc (_S_find): Use generic template.
	* include/bits/string.tcc (_S_find): Remove specializations
	
2000-12-22  Benjamin Kosnik  <bkoz@fillmore.redhat.com>

	Attempt to make locale visible in gdb.
	* include/bits/std_locale.h: Remove codecvt.h include.
	* include/bits/locale_facets.h: Add here, after ctype decls.
	* include/bits/codecvt.h: Remove std namespace, as assumed to be
	in std now.

	* include/bits/locale_facets.h: Consistently move generic static
	member definitions directly after generic facet declarations.
	* include/bits/locale_facets.tcc: From here.

	* src/locale.cc: Organize locale::id static definitions for
	required facets.
	* src/codecvt.cc (codecvt<char...>): Remove locale::id definition.
	(codecvt<wchar_t...>): Same.
	* src/localename: And here.
	
	* include/bits/localefwd.h (_Count_ones): Change _S_count to _M_count.
	Same for _M_halfcount.

2000-12-22  Alexandre Oliva  <aoliva@redhat.com>

	* mknumeric_limits: Output to temporary files, and rename them at
	the end.

2000-12-21  Benjamin Kosnik  <bkoz@redhat.com>

	* configure.in: Change GLIBCPP_ENABLE_SHADOW to
	GLIBCPP_ENABLE_CHEADERS.
	* acinclude.m4 (GLIBCPP_ENABLE_SHADOW): Change to
	ENABLE_CHEADERS.  C_INCLUDE_DIR defaults to c_std from c. 
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* include/c: Move to ...
	* include/c_std: ...here.
	* include/c_std: Move to ...
	* include/c_shadow: ...here.
	* include/c: Repopulate, with simple headers.
	* docs/html/configopts.html: Adjust docs.
	
2000-12-21  Joseph S. Myers  <jsm28@cam.ac.uk>

	* acinclude.m4, configure.in, mkcheck.in,
	testsuite/21_strings/ctor_copy_dtor.cc,
	testsuite/21_strings/inserters_extractors.cc,
	testsuite/23_containers/map_operators.cc,
	testsuite/23_containers/vector_element_access.cc,
	testsuite/25_algorithms/lower_bound.cc,
	testsuite/27_io/ifstream_members.cc,
	testsuite/27_io/istream_extractor_arith.cc,
	testsuite/27_io/istream_unformatted.cc,
	testsuite/27_io/ofstream_members.cc,
	testsuite/27_io/ostream_inserter_char.cc,
	testsuite/27_io/ostream_inserter_other.cc,
	testsuite/27_io/ostream_manip.cc, testsuite/27_io/streambuf.cc:
	Change sourceware.cygnus.com and sources.redhat.com URLs for
	libstdc++ web pages and list archives to point to gcc.gnu.org
	* aclocal.m4, configure: Regenerate.

2000-12-21  Gabriel Dos Reis  <gdr@codesourcery.com>

	* src/Makefile.am (sources): Remove complex.cc, complexf.cc and
	complexl.cc from list.
	* src/Makefile.in: Regenerate.
	* src/complex.cc: Remove.
	* src/complexf.cc: Likewise.
	* src/complexl.cc: Likewise.

	* libmath/Makefile.am (EXTRA_LONG_DOUBLE_yes): Remove csqrtl.c
	(EXTRA_DIST): Remove csqrt.c and csqrtf.c.
	* libmath/Makefile.in: Regenerate.
	* libmath/complex-stub.h: Remove.
	* libmath/csqrt.c: Likewise.
	* libmath/sqrtf.c: Likewise.
	* libmath/sqrtl.c: Likewise.
	* libmath/mathconf.h: Remove <complex.h> and "complex-stub.h"
	#inclusion. 
	
	* include/bits/std_complex.h (sqrt<>): Define primary template.
	(complex<>): Remove sqrt friend declarations.

	* configure.in: Initialize with src/ios.cc.
	* configure: Regenerate.
	* acinclude.m4: Remove check for csqrt* and <complex.h>
	* aclocal.m4: Regenerate.
	* config.h.in: Regenerate.
	* Makefile.in: Regenerate.

2000-12-20  Phil Edwards  <pme@sources.redhat.com>

	* acinclude.m4 (SECTION_FLAGS, OPT_LDFLAGS):  Fix minor thinko.
	* aclocal.m4:  Regenerate.
	* configure:  Ditto.
	* Makefile.in:  Ditto.
	* libio/Makefile.in:  Ditto.
	* libmath/Makefile.in:  Ditto.
	* libsupc++/Makefile.in:  Ditto.
	* src/Makefile.in:  Ditto.

	* include/bits/istream.tcc:  Fix clause reference in comment.

2000-12-20  Benjamin Kosnik  <bkoz@fillmore.constant.com>

	* testsuite/17_intro/headers_c.cc (main): New file.

	* acinclude.m4 (SECTION_FLAGS): Only set if --enable-debug is not
	passed.
	(OPT_LDFLAGS): And here.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	
2000-12-19  Curtis Janssen  <cljanss@ca.sandia.gov>

	* src/ios.cc (ios_base::_M_grow_words(int ix)): Fix libstdc++/1089.
	* testsuite/27_io/ios_base_storage.cc (test01): New file.

2000-12-19  Benjamin Kosnik  <bkoz@fillmore.constant.com>

	* configure.in: Don't turn on long long by default.
	(gxx_target_include_dir): Adjuse comment.
	* configure: Regenerate.
	* include/c/bits/std_cstdio.h: Remove c++config.h include.
	* src/locale.cc: Formatting tweaks.
	* testsuite/22_locale/ctype.cc (char<unsigned char>): Provide
	member functions.

2000-12-19  Loren J. Rittle  <ljrittle@acm.org>

        * testsuite/22_locale/ctype.cc (test01): Correct ~ operator usage.

2000-12-19  Mark Kettenis  <kettenis@gnu.org>

        * configure.target: Support the Hurd.

2000-12-19  Benjamin Kosnik  <bkoz@fillmore.redhat.com>

	* config/os/solaris/solaris2.5/bits/ctype_inline.h (is): Same.
	* config/os/solaris/solaris2.6/bits/ctype_inline.h (is): Same.
	* config/os/solaris/solaris2.7/bits/ctype_inline.h (is): Same.
	* config/os/newlib/bits/ctype_inline.h (is): Same.
	* config/os/irix/bits/ctype_inline.h (is): Same.
	* config/os/bsd/netbsd/bits/ctype_inline.h (is): Same.
	* config/os/bsd/freebsd/bits/ctype_inline.h (is): Same.
	* config/os/aix/bits/ctype_inline.h (is): Same.
	* config/os/gnu-linux/bits/ctype_inline.h (is): Revert.
	* config/os/generic/bits/ctype_inline.h (is): Non-table based
	implementation.

	* testsuite/22_locale/ctype_char_members.cc (test01): Use binary
	operator correctly.
	(test01): Check 'A' for alnum, upper, alpha.

2000-12-19  Gabriel Dos Reis  <gdr@codesourcery.com>

	* include/bits/std_complex.h (complex<float>::operator-=): Fix
	thinko. 

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

	* configure.in: Set os_include_dir for cross_compiles.
	* configure: Regenerate.
	* configure.target (l_glibcpp_cxxflags): Don't try to be clever
	when assigning ATOMICITYH. Only special case the special cases...

2000-12-18  Joseph S. Myers  <jsm28@cam.ac.uk>

	* docs/html/17_intro/COPYING: Update to current
	ftp://ftp.gnu.org/pub/gnu/Licenses/COPYING-2.0 (fixes references
	to 19yy as example year in copyright notice).

2000-12-15  Benjamin Kosnik  <bkoz@redhat.com>

	* configure.in (gxx_target_include_dir): Install target-dependent
	include files in a target-dependent place.
	* configure: Regenerate.
	* src/Makefile.am: Add in support here.
	* src/Makefile.in: Regenerate.

2000-12-14  Benjamin Kosnik  <bkoz@fillmore.redhat.com>

	* src/Makefile.am (myinstallheaders): Install backwards headers in
	prefix, not prefix/backward.
	* src/Makefile.in: Regenerate.

2000-12-14  Benjamin Kosnik  <bkoz@haight.redhat.com>

	* acinclude.m4 (GLIBCPP_CHECK_MATH_SUPPORT): Revert changes
	touching copysignf, atan2f, expf.
	(GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT): Add it back here.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	
2000-12-14  Benjamin Kosnik  <bkoz@fillmore.redhat.com>

	* configure.in (CXX): Exit out if mknumeric_limits fails.
	* mknumeric_limits (CXX): Use BUILD_DIR/g++, not g++ in
	path. Consistency with tests_flags.in.

2000-12-14  Benjamin Kosnik  <bkoz@haight.redhat.com>

	* include/c/bits/*.h: Remove include_next, replace with include,
	as include_next does not work host-x-host, and include_next not
	necessary.

2000-12-13  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/locale_facets.h (ctype<char>): Remove throw specs not in
	base class signature.
	* config/os/*/bits/ctype_inline.h (is): Same.
	
2000-12-13  Benjamin Kosnik  <bkoz@redhat.com>

	* config/os/generic/bits/ctype_base.h (ctype_base): Consistency
	with linux.
	* config/os/generic/bits/ctype_inline.h (is): Same.
	* config/os/solaris/solaris2.5/bits/ctype_inline.h (is): Same.
	* config/os/solaris/solaris2.5/bits/ctype_base.h: Same.
	* config/os/solaris/solaris2.6/bits/ctype_inline.h (is): Same.
	* config/os/solaris/solaris2.6/bits/ctype_base.h: Same.
	* config/os/solaris/solaris2.7/bits/ctype_inline.h (is): Same.
	* config/os/solaris/solaris2.7/bits/ctype_base.h: Same.
	* config/os/irix/bits/ctype_inline.h (is): Same.
	* config/os/irix/bits/ctype_base.h (ctype_base): Same.
	* config/os/aix/bits/ctype_inline.h (is): Same.
	* config/os/aix/bits/ctype_base.h (ctype_base): Same.
	* config/os/bsd/netbsd/bits/ctype_inline.h (is): Same.
	* config/os/bsd/netbsd/bits/ctype_base.h (ctype_base): Same.
	* config/os/bsd/freebsd/bits/ctype_base.h (ctype_base): Same.
	* config/os/bsd/freebsd/bits/ctype_inline.h (is): Same.
	* config/os/newlib/bits/ctype_inline.h (is): Same.
	* config/os/newlib/bits/ctype_base.h (ctype_base): Same.

	* testsuite/22_locale/ctype_char_members.cc (test01): Add tests, fix.
	* testsuite/22_locale/ctype.cc (test01): Add tests for
	ctype_base::mask bitmask features.
	* src/locale.cc: Define const static data for ctype_base.
	* config/os/gnu-linux/bits/ctype_base.h (ctype_base): Make
	ctype_base::mask type an integer type, not an enum.
	* config/os/gnu-linux/bits/ctype_inline.h (is): Implement correctly.
	* include/bits/locale_facets.h: Tweaks.
	
	* include/bits/ios_base.h: Formatting tweaks.

	* docs/html/17_intro/C++STYLE: Add.

2000-12-12  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* acinclude.m4 (GLIBCPP_CHECK_CTYPE_SUPPORT): Don't link ctype
	files here...
	* configure.in: Rather, do it once for all targets here. Clean up
	canadian cross and cross compile targets for linux-targeted
	crosses.
	* configure: Regenerate.
	* aclocal.m4: Regnerate.
	* acconfig.h: Add more defines.
	* config.h.in: Regenerate.
	
2000-12-12  Angela Marie Thomas <angela@cygnus.com>

	* configure.in: Fix case for host-x-linux
	* configure: Regenerate.

2000-12-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* src/Makefile.am (libstdc++.INC:): 2000-12-05 reverted to include
	2000-11-12 hunk.
	* src/Makefile.in: Rebuilt.

2000-12-09  Jason Merrill  <jason@redhat.com>

	* testsuite/20_util/auto_ptr.cc (test07): Remove test that tries
	to copy-initialize an auto_ptr<Base> from an auto_ptr<Derived>; it
	isn't supposed to work anymore.

2000-12-09  Phil Edwards  <pme@sources.redhat.com>

	Move the HTML-containing subdirs from 'docs' to 'docs/html'.
	* README:  Update the locations of instructions.
	* docs/doxygen/run_doxygen:  New file, stub.

	* docs/Makefile:  Moved...
	* docs/configopts.html:  Likewise.
	* docs/documentation.html:  Likewise.
	* docs/install.html:  Likewise.
	* docs/lib3styles.css:  Likewise.
	* docs/17_intro/BADNAMES:  Likewise.
	* docs/17_intro/BUGS:  Likewise.
	* docs/17_intro/C++STYLE:  Likewise.
	* docs/17_intro/CHECKLIST:  Likewise.
	* docs/17_intro/COPYING:  Likewise.
	* docs/17_intro/DESIGN:  Likewise.
	* docs/17_intro/HEADER_POLICY:  Likewise.
	* docs/17_intro/PROBLEMS:  Likewise.
	* docs/17_intro/RELEASE-NOTES:  Likewise.
	* docs/17_intro/TODO:  Likewise.
	* docs/17_intro/contribute.html:  Likewise.
	* docs/17_intro/headers_cc.txt:  Likewise.
	* docs/17_intro/howto.html:  Likewise.
	* docs/17_intro/libstdc++-assign.txt:  Likewise.
	* docs/17_intro/organization:  Likewise.
	* docs/17_intro/porting-howto.html:  Likewise.
	* docs/18_support/howto.html:  Likewise.
	* docs/19_diagnostics/howto.html:  Likewise.
	* docs/20_util/howto.html:  Likewise.
	* docs/21_strings/gotw29a.txt:  Likewise.
	* docs/21_strings/howto.html:  Likewise.
	* docs/21_strings/stringtok_h.txt:  Likewise.
	* docs/21_strings/stringtok_std_h.txt:  Likewise.
	* docs/22_locale/codecvt.html:  Likewise.
	* docs/22_locale/ctype.html:  Likewise.
	* docs/22_locale/howto.html:  Likewise.
	* docs/22_locale/locale.html:  Likewise.
	* docs/23_containers/howto.html:  Likewise.
	* docs/23_containers/wrappers_h.txt:  Likewise.
	* docs/24_iterators/howto.html:  Likewise.
	* docs/25_algorithms/howto.html:  Likewise.
	* docs/26_numerics/howto.html:  Likewise.
	* docs/27_io/howto.html:  Likewise.
	* docs/27_io/iostreams_hierarchy.pdf:  Likewise.
	* docs/ext/howto.html:  Likewise.
	* docs/faq/index.html:  Likewise.
	* docs/faq/index.txt:  Likewise.
	* docs/html/Makefile:  ...to here.
	* docs/html/configopts.html:  Likewise.
	* docs/html/documentation.html:  Likewise.
	* docs/html/install.html:  Likewise.
	* docs/html/lib3styles.css:  Likewise.
	* docs/html/17_intro/BADNAMES:  Likewise.
	* docs/html/17_intro/BUGS:  Likewise.
	* docs/html/17_intro/C++STYLE:  Likewise.
	* docs/html/17_intro/CHECKLIST:  Likewise.
	* docs/html/17_intro/COPYING:  Likewise.
	* docs/html/17_intro/DESIGN:  Likewise.
	* docs/html/17_intro/HEADER_POLICY:  Likewise.
	* docs/html/17_intro/PROBLEMS:  Likewise.
	* docs/html/17_intro/RELEASE-NOTES:  Likewise.
	* docs/html/17_intro/TODO:  Likewise.
	* docs/html/17_intro/contribute.html:  Likewise.
	* docs/html/17_intro/headers_cc.txt:  Likewise.
	* docs/html/17_intro/howto.html:  Likewise.
	* docs/html/17_intro/libstdc++-assign.txt:  Likewise.
	* docs/html/17_intro/organization:  Likewise.
	* docs/html/17_intro/porting-howto.html:  Likewise.
	* docs/html/18_support/howto.html:  Likewise.
	* docs/html/19_diagnostics/howto.html:  Likewise.
	* docs/html/20_util/howto.html:  Likewise.
	* docs/html/21_strings/gotw29a.txt:  Likewise.
	* docs/html/21_strings/howto.html:  Likewise.
	* docs/html/21_strings/stringtok_h.txt:  Likewise.
	* docs/html/21_strings/stringtok_std_h.txt:  Likewise.
	* docs/html/22_locale/codecvt.html:  Likewise.
	* docs/html/22_locale/ctype.html:  Likewise.
	* docs/html/22_locale/howto.html:  Likewise.
	* docs/html/22_locale/locale.html:  Likewise.
	* docs/html/23_containers/howto.html:  Likewise.
	* docs/html/23_containers/wrappers_h.txt:  Likewise.
	* docs/html/24_iterators/howto.html:  Likewise.
	* docs/html/25_algorithms/howto.html:  Likewise.
	* docs/html/26_numerics/howto.html:  Likewise.
	* docs/html/27_io/howto.html:  Likewise.
	* docs/html/27_io/iostreams_hierarchy.pdf:  Likewise.
	* docs/html/ext/howto.html:  Likewise.
	* docs/html/faq/index.html:  Likewise.
	* docs/html/faq/index.txt:  Likewise.

2000-12-08  Phil Edwards  <pme@sources.redhat.com>

	* acinclude.m4 (GLIBCPP_ENABLE_CSTDIO):  New conditional,
	  GLIBCPP_BUILD_LIBIO, true iff building libio.
	* libio/Makefile.am:  Use; set noinst_LTLIBRARIES empty if false.
	* aclocal.m4:  Regenerated.
	* config.h.in:  Regenerated.
	* configure:  Regenerated.
	* libio/Makefile.in:  Regenerated.
	* libmath/Makefile.in:  Regenerated.

2000-12-08  Gabriel Dos Reis  <gdr@codesourcery.com>

	* libmath/Makefile.am (EXTRA_LONG_DOUBLE_yes): Remove ccosl,
	cexpl, clog10l, csinhl, ctanhl, ctanl.
	(EXTRA_DIST): Remove ccos, ccosf, csin, csinf, ccosh, ccoshf,
	csing, csinhf, clog10, clog10f, ctan, ctanf, ctanh, ctanhf.
	* libmath/Makefile.in: Regenarate.
	* libmath/ccos.c: Remove.
	* libmath/ccosf.c: Likewise.
	* libmath/ccosl.c: Likewise.
	* libmath/csin.c: Likewise.
	* libmath/csinf.c: Likewise.
	* libmath/csinl.c: Likewise.
	* libmath/ctan.c: Likewise.
	* libmath/ctanf.c: Likewise.
	* libmath/ctanl.c: Likewise.
	* libmath/ccosh.c: Likewise.
	* libmath/ccoshf.c: Likewise.
	* libmath/ccoshl.c: Likewise.
	* libmath/csinh.c: Likewise.
	* libmath/csinhf.c: Likewise.
	* libmath/csinhl.c: Likewise.
	* libmath/ctanh.c: Likewise.
	* libmath/ctanhf.c: Likewise.
	* libmath/ctanhl.c: Likewise.
	* libmath/cexp.c: Likewise.
	* libmath/cexpf.c: Likewise.
	* libmath/cexpl.c: Likewise.
	* libmath/clog10.c: Likewise.
	* libmath/clog10f.c: Likewise.
	* libmath/clog10l.c: Likewise.
	* libmath/complex-stub.h: Remove forward declaration of functions
	mentioned above.

	* include/bits/std_complex.h(tan, tanh): Define primary templates. 
	(complex<>): Remove friend declarations for tan<> and tanh<>.
	* src/complex.cc(tan, tanh): Remove specializations.

	* acinclude.m4: Remove check for ccos, ccosf, ccosl, ccosh,
	ccoshf, ccoshl,	csin, csinf, csinl, csinh, csinhf, csinhl, cexp,
	cexpf, cexpl, ctan, ctanf, ctanl, ctanh, ctanhf, ctanhl.
	* aclocal.m4: Regenarate.
	* configure: Regenarate.

2000-12-08  Gabriel Dos Reis  <gdr@codesourcery.com>

	* acinclude.m4: Don't forget to remove check for cpowl as it is no
	longer needed, nor is the corresponding stub existent.
	* aclocal.m4: Regenarate.
	* configure: Regenarate.

2000-12-07  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* config/os/generic/bits/ctype_base.h (ctype_base): Change space mask.

	* config/os/generic/bits/ctype_noninline.h (ctype): Remove default
	arguments in definition.
	* config/os/solaris/solaris2.7/bits/ctype_noninline.h (ctype): Same.
	* config/os/solaris/solaris2.6/bits/ctype_noninline.h (ctype): Same.
	* config/os/solaris/solaris2.5/bits/ctype_noninline.h (ctype): Same.
	* config/os/newlib/bits/ctype_noninline.h (ctype): Same.
	* config/os/irix/bits/ctype_noninline.h (ctype): Same.
	* config/os/hpux/bits/ctype_noninline.h (ctype): Same.
	* config/os/bsd/netbsd/bits/ctype_noninline.h (ctype): Same.
	* config/os/bsd/freebsd/bits/ctype_noninline.h (ctype): Same.
	* config/os/aix/bits/ctype_noninline.h (ctype): Same.

	* include/bits/locale_facets.h: Tweak.
	
2000-12-06  Benjamin Kosnik  <bkoz@kredhat.com>

	* include/bits/locale_facets.h (ctype): Remove _Ctype_nois and
	_Ctype and replace with common __ctype_abstract_base.
	(ctype<wchar_t>::_M_convert_to_wmask): Move to locale.cc.
	* config/os/gnu-linux/bits/ctype_noninline.h (ctype<char>::ctype):
	And here.
	* config/os/solaris/solaris2.7/bits/ctype_noninline.h (ctype): Same.
	* config/os/solaris/solaris2.6/bits/ctype_noninline.h (ctype): Same.
	* config/os/solaris/solaris2.5/bits/ctype_noninline.h (ctype): Same.
	* config/os/newlib/bits/ctype_noninline.h (ctype): Same.
	* config/os/irix/bits/ctype_noninline.h (ctype): Same.
	* config/os/hpux/bits/ctype_noninline.h (ctype): Same.
	* config/os/generic/bits/ctype_noninline.h (ctype): Same.
	* config/os/aix/bits/ctype_noninline.h (ctype): Same.
	* config/os/bsd/netbsd/bits/ctype_noninline.h (ctype): Same.
	* config/os/bsd/freebsd/bits/ctype_noninline.h (ctype): Same.
	* src/locale-inst.cc: Clean instantiations.
	* src/locale.cc (ctype<char>): Add definitions here. 
	(ctype<wchar_t>::_M_wmask): Move definitions here.
	
	* config/os/generic/bits/ctype_inline.h (ctype<char>::is):
	Implement in a generic way, with only "C" functionality and no
	knowlege of the target os.
	* config/os/generic/bits/os_defines.h: Change comments to C++ style.
	* testsuite/22_locale/ctype_char_members.cc (test01): Add tests.
	
	* include/bits/codecvt.h (ctype_byname): Remove specializations,
	as not required.
	* include/bits/localefwd.h (codecvt_byname): And here.
	* src/codecvt.cc: Remove codecvt_byname specializations.
	
	* include/c/bits/std_cstdio.h: Include c++config.h.

2000-12-06  Phil Edwards  <pme@sources.redhat.com>

	* acinclude.m4 (GLIBCPP_CHECK_*_DECL_AND_LINKAGE_*):  Pre-test
	  whether the cached result is present.
	* aclocal.m4:  Regenerate.
	* configure:  Regenerate.
	* Makefile.in:  Regenerate.
	* libio/Makefile.in:  Regenerate.
	* libmath/Makefile.in:  Regenerate.
	* libsupc++/Makefile.in:  Regenerate.
	* src/Makefile.in:  Regenerate.

2000-12-06  Richard Earnshaw  <rearnsha@arm.com>

	* configure.target (*-*-freebsd, *-*-netbsd): Correct paths to 
	os_include_dir.

2000-12-05  Jeffrey A Law  <law@cygnus.com>

	* configure.target (hpux): Set os_include_dir.
	* config/os/hpux/bits/ctype_base.h: New file
	* config/os/hpux/bits/ctype_inline.h: New file
	* config/os/hpux/bits/ctype_noinline.h: New file
	* config/os/hpux/bits/os_defines.h: New file

2000-12-05  Alexandre Petit-Bianco  <apbianco@redhat.com>

	* src/Makefile.am (libstdc++.INC): Revert for libjava builds.
	* src/Makefile.in: Regenerate.
	
2000-12-05  Benjamin Kosnik  <bkoz@haight.redhat.com>

	* acinclude.m4 (EXTRA_CXX_FLAGS): And here.
	* include/c/bits/std_cstdlib.h (std ): Change macro to
	_GLIBCPP_NEED_LLDIV_T.
	* acconfig.h: Remove unused MBSTATE_T bits.
	* configure.in: Same.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* config.h.in: Regenerate.
	
2000-12-05  Benjamin Kosnik  <bkoz@fillmore.redhat.com>

	* acinclude.m4: Change up to reflect new directory organization.
	Add in bits for NetBSD.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* config/os/bsd: New directory.
	* config/os/netbsd: Move to...
	* config/os/bsd/netbsd: ...here.
	* config/os/freebsd: Move to...
	* config/os/bsd/freebsd: ...here.

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

	* acinclude.m4 (GLIBCPP_ENABLE_LONG_LONG): Check for
	lldiv_t. Allow the use of os-specific defines while checking for
	long-long functions by the inclusion of os_defines.h.
	* aclocal.m4: Regenerate.
	* configure.in: Add comments.
	* configure: Regenerate.
	* acconfig.h: Add _GLIBCPP_HAVE_LLDIV_T.
	* config.h.in: Regenerate.
	* config/os/gnu-linux/bits/os_defines.h: Fix typos and
	duplications in comments.

2000-12-05  Richard Earnshaw  <rearnsha@arm.com>

	* config/os/freebsd/bits/ctype_base.h: Update comments about other
	BSD variants.

2000-12-05  Richard Earnshaw  <rearnsha@arm.com>

	* config/os/freebsd/bits/*.h: Move here from config/os/bsd/bits.
	* aclocal.m4: Adjust accordingly.
	* configure.target: Likewise.
	* configure: Regenerate.

2000-12-05  Richard Earnshaw  <rearnsha@arm.com>

	* config/cpu/arm/bits/atomicity.h: Add support for compiling Thumb
	code.

2000-12-05  Richard Earnshaw  <rearnsha@arm.com>

	Support for NetBSD.
	* aclocal.m4: Add test for NetBSD's ctype support.
	* configure: Regenerate.
	* configure.target: Support NetBSD.
	* config/os/netbsd/bits/ctype_base.h: New file.
	* config/os/netbsd/bits/ctype_inline.h: New file.
	* config/os/netbsd/bits/ctype_noinline.h: New file.
	* config/os/netbsd/bits/os_defines.h: New file.

2000-12-05  Gabriel Dos Reis  <gdr@codesourcery.com>

	* src/complex.cc (pow): Remove definitions for explicit
	specializations. 
	* libmath/mathconf.h: Remove declarations for c_log, c_logf,
	c_logl. 
	* libmath/complex-stub.h: Remove declarations for cpow, cpowf,
	cpowl. 
	* libmath/cpow.c: Remove.
	* libmath/cpowf.c: Remove.
	* libmath/cpowl.c: Remove.
	* libmath/Makefile.am (EXTRA_LONG_DOUBLE_yes): Remove c_logl,
	cpowl, 
	(EXTRA_DIST): Remove c_log, c_logf, carg, cargf.
	* libmath/Makefile.in: Regenarate.
	* libmath/c_log.c: Remove
	* libmath/c_logf.c: Likewise.
	* libmath/c_logl.c: Likewise.
	* libmath/carg.c: Likewise.
	* libmath/cargf.c: Likewise.
	* libmath/cargl.c: Likewise.
	* include/bits/std_complex.h (pow): Define primary templates.
	(complex<>): Remove friend declarations for pow<>().
	* acinclude.m4: Remove check for c_log, c_logf, c_logl, carg,
	cargf.
	* aclocal.m4: Regenarate.
	* configure: Regenarate.

2000-12-03  Joseph S. Myers  <jsm28@cam.ac.uk>

	* docs/configopts.html, docs/documentation.html,
	docs/install.html, docs/17_intro/BADNAMES,
	docs/17_intro/contribute.html, docs/17_intro/howto.html,
	docs/18_support/howto.html, docs/19_diagnostics/howto.html,
	docs/20_util/howto.html, docs/21_strings/howto.html,
	docs/22_locale/howto.html, docs/23_containers/howto.html,
	docs/24_iterators/howto.html, docs/25_algorithms/howto.html,
	docs/26_numerics/howto.html, docs/27_io/howto.html,
	docs/ext/howto.html, docs/faq/index.html, docs/faq/index.txt: Sync
	with wwwdocs.

2000-12-01  Phil Edwards  <pme@sources.redhat.com>

	* docs/download.html:  Remove.
	* docs/footer.ihtml:  Remove.
	* docs/header.ihtml:  Remove.
	* docs/index.html:  Remove.
	* docs/links.html:  Remove.
	* docs/mail.html:  Remove.
	* docs/status.html:  Remove.
	* docs/thanks.html:  Remove.

2000-12-01  Phil Edwards  <pme@sources.redhat.com>

	* mkcheck.in:  Count static and shared results separately.

2000-12-01  Loren J. Rittle  <ljrittle@acm.org>

	* mkcheck.in:  Correct typo.

2000-12-01  Gabriel Dos Reis  <gdr@codesourcery.com>

	* src/cmath.cc: Remove.
	* src/Makefile.am (c_base_headers): Add bits/cmath.tcc.
	(sources): Remove cmath.cc
	* src/Makefile.in: Regenerate.

	* include/c/bits/std_cmath.h (__cmath_power<>): Declare.
	(__cmath_abs<>): New function.
	(abs, fabs): Use __cmath_abs when no direct support is available.
	(__pow_helper<>): New function.
	(pow): Define here.  Use __pow_helper<>.

	* include/c/bits/cmath.tcc: New file.

2000-11-29  Benjamin Kosnik  <bkoz@redhat.com>

	Fixes for build directories with colons, AIX build problems.
	* src/Makefile.am: Cleanups, add documentation.
	(libstdc++.INC): Simplify rule.
	(myinstallheaders): Consolidate install rules.
	(myinstalldirs): New, make directores.
	(base_headers): Subdivide based on install directory.
	(ext_headers): New.
	(backward_headers): New.
	(headers): Remove.
	(c_headers): Remove, unused.
	(c_shadow_headers): Split up, deal with conditional usage in a
	sane manner.
	* src/Makefile.in: Regenerate.
	
2000-11-29  Phil Edwards  <pme@sources.redhat.com>

	Sync with the documentation from wwwdocs.
	* docs/Makefile:  New file (rebuilds FAQ text version).
	* docs/configopts.html:  Update.
	* docs/documentation.html:  Update.
	* docs/download.html:  Update.
	* docs/index.html:  Update.
	* docs/install.html:  Update.
	* docs/links.html:  Update.
	* docs/mail.html:  Update.
	* docs/status.html:  Update.
	* docs/thanks.html:  Update.
	* docs/27_io/howto.html:  Update.
	* docs/faq/index.html:  Update for 2.91.
	* docs/faq/index.txt:  Update for 2.91.
	* docs/footer.html:  Removed.
	* docs/footer.ihtml:  New file.
	* docs/gccrebuild.html:  Removed.
	* docs/header.html:  Removed.
	* docs/header.ihtml:  New file.

2000-11-29  Loren J. Rittle  <ljrittle@acm.org>

        * tests_flags.in: Correct typo.

2000-11-29  Gabriel Dos Reis  <gdr@codesourcery.com>

	* tests_flags (SH_FLAGS, ST_FLAGS): Move them back to ...
	* mkcheck.in (SH_FLAGS, ST_FLAGS): ...here

2000-11-29  Gabriel Dos Reis  <gdr@codesourcery.com>

	* src/Makefile.am (sources): Add bitset.cc
	* src/Makefile.in: Regenrate.

	* include/bits/std_bitset.h (_GLIBCPP_BITSET_BITS_PER_WORD): New
	macro. Replace __BITS_PER_WORDS throughout.
	(__BITS_PER_WORDS): Remove.
	(bitset<>::_M_do_find_first, bitset<>::_M_do_find_next): Move
	definitions to src/bitset.cc.

	* src/bitset.cc (bitset<>::_M_do_find_first,
	bitset<>::_M_do_find_next):  Define here.
	(_Bit_count<>::_S_bit_count, _Find_one<>::_S_first_one): Define
	here. Explicitly instantiate definitions.

2000-11-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	* config/cpu/powerpc/bits/atomicity.h (__exchange_and_add): Silence
	preprocessor multi-line string warnings.
	(__atomic_add): Likewise.
	(__compare_and_swap): Likewise.
	(__always_swap): Likewise.
	(__test_and_set): Likewise.
	* config/cpu/arm/bits/atomicity.h (__exchange_and_add): Likewise.
	(__atomic_add): Likewise.
	(__compare_and_swap): Likewise.
	(__always_swap): Likewise.
	(__test_and_set): Likewise.

2000-11-28  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	Update for 2.91 release.
	* include/bits/c++config (__GLIBCPP__): Update.
	* docs/17_intro/RELEASE-NOTES: Update.
	* docs/status.html: Update, remove bogus autotools disinformation.
	
2000-11-27  Benjamin Kosnik  <bkoz@redhat.com>

	* tests_flags.in (LTCXX): Change CXX_FLAG to CXXFLAGS.

	* testsuite/22_locale/ctor_copy_dtor.cc: Adjust formatting.
	* testsuite/27_io/istream_extractor_arith.cc (test11): New
	testcase, based on libstdc++/90.
	
2000-11-27  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

        * config/cpu/arm/bits/atomicity.h (__exchange_and_add): Add
	__volatile__ to asm.
        (__atomic_add): Likewise.
        (__compare_and_swap): Likewise.
        (__always_swap): Likewise.
        (__test_and_set): Likewise.
	
        * config/cpu/powerpc/bits/atomicity.h: Replace '__ATOMICITY_INLINE'
        with 'inline'.
        (__exchange_and_add): Add __volatile__ to asm.
        (__atomic_add): Likewise.
        (__compare_and_swap): Likewise.
        (__always_swap): Likewise.
        (__test_and_set): Likewise.
	
2000-11-27  Gabriel Dos Reis  <gdr@codesourcery.com>

	* tests_flags.in: Update documentation to reflect the change
	below.

2000-11-26  Benjamin Kosnik  <bkoz@fillmore.constant.com>

	* tests_flags.in: Export CXX, CXXFLAGS.
	* mkcheck.in: Grab them.

2000-11-26  David Billinghurst  <David.Billinghurst@riotinto.com>
	    Benjamin Kosnik  <bkoz@redhat.com>
	
        * mkcheck.in: Add exe extension to printnow executable, abstract
	out call to this with TIMER_COMMAND.
	* configure.target (l_glibcpp_cxxflags): Add cygwin support.
	* acinclude.m4 (GLIBCPP_CHECK_CTYPE_SUPPORT): Correct paths.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	
2000-11-26  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/27_io/istream_unformatted.cc (test05): Fixup.

2000-11-26  Benjamin Kosnik  <bkoz@redhat.com>

	* acinclude.m4: Only sanity check for compiler version when
	configuring. More fixes for 'make clean'.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	
2000-11-26  Gabriel Dos Reis  <gdr@codesourcery.com>

	* libmath/Makefile.am (EXTRA_LONG_DOUBLE_yes): Remove cabsl.c 
	* libmath/Makefile.in: Regenerate.
	* libmath/cabs.c: Remove.
	* libmath/cabsf.c: Likewise.
	* libmath/cabsl.c: Likewise.
	* libmath/complex-stub.h: Remove declarations for cabs*.

	* acinclude.m4: Remove check for cabs*. 
	* aclocal.m4: Regenerate.

	* Makefile.in: Regenerate.

2000-11-26  Gabriel Dos Reis  <gdr@codesourcery.com>

	* tests_flags.in: New file. Split out of ...
	* mkcheck.in: ... this. Move flags computation into
	tests_flags.in. 
	* configure.in: Add support for tests_flags.
	* confiigure: Regenerate.

2000-11-25  Joseph S. Myers  <jsm28@cam.ac.uk>

	* acinclude.m4: Change C9X references to refer to C99.
	* aclocal.m4, configure: Regenerate.
	* config/os/gnu-linux/bits/os_defines.h, src/complex.cc,
	testsuite/22_locale/codecvt_wchar_t_char.cc,
	include/bits/stl_config.h, include/c/bits/std_cwchar.h,
	libmath/mathconf.h: Change C9X references to refer to C99.

2000-11-25  Benjamin Kosnik  <bkoz@redhat.com>
            Richard Earnshaw  <rearnsha@arm.com> 

	* src/Makefile.am (INCLUDES): Remove unconditional use of
	_GNU_SOURCE and _ISOC99_SOURCE macros.
	* src/Makefile.in: Regenerate.
	
2000-11-24  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* testsuite/22_locale/codecvt_wchar_t_char.cc (main): Add
	_GLIBCPP_USE_WCHAR_T guards.

	* configure.in (AC_OUTPUT_COMMANDS): Remove, just run scripts as
	is, so that checks for existence of generated files actually work.
	* configure: Regenerate.

2000-11-23  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/os/gnu-linux/bits/os_defines.h: Include <features.h>.
	If not glibc 2.1 or higher, include <gnu/types.h> and define
	__off64_t as __loff_t and #define __THROW as empty.

	* libio/libio.h [__P]: Move __THROW and __PMT into their own
	ifndef:s.

2000-11-23  David Edelsohn  <edelsohn@gnu.org>

	* porting.texi: Expand libtool information.

2000-11-23  Gabriel Dos Reis  <gdr@codesourcery.com>

	* include/bits/ios_base.h (ios_base::failure::~failure,
	ios_base::failure::what): Move definition to ...

	* src/ios.cc (ios_base::failure::~failure): ... here.
	src/ios.cc (ios::failure::what): Likewise.

2000-11-22  Benjamin Kosnik  <bkoz@redhat.com>

	Make deprecated strstream header consistent with new and new.h.
	* include/backward/strstream.h: Add. Use using declarations to
	scope strstreambuf, istrstream, ostrstream, strstream to global
	scope.
	* include/backward/strstream: Remove using declarations.
	* src/Makefile.am (base_headers): Add strstream.
	* src/Makefile.in: Regenerate.

	* include/backward/new.h (_CPP_BACKWARD_NEW_H): Change macro guard
	to be consistent with other headers.

2000-11-22  Richard Henderson  <rth@redhat.com>

	* config/os/bsd/bits/ctype_inline.h (is): Fix order of expressions.
	
2000-11-22  Phil Edwards  <pme@sources.redhat.com>

	* porting.texi:  Minor tweaks to vocabulary.

2000-11-22  Loren J. Rittle  <ljrittle@acm.org>

        * include/backward/strstream.h: Reinstate the `using'
        statements.

2000-11-22  Loren J. Rittle  <ljrittle@acm.org>

	* src/Makefile.am (base_headers): Add missing backwards headers.
	* src/Makefile.in: Regenerate.

2000-11-21  scott snyder  <snyder@fnal.gov>

        * config/c_io_stdio.cc (seekoff): Fix return value.
        (seekpos): Likewise.
        (sys_seek): Likewise.

2000-11-21  Loren J. Rittle  <ljrittle@acm.org>

        * mkcheck.in (explanation): Retain output of all failing
        compiles.  Don't add gratuitous space to the log file.

2000-11-21  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* src/strstream.cc: Adjust includes.
	* src/Makefile.am (base_headers): Remove std_strstream.h, add
	backwards/strstream.h.
	(std_headers): Remove strstream.
	* src/Makefile.in: Regenerate.
	* libsupc++/Makefile.am (headers): Remove new.h
	* libsupc++/Makefile.in: Regenerate.
	* include/std/strstream: Remove.	
	* include/backward/strstream.h: Replace with...
	* include/bits/std_strstream.h: ...this. Move.
	* include/backward/complex.h: Remove SGIisms.
	* include/backward/streambuf.h: Same.
	* include/backward/stream.h: Same.
	* include/backward/ostream.h: Same.
	* include/backward/istream.h: Same.
	* include/backward/iostream.h: Same.
	* include/backward/iomanip.h: Same.
	* include/backward/fstream.h: Same.
	* libsupc++/new.h: Add using declarations for bad_alloc,
	nothrow_t, and nothrow, move to ...
	* include/backward/new.h: ...here.

2000-11-21  Mark Mitchell  <mark@codesourcery.com>

	* porting.texi: New file.

2000-11-21  Branko Cibej  <brankoe@xbc.nu>

        * config/os/solaris/solaris2.6/bits/os_defines.h: Define
        _XOPEN_SOURCE, _LARGEFILE64_SOURCE, __EXTENSIONS__, __off_t,
        __off64_t and __ssize_t.
	* config/os/solaris/solaris2.5/bits/os_defines.h: For now, use the
	same configuration as above.
	
2000-11-21  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* acinclude.m4 (AC_LC_MESSAGES): Check for locale.h.
	* aclocal.m4: Regenerate.
	* configure: Renerate.

2000-11-20  Benjamin Kosnik  <bkoz@redhat.com>

	* mkcheck.in (explanation): Don't paste output of passing compiles
	into log file. Use -static. Get version info.

	* testsuite/23_containers/vector_ctor.cc (test02): Fix thinko.

2000-11-20  Gabriel Dos Reis  <gdr@codesourcery.com>

	* include/bits/std_complex.h (complex<double>): Constructor
	complex<double>::complex(const complex<float>&) is not explicit;
	since it is a promotion.
	(complex<long double>): Constructors taking complex<float> and
	complex<double> are not explicit.

2000-11-20  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/std_complex.h: Tweaks, include cmath for abs overloads.
	* src/complex.cc: Remove cmath include, formatting tweaks, remove
	dead code.
	* include/c/bits/std_cmath.h: Formatting tweaks.
	* testsuite/26_numerics/complex_value.cc: New file, for catching
	bits gleaned from libstdc++/106.

	* testsuite/23_containers/vector_ctor.cc (test02): Add test from
	libstdc++/102.
	
2000-11-20  Joseph S. Myers  <jsm28@cam.ac.uk>

	* include/bits/c++config, include/bits/ios_base.h,
	include/bits/std_streambuf.h: Correct spelling of "deprecated".

2000-11-19  Mark Mitchell  <mark@codesourcery.com>

	* libsupc++/exception_support.cc (__throw_bad_cast): Name it 
	__cxa_bad_cast under the new ABI.
	(__throw_bad_typeid): Name it __cxa_bad_typeid under the new ABI.
	* libsupc++/pure.cc (__pure_virtual): Name it __cxa_pure_virtual
	under the new ABI.

2000-11-18  Mark Mitchell  <mark@codesourcery.com>

	* libsupc++/exception_support.h: New header file.
	* libsupc++/vec.cc: Include it.
	(__cxa_vec_new2): Recatch exceptions before rethrows.
	(__cxa_vec_new3): Likewise.
	(__cxa_vec_ctor): Likewise.
	(__cxa_vec_cctor): Likewise.
	(__cxa_vec_dtor): Likewise.
	(__cxa_vec_delete2): Likewise.
	(__cxa_vec_delete3): Likewise.

2000-11-17  Theodore Papadopoulo  <Theodore.Papadopoulo@sophia.inria.fr>

	* include/bits/stl_tree.h: Overload operators == and != to be able
	to handle the case (const_iterator,iterator) and
	(iterator,const_iterator), thus fixing libstdc++/737 and the like.
	* testsuite/23_containers/map_operators.cc (test02): New tests.
	
2000-11-17  Loren J. Rittle  <ljrittle@acm.org>

	* acinclude.m4 (GLIBCPP_ENABLE_CSTDIO): Correct last patch
	  to ``make --enable-cstdio=stdio the default''.
	* libstdc++-v3/aclocal.m4: Rebuilt.
	* libstdc++-v3/configure: Rebuilt.

2000-11-17  Phil Edwards  <pme@sources.redhat.com>

	* acinclude.m4 (GLIBCPP_ENABLE_ATOMICITY):  Move switch statement
	  contents to...
	* configure.target:  ...here.  Enable generic atomic ops, and warn.
	* aclocal.m4:  Regenerated.
	* configure:  Ditto.
	* Makefile.in:  Ditto.
	* libio/Makefile.in:  Ditto.
	* libmath/Makefile.in:  Ditto.
	* libsupc++/Makefile.in:  Ditto.
	* src/Makefile.in:  Ditto.

2000-11-16  Loren J. Rittle  <ljrittle@acm.org>

        * include/bits/locale_facets.tcc (num_get<_CharT,
          _InIter>::do_get(...)): Add missing typename keyword.

2000-11-16  Mark Mitchell  <mark@codesourcery.com>

	* acinclude.m4 (GLIBCPP_ENABLE_CSTDIO): Make 
	--enable-cstdio=stdio the default.  Disable wide character support
	in that event.
	* configure.in: Move GLIBCPP_ENABLE_C_MBCHAR after
	(GLIBCPP_ENABLE_CSTDIO).
	* config/c_io_stdio.h: Don't include <libio.h>, don't define
	__c_wfile_type.
	* aclocal.m4: Regenerated.
	* configure: Likewise.
	* Makefile.in: Likewise.
	* libio/Makefile.in: Likewise.
	* libmath/Makefile.in: Likewise.
	* libsupc++/Makefile.in: Likewise.
	* src/Makefile.in: Likewise.
	
2000-11-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* config/c_io_stdio.h: Include stddef.h.

2000-11-16  Mark Mitchell  <mark@codesourcery.com>

	* config/c_io_stdio.h (streamsize): Make it a typedef for
	ptrdiff_t.
	(wstreamsize): Likewise.

	* config/c_io_stdio.h: Include libio.h.

2000-11-15  Mark P Mitchell  <mark@codesourcery.com>

	* acinclude.m4 (GLIBCPP_ENABLE_CSTDIO): Substitute libio_la.
	* src/Makefile.am (libstdc___la_LIBADD): Use it.
	* aclocal.m4: Regenerated.
	* configure: Likewise.
	* Makefile.in: Likewise.
	* libio/Makefile.in: Likewise.
	* libmath/Makefile.in: Likewise.
	* libsupc++/Makefile.in: Likewise.
	* src/Makfile.in: Likewise.
	
2000-11-15  Mark Mitchell  <mark@codesourcery.com>

	* mkcheckin.in: Move check for bash version 2 later in the file.

	* include/bits/basic_string.h (basic_string::_Rep::_S_max_size):
	Make it const.
	(basic_string::_Rep::_S_terminal): Likewise.
	* include/bits/string.tcc (basic_string::_Rep::_S_max_size):
	Likewise.
	(basic_string::_Rep::_S_terminal): Likewise.
	
2000-11-15  David Billinghurst  <David.Billinghurst@riotinto.com>

	* mkcheck.in:  Add function size_command() for irix.

2000-11-14  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* acinclude.m4 (GLIBCPP_CHECK_WCHAR_T_SUPPOR): Set LIBS back to
	initial value.
	(GLIBCPP_EXPORT_INCLUDES): Only export TOPLEVEL_INCLUDES if
	building a canadian cross. This should fix the remaining java
	build issues.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	
	* include/bits/c++config (__GLIBCPP__): Set release version for 2.91.

2000-11-14  Phil Edwards  <pme@sources.redhat.com>

	* mkcheck.in: On a platform where we don't know how to extract
	section sizes, just set them to zero.  Use old method of reading
	file contents.

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

        * config/c_io_stdio.h: Don't define __c_wfile_type
        when _GLIBCPP_USE_WCHAR_T is not defined.

2000-11-13  Phil Edwards  <pme@sources.redhat.com>

	* acinclude.m4 (GLIBCPP_CHECK_TARGET):  New macro, replacing
	GLIBCPP_CHECK_CPU and GLIBCPP_CHECK_OS, sourcing configure.target.
	(GLIBCPP_CONFIGURE):  Call new macro here.
	* configure.host:  Cleanup.
	* configure.in:  Remove those two macros.
	* configure.target:  New file.
	* aclocal.m4:  Regenerated.
	* configure:  Ditto.
	* Makefile.in:  Ditto.
	* libio/Makefile.in:  Ditto.
	* libmath/Makefile.in:  Ditto.
	* libsupc++/Makefile.in:  Ditto.
	* src/Makefile.in:  Ditto.

	* mkcheck.in:  Use libtool.  Split things out into functions.

2000-11-12  Alexandre Petit-Bianco  <apbianco@cygnus.com>

        * Makefile.am (tmp-libstdsc++.INC:): Do not use -I$(top_builddir).
        * Makefile.in: Regenerate.

2000-11-12  David Edelsohn  <edelsohn@gnu.org>

        * acinclude.m4 (GLIBCPP_CHECK_WCHAR_T_SUPPORT): Add test for
        libiconv.a providing wchar_t support functions.
	* aclocal.m4: Regenerate.
	
2000-11-12  Loren J. Rittle  <ljrittle@acm.org>

        * acinclude.m4 (GLIBCPP_ENABLE_ATOMICITY): Handle FreeBSD.
        * aclocal.m4, configure: Rebuilt.

2000-11-12  Brent Verner  <brent@rcfile.org>

        * include/c_std/bits/wrap_langinfo.h: New file.
        * include/c_std/langinfo.h: New file.
        * include/bits/codecvt.h (__enc_trants::__enc_traits()): Bring in
	CODESET from _C_legacy::CODESET if using shadow headers.
	* src/Makefile.am: Add new files.
	* src/Makefile.in: Regenerate.
	
2000-11-12  Mark Mitchell  <mark@codesourcery.com>

	* include/c/bits/std_cmath.h (abs): Change extern "C" declaration
	of `abs (double)' to ...
	(fabs): this.

	* config/os/solaris/solaris2.7/bits/os_defines.h: Define
	__EXTENSIONS__.

2000-11-11  Mark P Mitchell  <mark@codesourcery.com>

	* include/bits/basic_file.h (__basic_file): Don't use __c_wfile_type
	when _GLIBCPP_USE_WCHAR_T is not defined.

2000-11-10  Phil Edwards  <pme@sources.redhat.com>

	* include/bits/codecvt.h (__iconv_adaptor):  New adaptor function,
	  courtesy of Alexandre Oliva, to handle const/non-const signatures.
	  (codecvt::do_out):  Use.
	  (codecvt::do_in):  And here.

2000-11-10  Gabriel Dos Reis  <gdr@codesourcery.com>

	* include/bits/cpp_type_traits.h: Fix typos.  Adjust formatting.

2000-11-10  Gabriel Dos Reis  <gdr@codesourcery.com>

	* include/bits/localefwd.h (_Count_ones<>::_S_halfcount,
	_Count_ones<>::_S_count): Turn into enumerators.

2000-11-08  Mark Mitchell  <mark@codesourcery.com>

	* include/bits/codecvt.h (codecvt::do_out): Make it const-correct.
	(codecvt::do_in): Likewise.

2000-11-08  David Edelsohn  <edelsohn@gnu.org>

	* src/locale-inst.cc: Add explicit instantiations of
	_M_fill_insert and fill_n<..., unsigned long,...> .

2000-11-06  Gabriel Dos Reis  <gdr@codesourcery.com>

        * include/bits/std_complex.h (conj): Undo double removal.

2000-11-06  Alexandre Oliva  <aoliva@redhat.com>

	* acinclude.m4 (LIB_AC_PROG_CXX): Remove CXX from the list of
	alternatives for CXX_libstdcxx, now that it is useless.
	* aclocal.m4, configure: Rebuilt.

2000-11-04  Mark Mitchell  <mark@codesourcery.com>

	* acinclude.m4 (LIB_AC_PROG_CXX): Set CXX_libstdcxx from CXX.
	* aclocal.m4: Regenerated.
	* configure: Likewise.

	* acinclude.m4 (GLIBCPP_CHECK_CTYPE_SUPPORT): Fix punctuation in
	use of `test'.
	* aclocal.m4: Regenerated.
	* configure: Likewise.

2000-11-04  Alexandre Oliva  <aoliva@redhat.com>

	* acinclude.m4 (CXX): Prevent it from being cached.
	* aclocal.m4, configure, */Makefile.in: Rebuilt.

2000-11-03  David Edelsohn <dje@watson.ibm.com>

	* acinclude.m4 (GLIBCPP_CHECK_OS): Add AIX target selecting threads
	  flag based on multilib definition of $CXX.
	* mknumeric_limits (LDFLAGS): Add AIX target linking with pthreads
	  based on multilib definition of $CXX.
	* config/os/aix/bits/os_defines.h (_G_USING_THUNKS): Define as 0.

2000-11-03  Phil Edwards  <pme@sources.redhat.com>

	* acinclude.m4:  Cleanups.
	* aclocal.m4:  Regenerated.
	* configure:  Ditto.
	* Makefile.in:  Ditto.
	* libio/Makefile.in:  Ditto.
	* libmath/Makefile.in:  Ditto.
	* libsupc++/Makefile.in:  Ditto.
	* src/Makefile.in:  Ditto.

	* docs/install.html:  Removal of EGCS.
	* docs/23_containers/wrappers_h.txt:  Likewise.
	* docs/faq/index.html:  Likewise.
	* docs/faq/index.txt:  Regenerated.
	* docs/thanks.html:  More people.

2000-11-03  David Edelsohn  <edelsohn@gnu.org>

	* include/c/bits/std_cwchar.h: Undefine macro that conflicts
	with function name defined in this file.

Thu Nov  2 23:19:20 2000  Mark P Mitchell  <mark@codesourcery.com>

	* include/c/bits/std_cctype.h: Undefine macros that conflict
	with function names defined in this file.
	* include/c/bits/std_cstdio.h: Likewise.

2000-11-02  Mark Mitchell  <mark@codesourcery.com>

	* acinclude.m4 (GLIBCPP_CHECK_CTYPE_SUPPORT): Fix typo.

Thu Nov  2 10:11:45 2000  Mark P Mitchell  <mark@codesourcery.com>

	* acinclude.m4 (GLIBCPP_CHECK_CTYPE_SUPPORT): Add support for IRIX.
	* aclocal.m4: Regenerated.
	* Makefile.in: Regenerated.
	* libio/Makefile.in: Likewise.
	* libmath/Makefile.in: Likewise.
	* libsupc++/Makefile.in: Likewise.
	* src/Makefile.in: Likewise.
	* configure: Likewise.
	* config/os/irix/bits/ctype_base.h: Revise.
	* config/os/irix/bits/ctype_inline.h: Likewise.
	* config/os/irix/bits/ctype_noninline.h: Likewise.

	* testsuite/22_locale/codecvt_unicode_char.cc: Don't run it
	if not _GLIBCPP_USE_WCHAR_T.
	* testsuite/22_locale/codecvt_unicode_wchar_t.cc: Likewise.
	* testsuite/22_locale/ctor_copy_dtor.cc: Likewise.
	* testsuite/22_locale/ctype_wchar_t_members.cc: Likewise.
	
	* mkcheck.in: Fix echoing of -rpath option.
	
	* config/os/irix/bits/atomicity.h (_Atomic_word): Make it a
	signed type.
	(__exchange_aand_add): Adjust accordingly.
	(__atomic_add): Likewise.
	
2000-11-02  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* src/locale.cc: Match orderings for static members.
	* include/bits/fstream.tcc: Fixes for cin.

2000-11-02  Gabriel Dos Reis  <gdr@codesourcery.com>

	* include/bits/std_complex.h (complex<>): Remove (cos<>, cosh<>,
	exp<>, log<>, log<>, sin, sinh<>) friend declarations.
	(cos, cosh, sin, sinh): Define primary templates.

	* src/complex.cc (cos<>, cosh<>, sin<>, sinh<>): Comment out
	definitions. 

2000-11-01  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* bits/basic_file.h (_M_open_mode): Change signature, move
	specializations to..
	* config/c_io_libio.cc: ...here.
	* acinclude.m4 (GLIBCPP_ENABLE_CSTDIO): Add sdtio option, remove wince.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* config/c_io_stdio.h: New file.
	* config/c_io_stdio.cc: New file.
	* docs/configopts.html: Modify documentation.
	
2000-10-31  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* include/c/bits/std_cwctype.h: Add more undefs.

2000-10-31  Gabriel Dos Reis  <gdr@codesourcery.com>

	* include/bits/std_complex.h (norm): Forward declare.
	(complex<>): Comment out friend declaration of conj<>.
	(conj<>): Comment out specialization.
	(exp, log, log10): Define primary templates.

	* src/complex.cc (exp<>, log<>, log10<>): Comment out
	specializations. 

2000-10-31  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* include/bits/std_complex.h: Remove duplicate definition of conj.
	* include/c/bits/std_cwctype.h: Consistent placement of undefs.
	
2000-10-31  Gabriel Dos Reis  <gdr@codesourcery.com>

	* src/complex.cc (arg, polar): Comment out specializations.

	* include/bits/std_complex.h (complex<>): Remove arg<> friend
	declaration. 
	(arg): Define primary template.
	(polar): Likewise.
	(conj): Likewise.

2000-10-31  Gabriel Dos Reis  <gdr@codesourcery.com>

	* include/c/bits/std_cwctype.h: #undef possible function-like
	macro definitions of iswxxx functions, which might be brought in
	by <wctype.h>.  Those macro definitions prevent build on some
	linux-based systems.
	
	* include/bits/std_complex.h (complex<>): Comment out friend
	declarations of abs<> specializations.
	(abs): Define primary template.

	* src/complex.cc (abs): Comment out specialization definition.

2000-10-30  Phil Edwards  <pme@sources.redhat.com>

	* acinclude.m4 (GLIBCPP_ENABLE_DEBUG):  Raise debugging level from
	  the default of 2 to 3.
	* configure.in:  Fix minor typos.  SUBST the values of enable_shared
	  and enable_static so that mkcheck will be aware of them.  Put the
	  test for gconv.h in with all the other header tests.
	* aclocal.m4:  Regenerate.
	* configure:  Ditto.
	* Makefile.in:  Ditto.
	* libio/Makefile.in:  Ditto.
	* libmath/Makefile.in:  Ditto.
	* libsupc++/Makefile.in:  Ditto.
	* src/Makefile.in:  Ditto.

	* config/os/solaris/solaris2.7/bits/os_defines.h:  Define
	  _G_USING_THUNKS to 0.

2000-10-30  Benjamin Kosnik  <bkoz@redhat.com>

	* src/complex_io.cc : Remove ancient defines.
	* config/os/gnu-linux/bits/os_defines.h: Add defines.
	* libsupc++/tinfo2.cc: Change to cstddef.

	* include/bits/codecvt.h: Add include of c++config.h, so that
	__USE_GNU gets defined. (Important for alpha.)

	* include/c/bits/std_cwctype.h: Same.
	* include/c/bits/std_ctime.h: And here.
	* include/c/bits/std_cstdarg.h: Same.
	* include/c/bits/std_csignal.h: Same.
	* include/c/bits/std_csetjmp.h: Same.
	* include/c/bits/std_clocale.h: Same.
	* include/c/bits/std_climits.h: Touch.
	* include/c/bits/std_cfloat.h: Same.
	* include/c/bits/std_cerrno.h: Same.
	* include/c/bits/std_cwchar.h: Same.
	* include/c/bits/std_cassert.h: Same.
	* include/c/bits/std_cctype.h: Same.	
	* include/c/bits/std_cstddef.h: And here.
	* include/c/bits/std_cstdlib.h: And here.
	* include/c/bits/std_cstdio.h: Same.
	* include/c/bits/std_cstring.h: Add names to namespace std::.

	* include/bits/c++config (_GNU_SOURCE): Move linux-specific macros
	from here...
	(_ISOC99_SOURCE): And this one....
	* config/os/gnu-linux/bits/os_defines.h: ...to here.
	
	* include/bits/codecvt.h (codecvt<_InternT, _ExternT,
	__enc_traits>::do_in): Don't cast to const, this is a bug in glibc
	prior to 2.2.
	(codecvt<_InternT, _ExternT, __enc_traits>::do_out): Same.
	* include/c/bits/std_cwchar.h: Add using declarations for mbstate_t.
	
2000-10-30  Steven King  <sxking@uswest.net>

	* include/bits/codecvt.h: Add cast.
	* include/c_std/stdio.h: Re-add printf using declaration.
	* include/c_std/bits/std_cstdio.h: Same
	* testsuite/22_locale/codecvt_wchar_t_char.cc: Fixup testsuite.
	* testsuite/22_locale/ctor_copy_dtor.cc: Same.
	* testsuite/22_locale/facet.cc: Same.
	* testsuite/22_locale/global_templates.cc: Same.
	* testsuite/22_locale/operators.cc: Same.
	* testsuite/22_locale/static_members.cc: Same.
	* testsuite/26_numerics/c_math.cc: Same.
	* testsuite/26_numerics/complex_inserters_extractors.cc: Same.
	* testsuite/27_io/fpos.cc: Same.
	* testsuite/27_io/istream_extractor_arith.cc: Same.
	* testsuite/27_io/istream_unformatted.cc: Same.
	* testsuite/27_io/ostream_inserter_arith.cc: Same.
	* testsuite/27_io/streambuf.cc: Same.

2000-10-30  Mark Mitchell  <mark@codesourcery.com>

        * acinclude.m4 (GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT): Check 
        for cabs, cabsf, and cabsl, too.
        * aclocal.m4: Regenerated.
        * config.h.in: Likewise.
        * configure: Likewise.
        * libmath/Makefile.am (libmath_la_SOURCES): Remove cabs.c and
        cabsf.c.
        * libmath/Makefile.in: Regenerated.
        * libmath/complex-stub.h (cabs): Don't declare if the system
        already provides this function.
        (cabsf): Likewise.
        (cabsl): Likewise.
        * src/complex.cc (abs): Directly use `hypot' since we can't call
        cabs on IRIX.

2000-10-30  Joseph S. Myers  <jsm28@cam.ac.uk>

	* acinclude.m4: Update URL on egcs.cygnus.com to point to
	gcc.gnu.org.
	* aclocal.m4, configure: Regenerate.
	* src/gen-num-limits.cc, include/bits/c++config,
	include/bits/stl_config.h: Remove EGCS references.

2000-10-29  Mark Mitchell  <mark@codesourcery.com>

	* mkcheck.in (test_file): Use -rpath, rather than --rpath, when
	building shared executables.

2000-10-29   Mark Harig <mharig@landmark.com>

	* src/Makefile.am: Change logic for include dir options.
	* src/Makefile.in: Regenerate.
	* libsupc++/Makefile.am: Ditto.
	* libsupc++/Makefile.in: Regenerate.
	
2000-10-29  Benjamin Kosnik  <bkoz@redhat.com>

	* configure.in: Simplify use of AC_CACHE_SAVE.  Put linked files
	in $(top_builddir)/include/bits, not $(top_builddir)/bits, to help
	with libgcj build issues and improve consistency with the source
	directory's include directory setup.
	* configure: Regenerate.
	* acinclude.m4: Same here.
	* aclocal.m4: Regenerate.
	* mknumeric_limits (OUT_H): Also change paths here.
	* mkcheck.in (C_DIR): And here.
	* mkc++config (OUT_H): And here.
	* libmath/Makefile.am (INCLUDES): And here.
	* src/Makefile.am (INCLUDES): Change to $(top_builddir)/include.
	* libio/Makefile.am: Ditto.
	* libsupc++/Makefile.am (INCLUDES): Ditto.

2000-10-29  Mark Mitchell  <mark@codesourcery.com>

	* config/c_io_libio.cc (basic_file<char>::__basic_file): 
	Don't pass a NULL _IO_wide_data to _IO_no_init when
	_GLIBCPP_USE_WCHAR_T is not defined.
	* config/c_io_libio.h (_IO_codecvt): Don't declare when 
	_GLIBCPP_USE_WCHAR_T is not defined.
	* config/c_io_libio_codecvt.c: Don't compile it 
	when _GLIBCPP_USE_WCHAR_T is not defined.
	* include/bits/codecvt.h (codecvt<_InternT, _ExternT, __enc_traits):
	Don't define this specialization when _GLIBCPP_USE_WCHAR_T 
	is not defined.
	* include/bits/locale_facets.h (<bits/std_cwctype.h>): Don't
	include it when _GLIBCPP_USE_WCHAR_T is not defined. 
	* src/codecvt.cc (__enc_traits::_S_max_size): Don't define
	when _GLIBCPP_USE_WCHAR_T is not defined.
	* src/localename.cc (locale::_Impl::_M_construct_collate):
	Don't call wide-character functions when _GLIBCPP_USE_WCHAR_T is 
	not defined.
	(locale::_Impl::_M_construct_ctype): Likewise.
	(locale::_Impl::_M_construct_monetary): Likewise.
	(locale::_Impl::_M_construct_numeric): Likewise.
	(locale::_Impl::_M_construct_time): Likewise.
	(locale::_Impl::_M_construct_messages): Likewise.
	
	* acinclude.m4 (GLIBCPP_ENABLE_ATOMICITY): Handle IRIX.
	* aclocal.m4: Regenerated.
	* configure: Likewise.
	* config/os/irix/bits/atomicity.h: New file.
	* config/os/irix/bits/os_defines.h (_POSIX_SOURCE): Undefine.
	(__off_t): Define.
	(__off64_t): Likewise.
	(__ssize_t): Likewise.
	(_G_USING_THUNKS): Define to zero.
	
2000-10-28  Mark Mitchell  <mark@codesourcery.com>

	* src/string-inst.cc (basic_string<C>::npos): Explicitly
	instantiate it.

2000-10-26  Benjamin Kosnik  <bkoz@redhat.com>

	* include/c/bits/std_cmath.h: Fix double declarations in namespace std.

	Clean up naming, consistency in "C" library autoconf testing.
	* acinclude.m4 (GLIBCPP_CHECK_CTYPE): For consistency, change to
	GLIBCPP_CHECK_CTYPE_SUPPORT.
	(GLIBCPP_CHECK_STDLIB_SUPPORT): Add.
	* aclocal.m4: Regenerate.
	* configure.in: And here. 
	Add call to GLIBCPP_CHECK_STDLIB_SUPPORT.
	* configure: Regenerate.
	
2000-10-26  David Edelsohn  <edelsohn@gnu.org>

	* acinclude.m4 (GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_2): New macro.
	(GLIBCPP_CHECK_MATH_SUPPORT): Use it to test for strtold.
	
2000-10-26  Phil Edwards  <pme@sources.redhat.com>  
	    David Edelsohn  <dje@watson.ibm.com>

	* acinclude.m4 (GLIBCPP_CHECK_LINKER_FEATURES): Comment out
	--gc-sections stuff entirely to avoid misleading people.
        (GLIBCPP_ENABLE_CSTDIO): Merge need_libio and need_xtra_libio.
        * libio/Makefile.am (LIBIO_SRCS,LIBIO_WSRCS,LIBIO_XTRA_SRCS):
	Rearrange and merge.
        * libio/libio.h: Simplify, make fewer assumptions.  Define those
	macros which must be defined.
        * config/os/solaris/solaris2.7/bits/os_defines.h: Simplify as a
	result.

2000-10-26  Mark Mitchell  <mark@codesourcery.com>

	* include/backward/streambuf.h: New file.

2000-10-26  David Edelsohn  <dje@watson.ibm.com> 
        
	* config/os/aix/bits/ctype_inline.h (is): Use __OBJ_DATA directly.
        * config/os/aix/bits/ctype_noninline.h (do_tolower): Fix typo.
        * config/os/aix/bits/os_defines.h: Add AIX defines.

2000-10-26  Benjamin Kosnik  <bkoz@redhat.com>

	* acinclude.m4 (GLIBCPP_ENABLE_LONG_DOUBLE): Remove.
	* aclocal.m4: Regenerate.
	* configure.in: Remove GLIBCPP_ENABLE_LONG_DOUBLE.
	* configure: Regenerate.
	* docs/configopts.html: Remove.
	* src/complexl.cc: Revert.
	* config.h.in: Remove.
	* include/c_std/bits/std_cmath.h: Remove guards based on
	_GLIBCPP_USE_LONG_DOUBLE.
	* include/c/bits/std_cmath.h: Same. Format. Match c_std behavior
	with respect to long double signatures.

	* config/os/aix/bits/ctype_noninline.h (ctype): Remove throw
	specification.
	* config/os/newlib/bits/ctype_noninline.h (ctype): And here.
	* config/os/solaris/solaris2.6/bits/ctype_noninline.h (ctype): Same.
	* config/os/solaris/solaris2.5/bits/ctype_noninline.h (ctype): Same.
	* config/os/generic/bits/ctype_noninline.h (ctype): Same.
	* config/os/bsd/bits/ctype_noninline.h (ctype): Same.

2000-10-26  Gabriel Dos Reis  <gdr@codesourcery.com>

	* include/bits/std_valarray.h (valarray::valarray): Fix thinko.
	Use __valarray_copy_construct only where appropriate.

2000-10-25  Mark Mitchell  <mark@codesourcery.com>

	* Makefile.in (check): Don't make mkcheck executable.
	(check-install): Likewise.
	* configure.in (AC_OUTPUT): Make mkcheck executable.
	* mkcheck.in (top_srcdir): New variable.
	(INC_PATH): Set the path to the backward and ext directories
	correctly.
	
2000-10-25  Phil Edwards  <pme@sources.redhat.com>

        * configure.in:  Check for gconv.h.
        * libio/wfileops.c:  Wrap gconv.h in HAVE_GCONV_H.

        * config/c_io_libio_codecvt.c:  Change __mbstate_t to __c_mbstate_t.
        * libio/_G_config.h:  And here.
        * libio/iofwide.c:  And here.
        * libio/libio.h:  And here.

        * config/os/solaris/solaris2.7/bits/ctype_noninline.h:  Remove
          exception specification to match declaration.
        * include/bits/locale_facets.tcc:  Include bits/std_clocale.h.

2000-10-24   Mark Harig <mharig@landmark.com>

        * docs/configopts.html: Added documentation for the
        "--enable-version-specific-runtime-libs" and
        "--with-gxx-include-dir" configuration switches.

2000-10-24  Benjamin Kosnik  <bkoz@redhat.com>

        * include/bits/stl_pair.h (make_pair): Add LWG solution.

        * testsuite/21_strings/compare.cc (test01): Inject namespace std
	into the mix.

	* mkcheck.in (MAX_MEM_USAGE): Bump up to 3072. Strangely enough,
	this works. 

2000-10-24  Levente Farkas  <lfarkas@mindmaker.hu>

	* include/bits/std_bitset.h (_M_do_find_next): Fix typo.

2000-10-24  Phil Edwards  <pme@sources.redhat.com>

        * acconfig.h:  List _GLIBCPP_USE_THREADS.
        * acinclude.m4:  General formatting cleanup (tabs/spaces), typo
          correction, etc.  Add comments about following *real* changes
          where they are used.
          (GLIBCPP_ENABLE_C_MBCHAR):  New test...
          (GLIBCPP_CHECK_WCHAR_T_SUPPORT):  ...results used here.
          (GLIBCPP_ENABLE_CSTDIO):  Define need_wlibio iff wide characters
          are requested.
          (GLIBCPP_ENABLE_THREADS):  If threads are used, define new
          macro _GLIBCPP_USE_THREADS in c++config.h.
          (GLIBCPP_ENABLE_SHADOW):  For C_INCLUDE_DIR, change () to {} as
          this is used in both makefiles and shell scripts (mkcheck).
        * configure.in:  Call GLIBCPP_ENABLE_C_MBCHAR.

        * libio/_G_config.h:  Wrap _IO_MTSAFE_IO in _GLIBCPP_USE_THREADS.
        * config/c_io_libio.h:  In nonthreaded case, typedef __c_lock to
          something harmless, like int.

        * config/os/aix/bits/os_defines.h:  Guard with _GLIBCPP_OS_DEFINES,
          add comment/instructions.
        * config/os/bsd/bits/os_defines.h:  Ditto.
        * config/os/generic/bits/os_defines.h:  Ditto.
        * config/os/gnu-linux/bits/os_defines.h:  Ditto.
        * config/os/irix/bits/os_defines.h:  Ditto.
        * config/os/newlib/bits/os_defines.h:  Ditto.
        * config/os/solaris/solaris2.5/bits/os_defines.h:  Ditto.
        * config/os/solaris/solaris2.6/bits/os_defines.h:  Ditto.

        * mkcheck.in:  Limit the available heap size for testsuite
          binaries, initially at 2MB.

2000-10-23  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/21_strings/compare.cc (test01): Add using declarations.

	* include/c_std/bits/std_cerrno.h: And here.
	* include/c_std/bits/std_cassert.h: Tweaks.

	* mkcheck.in: Simplify.
	
	* acinclude.m4 (GLIBCPP_ENABLE_LONG_DOUBLE): Simplify.
	(GLIBCPP_ENABLE_LONG_LONG): Same.
	* aclocal.m4: Regenerate.

	* src/Makefile.am (c_shadow_headers): Add features.h,
	bits/wrap_features.h.
	* src/Makefile.in: Regenerate.
	* include/c_std/features.h: New file.
	* include/c_std/bits/wrap_features.h (_CPP_WRAP_FEATURES_H): New
	file. Need to have c++config.h included before this file so
	_ISOC99_SOURCE around.

	* include/c_std/sys/cdefs.h: Hack.
	* include/c_std/stdlib.h: Same, use c++config.h.
	* include/c_std/bits/std_cstdlib.h: Use _GLIBCPP_HAVE_STRTOLD.

	* include/c_std/bits/std_cassert.h: Fix.
	* include/c_std/bits/std_cerrno.h: Make consistent.

	* include/c_std/bits/std_csetjmp.h (setjmp): Unscope global
	declaration from ::_C_legacy to _C_legacy.

	* include/c_std/bits/std_cstdio.h: same with printf.
	* include/c_std/stdio.h: And here.

	* include/c_std/bits/std_cstdlib.h: abort, exit comment.
	* include/c_std/stdlib.h: Same here.
	
2000-10-23  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/21_strings/compare.cc (test01): Add using declarations.

	* include/c_std/bits/std_cerrno.h: And here.
	* include/c_std/bits/std_cassert.h: Tweaks.

	* mkcheck.in: Simplify.
	
	* acinclude.m4 (GLIBCPP_ENABLE_LONG_DOUBLE): Simplify.
	(GLIBCPP_ENABLE_LONG_LONG): Same.
	* aclocal.m4: Regenerate.

	* src/Makefile.am (c_shadow_headers): Add features.h,
	bits/wrap_features.h.
	* src/Makefile.in: Regenerate.
	* include/c_std/features.h: New file.
	* include/c_std/bits/wrap_features.h (_CPP_WRAP_FEATURES_H): New
	file. Need to have c++config.h included before this file so
	_ISOC99_SOURCE around.

	* include/c_std/sys/cdefs.h: Hack.
	* include/c_std/stdlib.h: Same, use c++config.h.
	* include/c_std/bits/std_cstdlib.h: Use _GLIBCPP_HAVE_STRTOLD.

	* include/c_std/bits/std_cassert.h: Fix.
	* include/c_std/bits/std_cerrno.h: Make consistent.

	* include/c_std/bits/std_csetjmp.h (setjmp): Unscope global
	declaration from ::_C_legacy to _C_legacy.

	* include/c_std/bits/std_cstdio.h: same with printf.
	* include/c_std/stdio.h: And here.

	* include/c_std/bits/std_cstdlib.h: abort, exit comment.
	* include/c_std/stdlib.h: Same here.
	
2000-10-21  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* acinclude.m4 (GLIBCPP_ENABLE_LONG_DOUBLE): New macro.
	* aclocal.m4: Regenerate.
	* configure.in: Use it.
	* configure: Regenerate.
	* src/complexl.cc: Fixup.
	* include/c_std/bits/std_cmath.h: Fixup.
	* include/c/bits/std_cmath.h: Fixup.
	* docs/configopts.html: Add docs.
	
	* docs/links.html: Add links to defects list, standards FAQ.

	* testsuite/21_strings/ctor_copy_dtor.cc (test01): Disable tests
	with string creation that allocate huge ammounts of memory.

	* include/c/bits/std_cstddef.h: Put size_t, ptrdiff_t in
	namepace std.

2000-10-21  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>

    	* libsupc++/exception.cc: Use namespace std.
    	* libsupc++/new: DITTO.
    	* libsupc++/new_op.cc: DITTO.
    	* libsupc++/new_opnt.cc: DITTO.
    	* libsupc++/new_opv.cc: DITTO.
    	* libsupc++/new_opvnt.cc: DITTO.
    	* libsupc++/tinfo.cc: DITTO.
    	* libsupc++/tinfo.h: DITTO.
    	* libsupc++/vec.cc: DITTO.
    	* libsupc++/Makefile.am: Blank lines removal.

2000-10-21  Joseph S. Myers  <jsm28@cam.ac.uk>

	* docs/configopts.html, docs/install.html, docs/17_intro/BADNAMES,
	docs/17_intro/howto.html, docs/18_support/howto.html,
	docs/19_diagnostics/howto.html, docs/20_util/howto.html,
	docs/21_strings/howto.html, docs/22_locale/howto.html,
	docs/23_containers/howto.html, docs/24_iterators/howto.html,
	docs/25_algorithms/howto.html, docs/26_numerics/howto.html,
	docs/27_io/howto.html, docs/ext/howto.html, docs/faq/index.html:
	Remove many EGCS references; use current absolute URLs on
	gcc.gnu.org or sources.redhat.com for messages in list archives.
	* docs/faq/index.txt: Regenerate.

2000-10-19  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* testsuite/22_locale/codecvt_unicode_char.cc (test01): Adjust
	creation of state_type for unicode_codecvt to take into account
	the byte order markings. Add distinct tests for UCS-2BE and UCS-2LE.
	* testsuite/22_locale/codecvt_unicode_wchar_t.cc (test01): Same.
	* include/bits/codecvt.h (__enc_traits): Add support for encodings
	that need a byte order marker. Needed for correct unicode support.

	* src/locale.cc: Remove explicit qualification std::.
	(locale::locale(const char* __name)): Revert, as named locale
	support not finished.
	* src/localename.cc (locale::_Impl:: _Impl(size_t __numfacets,
	size_t __refs, bool __has_name = false, string __name): Move
	default argument...
	* include/bits/localefwd.h: Here.
	
2000-10-18  Chip Salzenberg  <chip@valinux.com>

        * libio/libio.h (_IO_USER_LOCK): Define.

2000-10-18  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* libsupc++/Makefile.am (exception): Change exception.cc to
	exception_support.cc.
	(CXXLINK): Remove bogus --tag CC.
	* libsupc++/Makefile.in: Regenerate.
	* libsupc++/exception.cc: Move to...
	* libsupc++/exception_support.cc: ...here.

	* src/Makefile.am: Remove bogus --tag CC.
	* src/Makefile.in: Regenerate.
	
	* include/bits/locale_facets.tcc (use_facet): Simplify.
	* include/bits/locale_facets.h (use_facet<ctype<char> >): Correct
	use_facet declaration. Replace 'const ctype<T>' with ctype<T>.
	(use_facet<ctype<wchar_t> >): Same.
	* src/locale-inst.cc: Remove explicit instantiation.
	* src/locale.cc: Correct signature here too.
	(_Bad_use_facet::what()): Correct error string.
	* include/bits/localefwd.h: Correct comment.

	* mkcheck.in (C_DIR): Change libsupc++/include to libsupc++.

2000-10-17  Martin Buchholz <martin@xemacs.org>

	* testsuite/27_io/istream_seeks.cc: Fix spelling typo.
	* testsuite/27_io/ostream_seeks.cc: Similarly.

2000-10-17  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	via Alexandre Oliva  <aoliva@redhat.com>
	* libsupc++/Makefile.am: Add --tag CXX, --tag CC, comments.
	* libsupc++/Makefile.in: Regenerate.
	* src/Makefile.am: Duplicate code.
	* src/Makefile.in: Regenerate.
	
	* acinclude.m4 (GLIBCPP_ENABLE_RELIBGCC): Take this out.
	* aclocal.m4: Regenerate.
	* configure.in: And here.
	* configure: Regenerate.

	* acinclude.m4 (GLIBCPP_CHECK_LINKER_FEATURES): Disable
	test for SECTION_LDFLAGS.

2000-10-16  Benjamin Kosnik  <bkoz@gnu.org>

	Shadow headers would work if libsupc++ was strict about namespaces.
	This only possible if g++ maps std::size_t -> size_t. (Hint hint.)
	* include/c_std/assert.h: Add guards.
	* include/c_std/bits/std_climits.h: Correct typo.
	* include/c_std/ctype.h: Remove #error.

	* libio/libioP.h: Break up extern "C" bits around includes.
	* libio/libio.h: Only include C headers, or else _C_legacy namespaces
	will be nested.
	* libio/libioP.h: Same here.

2000-10-15 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>

	* include/c_std/unistd.h: Define some types only when defined in
	the original unistd.h.
    	* include/c_std/bits/std_cstddef.h: Explicitly ask for the
	definition of size_t, ptrdiff_t and NULL.
    	* include/c_std/bits/wrap_unistd.h: Blank lines removal.

2000-10-15  Phil Edwards  <pme@sources.redhat.com>

	* docs/configopts.html:  Remove libgcc-rebuild; HTML formatting.

2000-10-13  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>
            Mark Harig  <markh@landmark.com>

	* src/Makefile.am (toolexeclibdir): Add support fo
	VERSION_SPECIFIC_LIBS and --with-gxx-include-dir.
	* src/Makefile.in: Regenerate.
	* libsupc++/Makefile.am: Same.
	(glibcppinstalldir): Adjust.
	* libsupc++/Makefile.in: Regenerate.
	* Makefile.am: Remove gxx_include_dir. Remove INCLUDE. 
	* Makefile.in: Regenerate.
	* docs/configopts.html: Add descriptions of flags.
	
2000-10-11  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* libsupc++/Makefile.am: Use it.
	* libio/Makefile.am: Use it.
	* libmath/Makefile.am: Use it.
	* src/Makefile.am: Use it.
	* Makefile.am (AM_MAKEFLAGS): Remove includes.

	* acinclude.m4 (GLIBCPP_EXPORT_INCLUES): Move include macros here.
	(GLIBCPP_EXPORT_FLAGS): Move CXX flag setting here.
	* configure.in: Use it.

	* mkcheck.in (SRC_DIR): Use C_INCLUDE_DIR.

	* src/Makefile.am (CXXCOMPILE): Remove.
	* src/Makefile.in: Regenerate.
	* libsupc++/Makefile.am (CXXCOMPILE): Same here.
	* libsupc++/Makefile.in: Regenerate.

	* include/c_std/*: Merge with shadow.
	* include/c_std/bits/*: Same.

	* shadow: Remove directory.
	* shadow/*: De-populate.
	
2000-10-11  Phil Edwards  <pme@sources.redhat.com>

	* acinclude.m4 (GLIBCPP_CHECK_LINKER_FEATURES):  Comment out
	  exception-throwing code for linker test.
	* aclocal.m4:  Regenerate.
	* configure:  Regenerate.

2000-10-10  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* Makefile.am (LIBSUPCXX_INCLUDES): Adjust.
	* libsupc++/include: Remove
	* libsupc++/include/*: Move to ...
	* libsupc++: Here.
	* libsupc++/Makefile.am (glibcppinstall_HEADERS): Install headers.
	(glibcppinstalldir): New.
	
	* src/Makefile.am (c_base_headers): New.
	(c_shadow_headers): New
	(c_headers): New.
	(myinstallheaders): Correct install issues.
	* src/Makefile.in: Regenerate.
	
	* Makefile.am (CSHADOW_INCLUDES): Simplify.
	* Makefile.in: Regenerate.
	* acinclude.m4 (GLIBCPP_ENABLE_SHADOW): Add c_include_dir.
	* aclocal.m4: Regenerate.
	* mkcheck.in (SRC_DIR): Use it.
	
	* include/bits/std_stdexcept.h: And here.
	* include/bits/std_ios.h: Change std_exception.h to exception.
	* src/locale.cc: And here.
	* src/locale-inst.cc: And here.
	
	* include/bits/valarray_array.h: And here.
	* include/bits/stl_alloc.h: And here.
	* include/bits/stl_algobase.h: And here.
	* include/bits/pthread_allocimpl.h: And here.
	* include/bits/stl_construct.h: Change to std_new.h to new.

	* include/bits/locale_facets.h: Change std_typeinfo.h to typeinfo.

	* src/Makefile.am (INCLUDES): Add LIBSUPCXX_INCLUDES.
	(headers): Remove duplicated headers.
	(std_headers): And here.
	* src/Makefile.in: Regenerate.
	* libsupc++/Makefile.am (LIBSUPCXX_INCLUDES): Remove.
	* libsupc++/Makefile.in: Regenerate.
	* Makefile.am (LIBSUPCXX_INCLUDES): Add here.
	(AM_MAKEFLAGS): And here.
	* Makefile.in: Regenerate.
	* include/bits/std_typeinfo.h: Remove.
	* include/bits/std_new.h: Remove
	* include/bits/std_exception.h: Remove.
	* std/new: Remove.
	* std/typeinfo: Remove.
	* std/exception: Remove.

	* libio/_G_config.h (__need_ptrdiff_t): Add.
	
	* libsupc++/include/new: Change stddef.h to cstddef.
	* libsupc++/tinfo.h: Change limits.h to climits.
	* libsupc++/pure.cc: Comment out _GNU_LIBRARY_ bits, as this
	renders the file uncompilable. Add copyright.

	* include/c_std/bits/std_cstddef.h: Don't bring wchar_t into std
	namespace, as it is a fundamental type.

2000-10-09  Richard Henderson  <rth@cygnus.com>

	* libsupc++/pure.cc: New file.
	* libsupc++/Makefile.am (INCLUDES): Add top_builddir.
	(sources): Add pure.cc.
	* libsupc++/Makefile.in: Regenerate.

2000-10-09  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* docs/configopts.html: Edit.

	* libio/Makefile.am (INCLUDES): Remove duplicates, simplify.
	* libio/Makefile.in: Regenerate.
	* libmath/Makefile.am (INCLUDES): Remove duplicates, simplify.
	* libmath/Makefile.in: Regenerate.
	* libsupc++/Makefile.am (INCLUDES): Remove duplicate.
	* libsupc++/Makefile.in: Regenerate.

	* Makefile.am (AM_MAKEFLAGS): Add GLIBCPP_INCLUDES,
	TOPLEVEL_INCLUDES, LIBMATH_INCLUDES, LIBIO_INCLUDES,
	CSHADOW_INCLUDES up here.
	* Makefile.in: Regenerate.
	* src/Makefile.am (CSHADOW_INCLUDES): Add include/c_std, include/c
	for shadow headers.
	(myinstallheaders): Change glibcpp_includedir to GLIBCPP_INCLUDES.
	Move GLIBCPP_INCLUDES, TOPLEVEL_INCLUDES, LIBMATH_INCLUDES,
	LIBIO_INCLUDES, CSHADOW_INCLUDES up Makefile hierarchy.
	* src/Makefile.in: Regenerate.
	
	* include/c: New directory.
	* include/c/bits/(std_cassert.h, 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): Add, moving from...
	* include/bits: ...here.
	* include/c_std: New directory.
	* include/c_std/bits/*: Populate from...
	* shadow: ...here. Remove directory.
	
2000-10-08   Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* libsupc++/Makefile.am (INCLUDES): Add toplevel include directory.
	(INCLUDES): Add glibcpp_includedir.
	* libsupc++/Makefile.in: Regenerate.

	* acinclude.m4 (GLIBCPP_CHECK_OS): Link to os_defines.h.
	* aclocal.m4: Regenerate.
	* config/os/*/bits/os_defines: Adjust copyright dates.
	
2000-10-08  Phil Edwards  <pme@sources.redhat.com>

	* include/bits/c++config:  Include <bits/os_defines.h>
	* config/os/aix/bits/os_defines.h:  New file.
	* config/os/bsd/bits/os_defines.h:  Ditto.
	* config/os/generic/bits/os_defines.h:  Ditto.
	* config/os/gnu-linux/bits/os_defines.h:  Ditto.
	* config/os/irix/bits/os_defines.h:  Ditto.
	* config/os/newlib/bits/os_defines.h:  Ditto.
	* config/os/solaris/solaris2.5/bits/os_defines.h:  Ditto.
	* config/os/solaris/solaris2.6/bits/os_defines.h:  Ditto.
	* config/os/solaris/solaris2.7/bits/os_defines.h:  Ditto.

2000-10-07  David Edelsohn  <dje@watson.ibm.com> 
	
	* config/os/aix/bits/atomicity.h: New file.

2000-10-07  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>
        
        * acinclude.m4: Remove CPU_FLAGS
        * libio/Makefile.am: Here too.
        * Makefile.am: Here too.
        
        * src/Makefile.am (CONFIG_INCLUDES): Remove.
        (INCLUDES): Remove CONFIG_INCLUDES.
        (cpu_headers): Remove.
        (myinstallheaders): Remove cpu_headers.
        (generated_headers): Rename to build_headers.
        (build_headers): Add atomicity.h, ctype_base.h,
        ctype_specializations.h.
        
        * config/os: New directory.
        * config/aix: Move to...
        * config/bsd: Move to...
        * config/generic: Move to...
        * config/gnu-linux: Move to...
        * config/irix: Move to...
        * config/newlib: Move to...
        * config/solaris: Move to...
        * config/os/*: Here.

2000-10-07  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* acinclude.m4: Remove CPU_FLAGS
	* libio/Makefile.am: Here too.
	* Makefile.am: Here too.
	
	* src/Makefile.am (CONFIG_INCLUDES): Remove.
	(INCLUDES): Remove CONFIG_INCLUDES.
	(cpu_headers): Remove.
	(myinstallheaders): Remove cpu_headers.
	(generated_headers): Rename to build_headers.
	(build_headers): Add atomicity.h, ctype_base.h,
	ctype_specializations.h.

	* config/os: New directory.
	* config/aix: Move to...
	* config/bsd: Move to...
	* config/generic: Move to...
	* config/gnu-linux: Move to...
	* config/irix: Move to...
	* config/newlib: Move to...
	* config/solaris: Move to...
	* config/os/*: Here.
	
2000-10-06  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* src/Makefile.am: Remove OPTIMIZE_CXXFLAGS, WARN_CXXFLAGS,
	CONFIG_CXXFLAGS from here, and move to...
	* src/Makefile.in: Regenerate.
	* Makefile.am: ... here. Clean.
	(OPTIMIZE_CXXFLAGS): Move up Makefile hierarchy to here.
	(WARN_CXXFLAGS): Same.
	(CONFIG_CXXFLAGS): Same.
	* Makefile.in: Regenerate.
	* libsupc++/Makefile.am: Use top-level OPTIMIZE_CXXFLAGS,
	WARN_CXXFLAGS, CONFIG_CXXFLAGS as part of local AM_CXXFLAGS.
	* libsupc++/Makefile.in: Regenerate.
		
	Change math to libmath.
	* math: Move to libmath, delete.
	* libmath: New directory.
	* libmath/*: Populate.
	* src/Makefile.am (LIBMATH_INCLUDES): Change to libmath.
	(libstdc___la_LIBADD): Same.
	* src/Makefile.in: Regenerate.
	* configure.in: Add AC_OUTPUT for libmath/Makefile.
	* configure: Regenerate.
	* Makefile.am (SUBDIRS): Add libmath.
	* Makefile.in: Regenerate.
	* README (file): Change name.
	
2000-10-06  Benjamin Kosnik  <bkoz@cygnus.com>
            Richard Henderson  <rth@cygnus.com>
	    Alexandre Oliva  <aoliva@redhat.com>
	
	* libsupc++: New directory.
	* libsupc++/*: Populate.
	* libsupc++/Makefile.am (INCLUDES): Add -I../../gcc for
	eh-common.h, gansidecl.h.
	* configure.in: Add in libsupc++/Makefile to AC_OUTPUT.
	* configure: Regenerate.
	* Makefile.am (SUBDIRS): Add libsupc++.
	* Makefile.in: Regenerate.
	* src/Makefile.am (libstdc___la_LIBADD): Add in libsupc++.la
	* src/Makefile.in: Regenerate.
	* libio/Makefile.am: Remove extraneous, confusing bits.
	* libio/Makefile.in: Regenerate.
	
2000-10-05  Brent Verner  <brent@rcfile.org>

        * bits/istream.tcc [basic_istream::get(basic_streambuf&)]: Removed
	test for _M_gcount < in_avail(), as in_avail() only reports info
	for current buffer, causing method to return at end of buffer.
	* testsuite/27_io/istream_unformatted.cc [test07()]: New test.
	* testsuite/27_io/istream_unformatted-3.txt: New file.
	* testsuite/27_io/istream_unformatted-3.tst: New file.

2000-10-05  Benjamin Kosnik  <bkoz@fillmore.constant.com>

	* README (file): Adjust directory structures.
	* mkcheck.in (INC_PATH): Adjust for header changes.

2000-10-05  Phil Edwards  <pme@sources.redhat.com>

	* acinclude.m4 (GLIBCPP_CHECK_CTYPE):  Tweaks to message texts
	  for public relations purposes.
	* aclocal.m4:  Regenerated.
	* configure:  Regenerated.

	* docs/ext/howto.html:  Additional explanation about hashing.

2000-10-05  Benjamin Kosnik  <bkoz@cygnus.com>

	* include: New directory.
	* include/backward: New directory.
	* include/bits: New directory.
	* include/ext: New directory.
	* include/std: New directory.
	* include/*/*: Populate.

	* backwards: Move to include/backwards, delete.
	* bits: Move to include/bits, delete.
	* ext: Move to include/ext, delete.
	* std: Move to include/std, delete.
	
	* src/complex.cc: Adjust include of mathconf.

	* mkc++config (BASE_H): Add include.

	* src/Makefile.am: Support for topleve sources include directory.
	(INCLUDES): Add LIBMATH_INCLUDE.
	* src/Makefile.in: Regenerate.
	* math/Makefile.am (INCLUDES): Append /include.
	* math/Makefile.in: Regenerate.
	* libio/Makefile.am (INCLUDES): Add glibcpp_includedir.
	* libio/Makefile.in: Regenerate.
	
2000-10-04  Benjamin Kosnik  <bkoz@gnu.org>

	* libio/_G_config.h : Re-guard the __mbstate_t declaration.

2000-10-03  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* docs/22_locale/howto.html: Add link to proto-documentation on
	locales.
	* docs/documentation.html: Rename links for clarity.

	* src/Makefile.am (headers): Remove unistd.h, wrap_unistd.h. Add
	fcntl.h, iolibio.h, libioP.h, pthread.h, iconv.h. 
	* src/Makefile.in: Regenerate.
	
2000-10-02  Steven King  <sxking@uswest.net>

        * mkcshadow: Fixed script to output proper include guard.
        * bits/char_traits.h: Cleaned up types in char_traits<char> functions.
        * libio/_G_config.h: Hacked to make work with shadow heraders.
        * shadow/*: Hacked to make shadow headers work. 

2000-10-02  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	Self-compile with shadow headers.
	* acconfig.h (_GLIBCPP_USE_SHADOW_HEADERS): Define. Eventually,
	like _GLIBCPP_USE_NAMESPACES before it, this macro will die when
	it becomes the default way the library is built.
	* acinclude.m4 (GLIBCPP_ENABLE_SHADOW): New macro.
	* config/gnu-linux/bits/ctype_base.h (ctype_base): Use it.
	* config/gnu-linux/ctype.cc (ctype): Use it.
	
	* src/localename.cc (locale::_Impl::_M_replace_categories): Remove
	call to assert.
	* src/locale.cc: Explicitly cast mbstate_t to void* in calls to
	memset. This should not be necessary, but an ambiguous overload
	with it in.

	* shadow/bits/std_cwchar.h: Fix.
	* shadow/wchar.h: Fix.

	* config/gnu-linux/bits/ctype_base.h (ctype_base): Inject ctype
	enums into namespace std:: for ctype_base enum. Other OS types
	will have to do this as well.
	* config/gnu-linux/ctype.cc (ctype): Inject ctype data into
	namespace std, in particular __ctype_toupper, __ctype_tolower,
	__ctype_b.

	* shadow/iolibio.h: New file.
	* shadow/bits/wrap_iolibio.h: New file.
	* shadow/libioP.h: New file.
	* shadow/bits/wrap_libioP.h: New file.
	* shadow/bits/wrap_fcntl.h: New file.
	* shadow/fcntl.h: New file.
	* shadow/iconv.h: New file. Inject iconv names into the global
	namespace, unmangled for the moment.
	* shadow/bits/wrap_iconv.h: New file.
	* shadow/unistd.h: Remove. Useless.
	* shadow/bits/wrap_unistd.h: Remove.
	
	* src/Makefile.am: Take out machine-ansi.h, add fcntl.h unistd.h.
	* src/Makefile.in: Regenerate.
	
	* config/c_io_libio.h (_IO_codecvt): Change to normal C++ decl.
	
	* shadow/libio.h: Fix.
	* shadow/bits/wrap_libio.h: Fix.

	* shadow/bits/std_clocale.h: Remove typedef struct construct,
	which will not compile.
	* shadow/bits/std_ctime.h: Same.
	
	* shadow/pthread.h: New file. Put pthreads types and functions
	into global scope, which is probably not the correct long-term
	solution but has to be done at the moment before libio wrappers
	can even be started.
	* shadow/bits/wrap_pthread.h: New file.

	* bits/std_ios.h: Formatting tweak.
	* shadow/bits/std_cstdio.h: Format. Remove extraneous bits.

	* acinclude.m4 (GLIBCPP_CHECK_COMPILER_FEATURES): Add -Werror to
	tests for compiler features.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	
	* config/c_io_libio.cc: Remove fcntl.h include, as SEEK_SET
	redefined.
	* libio/libioP.h: Comment out fcntl.h include.

	* shadow/math.h: Add in float and long declarations, as per ISO C9X.

	* bits/c++config: Define _ISOC99_SOURCE.

	* acinclude.m4 (GLIBCPP_ENABLE_SHADOW): Add -fno-builtins to
	CSHADOWFLAGS, as well as _ISOC99_SOURCE.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* src/Makefile.am (CSHADOW_INCLUDES): Enable, again.
	(CSHADOW_INCLUDES): Add -I$(top_srcdir)/std before shadow include dir.
	(CXXCOMPILE): Remove $(DEFS), which searches $(top_srcdir) before
	std or shadow directories.
	(LTCXXCOMPILE): Same.
	(INCLUDES): Add $(top_builddir) before $(top_srcdir).
	(AC_CXXFLAGS): Add CSHADOWFLAGS.
	* src/Makefile.in: Regenerate.

	* src/complex.cc (FCT): Change ::name to name.
	* src/complexl.cc (FCT): Same. Use _GLIBCPP_USE_LONG_LONG here.
	* src/complexf.cc (FCT): Same.

	* src/complexf.cc: Remove FCT define, as things are properly
	overloaded in the std namespace with the shadow headers.
	* src/complexl.cc: Same.
	* src/complex.cc: Same.
	
2000-09-25  Phil Edwards  <pme@sources.redhat.com>

	* docs/documentation.html:  Add link to...
	* docs/ext/howto.html:  ...this.  New dir/file, describing library
	  extensions (both ours and SGI's).
	* docs/faq/index.html:  Small updates.
	* docs/faq/index.txt:  Regenerate.

2000-09-25 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>

        * bits/basic_file.h (_M_open_mode): Remove extra qualifier.

2000-09-25  Levente Farkas  <lfarkas@mindmaker.hu>

	* ext/stl_hashtable.h (_M_copy_from): Change __copy to __local_copy.
	
2000-09-19  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* src/localename.cc (locale::_Imp) : Remove typedefs.	
	* bits/localefwd.h (locale::locale(const locale& __other, _Facet*
	__f): Consistency check, call _Imp ctor with reference argument
	of 1.
	* bits/localefwd.h: Change _S_num_categories to
	_S_categories_num. Add new data member, _S_facets_num, which is
	the number of standard facets.

2000-09-19  Phil Edwards  <pme@sources.redhat.com>

	* docs/21_strings/howto.html:  Fix editor lossage from last commit.

2000-09-19  Phil Edwards  <pme@sources.redhat.com>

	* docs/thanks.html:  More thanks.
	* docs/18_support/howto.html:  Fix thinko.
	* docs/21_strings/howto.html:  Minor tweaks and updates to URLs.
	  Redo the string transformation notes and link to...
	* docs/22_locale/howto.html:  ...here.

2000-09-18  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* src/locale-inst.cc: Add time_put_byname and
	time_get_byname instantiations.
	* bits/locale_facets.h: Correct default, private derivation to
	public derivation in _byname declarations.
	* src/locale.cc (locale::classic()): Simplify.
	* src/localename.cc (locale::_Impl:: _Impl(const _Impl& __other,
	const string& __name, category __cat, size_t __refs): Re-work for
	named locales.
	(_M_normalize_category_names): Remove.

	* testsuite/22_locale/global_templates.cc (test01): Tweaks.
	* testsuite/22_locale/ctor_copy_dtor.cc (test01): More tests.

2000-09-18  Yuri V. Baskakov  <yuribsk@lab.sun.mcst.ru>

	* bits/std_bitset.h (operator>>): Change to char_type.

2000-09-15  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* src/locale.cc (locale::locale(const char* __name)): Consolidate
	name setting. Add checks for NULL __name pointers. Remove calls to
	_S_initialize() as initial locale initialization can either be
	assumed, or needs to be made consistent throughout locale
	constructors.
	(locale::locale(const locale& __other, const char* __name,
	category __cat): Add checks for NULL name. Add checks for
	assignment to self.
	* src/localename.cc (locale::_Impl:: _Impl(const _Impl& __other,
	const string& __name, category __cat, size_t __refs)): Set correct
	name, has_name values.
	* testsuite/22_locale/ctor_copy_dtor.cc (test01): More tests.
	* docs/22_locale/locale.html: New file, more unfinished docs...
	
2000-09-14  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* src/locale.cc (locale::name()): Implement.
	(_Impl(size_t __numfacets, size_t __refs, bool __namep = false,
	string __name = "*")): Change signature.
	(locale::classic): Initialize the "C" locale as a named locale.
	* bits/localefwd.h (locale): Change _M_num_references to
	_M_references. Eliminate _M_cached_name_ok. Rename _M_cached_name
	to _M_name.
	* bits/localefwd.h: Tweaks.
	* src/localename.cc: Tweaks.
	* testsuite/22_locale/ctor_copy_dtor.cc (test01): Add tests.
	(test01): Fix.

	* bits/basic_string.h: Consistency check, change _M_state ->
	_M_references.

2000-09-14  Brendan Kehoe  <brendan@zen.org>

        * bits/string.tcc (_Rep::_S_max_size): Use typename for its size_type
        return type.

        * src/Makefile.an (headers): Also install backward/fstream.h.
        * src/Makefile.in: Regenerate.	

        * bits/char_traits.h (char_traits<_CharT>::get_state,
        char_traits<char>::get_state, char_traits<wchar_t>::get_state): Pass
        argument in by reference, not by value. Uglify to _S_get_state.
	(char_traits<*>::__eos): Uglify to _S_eos.
	* bits/std_ostream.h (ends(basic_ostream<_CharT, _Traits>& __os)):
	Change __eos to _S_eos.
	
2000-09-13  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* testsuite/22_locale/static_members.cc: New file.
	* testsuite/22_locale/ctor_copy_dtor.cc: New file.
	* src/locale.cc: Minor formatting tweaks.

2000-09-12  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* testsuite/22_locale/global_templates.cc (test01): Add negative
	tests for use_facet.

	* bits/localefwd.h (locale::operator()): Minor tweaks.
	* bits/locale_facets.tcc (locale::operator()): Same.
	* testsuite/22_locale/operators.cc: New file.

	* testsuite/22_locale/facet.cc (output_iterator): Remove
	gnu_input_iterator, gnu_output_iterator.

2000-09-11  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* acinclude.m4 (GLIBCPP_CHECK_GNU_MAKE): Remove test != "0". 
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

	* bits/c++config (__GLIBCPP__): Update, in the hopes of making a
	snapshot release soon.
	(_GNU_SOURCE): Define this in the header files, as ISO C99 support
	is pretty much assumed.

	* testsuite/22_locale/global_templates.cc: New file. Add tests for
	use_facet and has_facet.

	* bits/codecvt.h (codecvt<_InT, _ExT, __enc_traits>::do_out):
	Modify/correct iconv signatures for glibc2.2.

2000-09-10  Branko Cibej  <branko.cibej@hermes.si>

	* acinclude.m4 (GLIBCPP_CHECK_GNU_MAKE): Replace "grep -q" with
	  "grep -c".

2000-09-09  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* bits/localefwd.h (locale::_Impl): Scope out types to public.
	(locale): Make _Impl declaration public.

2000-09-08  Felix Natter  <fnatter@gmx.net>

	* docs/17_intro/porting-howto.html:  New version.

2000-09-07  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* config/cpu/i386/bits/atomicity.h (__exchange_and_add): Change unused
	to __unused__.
	* config/cpu/ia64/bits/atomicity.h (__exchange_and_add): And here.
	* config/cpu/i486/bits/atomicity.h (__exchange_and_add): And here.

2000-09-07  Phil Edwards  <pme@sources.redhat.com>

	Add bits for --enable-maintainer-mode:
	- turns on enable_debug
          (doing "--enable-maint --disable-debug" will DTRT)
	- turns on -Werror, now off by default
	* acinclude.m4: Add bits.
	* aclocal.m4: Regenerate.
	* configure.in: Add defaults for GLIBCPP_ENABLE_DEBUG.
	* configure: Regenerate.	
	
2000-09-07  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/std_cwctype.h: Remove yesterday's hacks.

2000-09-07  Brad Garcia  <bgarcia@laurelnetworks.com>

	* bits/stl_tree.h: Make operators !=, == type safe for map, set.
	* testsuite/23_containers/set_operators.cc: New file. Should not
	compile.  
	* testsuite/23_containers/map_operators.cc: New file. Ditto.
	
2000-09-06  Richard Henderson  <rth@cygnus.com>
	    Benjamin Kosnik  <bkoz@cygnus.com>

	* acinclude.m4 (GLIBCPP_CHECK_CPU): Add ia64 support.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* config/cpu/ia64: New directory.
	* config/cpu/ia64/bits: New directory.
	* config/cpu/ia64/bits/atomicity.h: New file.
	
2000-09-06  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>
	
	* acinclude.m4 (GLIBCPP_ENABLE_CSTDIO): Force glibc_satisfactory
	to no, so that libstdc++-v3's libio will be built on glibc-2.2
	systems. 
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* */Makefile.in: Regenerate.

	* bits/std_cwctype.h: Put in temporary hack to work around -O2 +
	glibc 2.1.x unsigned errors. Or disable -Werror by default...

	* testsuite/23_containers/vector_element_access.cc: New file.
	* bits/stl_config.h (__STL_THROW_RANGE_ERRORS): Define.

2000-09-06  Levente Farkas  <lfarkas@mindmaker.hu>

	* bits/string.tcc: Fix up more parameter names.

2000-09-06  Alexandre Oliva  <aoliva@redhat.com>

	* configure: Rebuilt with new libtool.m4.

2000-09-01  Benjamin Kosnik  <bkoz@cygnus.com>

	* src/locale-inst.cc: Remove pre-instantiation of unicode
	codecvt types. Now unnecessary, as locale header now correct.

2000-08-31  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/locale_facets.tcc (_S_build_float_format): Move ...	
	* src/locale.cc: Here.		
	* bits/locale_facets.tcc (num_get::_M_extract): Clean up generic
	definition. Move specialization to ...
	* src/locale.cc: Here.	
	* bits/locale_facets.tcc: Move _Format_cache specializations to ...
	* src/locale.cc: Here.
	* bits/locale_facets.tcc: Move use_facet<ctype> specializations to ...
	* src/locale.cc: Here.

	* bits/std_locale.h: Note that locale_facets.tcc should be
	included here, for standards conformance. It may increase
	compile times though. For the time being, enable.
	* testsuite/22_locale/facet.cc: New file, some parts commented out
	for the time being.

	* mkcheck.in: Append total time to test summary file.

	* bits/sbuf_iter.h : Formatting tweaks.

	Clean up static const data member definitions.
	* src/locale.cc: Add definitions for all missing locale,
	locale::_Imp, and locale::id static data members.
	(ctype<char>): Add table_size define.
	(money_base): Add _S_default_pattern, uglify.
	* bits/localefwd.h: Add definitions for static members of _Count_ones.
	* bits/locale_facets.h: Tweaks.
	* bits/locale_facets.tcc: Tweaks.	
	* bits/string.tcc: Add definition for npos.
	* bits/ios_base.h: Tweaks.
	* bits/ios_base.h (ios_base::Init::_M_ios_base_init): Change to
	_S_ios_base_init.
	* src/ios.cc: And here. Add _S_local_words definition.
	Add definitions for __ios_flags const static data.
	* src/codecvt.cc: Same for __enc_traits.
	* src/locale-inst.cc: Remove money_base data member definition
	here.

2000-08-30  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/22_locale/ctype_wchar_t_members.cc (test01): New file.

	* docs/22_locale/codecvt.html: Re-number.
	* docs/22_locale/howto.html: Add entry for ctype
	documentation. Add entry for Nathan's introduction to locales
	paper.
	* docs/22_locale/ctype.html: New file. In progress...

	* docs/22_locale/codecvt.html: Formatting cleanups.
	* src/locale.cc (ctype<wchar_t>::do_is): Fix thinko.

2000-08-30  Phil Edwards  <pme@sources.redhat.com>

	* docs/22_locale/codecvt.html:  Behind-the-scenes ASCII->HTML
	  tweaks for certain browsers.

2000-08-29  Benjamin Kosnik  <bkoz@redhat.com>

	* bits/locale_facets.h (ctype<char>): Remove __table_type.
	Add include for bits/std_cwctype.h, for wctype_t.
	* src/locale.cc (ctype<wchar_t>): Implement.
	* config/gnu-linux/bits/ctype_base.h (ctype_base): Remove mask
	typedef, instead name enum.
	* config/gnu-linux/bits/ctype_specializations.h: Tweak.
	* config/gnu-linux/ctype.cc: Tweak.	
	* testsuite/22_locale/ctype.cc: Tweak.
	
	* bits/codecvt.h (__enc_traits): Uglify names.
	
2000-08-28  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* docs/22_locale/codecvt.html: Add more bits, format. 
	* bits/codecvt.h: Add copy ctor, rename types.
	* testsuite/22_locale/codecvt_unicode_char.cc: Tweak.
	
	* libio/iofwide.c: Tweak.
	
2000-08-28  Phil Edwards  <pme@sources.redhat.com>

	* docs/configopts.html:  Mention new options.
	* docs/install.html:  Formatting changes for platform-specific
	  pre-reqs, previously only Cygwin.
	* docs/mail.html:  Fix new link.
	* docs/thanks.html:  A couple more people.
	* docs/26_numerics/howto.html:  Fix typo.

2000-08-24  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* docs/22_locale/howto.html: Add notes on codecvt implementation.
	* docs/22_locale/codecvt.html: New file. In progress.
	
2000-08-24  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* acconfig.h: Revert.
	* acinclude.m4: Revert.
	* libio/_G_config.h: Revert.
	* libio/libio.h: Revert.
	
2000-08-23  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>	

	* bits/codecvt.h: Tweaks.
	* testsuite/22_locale/codecvt_unicode_wchar_t.cc (test01): Fix up
	initial string literals for UCS4.

2000-08-23  Phil Edwards  <pme@sourceware.cygnus.com>

	* acconfig.h:  _GLIBCPP_USING_THREADS and some workaround types added.
	* acinclude.m4:  New macro, GLIBCPP_ENABLE_WCHAR.  Set the threads
	  definition as well, and some minor spelling/spacing fixes.  If
	  building libio, check for certain typedefs.
	* libio/_G_config.h:  Wrap _IO_MTSAFE_IO in _GLIBCPP_USING_THREADS.
	  Conditionally define _LARGEFILE64_SOURCE, otherwise the 64-bit types
	  will never be there.
	* libio/libio.h:  In the null case, _IO_lock_t can't just be void.
	* src/string-inst.cc:  Use _GLIBCPP_USE_WCHAR_T.

	* configure.in:  Update the cache a bit more often.

	* mkcheck.in:  For check-install, also need to -I the testsuite dir.

2000-08-22  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* src/locale-inst.cc: Add codecvt<unicode_t, wchar_t,
	__enc_traits> instantiations for has_facet and use_facet.
	* testsuite/22_locale/codecvt_unicode_wchar_t.cc: New file, for
	testing two-byte unicode encodings converted to four-byte UCS4
	encodings.

	* bits/codecvt.h (codecvt<__enc_traits>): Fix do_unshift.
	* testsuite/22_locale/codecvt_unicode_char.cc (test01): Add
	correct state/encoding information.

	* acinclude.m4 (GLIBCPP_CHECK_WCHAR_T_SUPPORT): Add wcsrtombs,
	mbsrtowcs checks as codecvt<wchar_t, char, mbstate_t> needs them
	now.
	Add checks for langinfo.h, nl_langinfo function call.
	* libio/iofwide.c (_IO_fwide): Simplify, as nl_langinfo is assumed.

2000-08-22  Richard B. Kreckel  <Richard.Kreckel@Uni-Mainz.DE>

	* config/cpu/alpha/bits/atomicity.h: Change __attribute__
	((unused)) to __attribute__ ((__unused__)).
	* config/cpu/arm/bits/atomicity.h: Same.
	* config/cpu/generic/bits/atomicity.h: Same.
	* config/cpu/i386/bits/atomicity.h: Same.
	* config/cpu/i486/bits/atomicity.h: Same.
	* config/cpu/powerpc/bits/atomicity.h: Same.
	* config/cpu/sparc/sparc32/bits/atomicity.h: Same.
	* config/cpu/sparc/sparc64/bits/atomicity.h: Same.

2000-08-22  Levente Farkas  <lfarkas@mindmaker.hu>

	* bits/basic_string.h: Fix up parameter names.

2000-08-22  Brent Verner <brent@rcfile.org>

	* src/Makefile.am (INCLUDES): Put $(CSHADOW_INCLUDES) before
	$(top_srcdir)
	* src/Makefile.in: Regenerate.
	
2000-08-21  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* bits/codecvt.h: Implement codecvt<wchar_t, char, mbstate_t>. Fix
	up __enc_traits template so as to be marginally useful.
	* src/codecvt.cc: And here.
	* bits/char_traits: Tweak.
	* bits/locale_facets.h: Tweak.
	* bits/locale_facets.tcc: Tweak.
	* bits/localefwd.h: Tweak.
	* src/locale-inst.cc: Add use_facet/has_facet instantiations here.
	* testsuite/22_locale/codecvt_wchar_t_cc.cc: New file.
	* testsuite/22_locale/codecvt_char_char.cc: New file.
	* testsuite/22_locale/codecvt_unicode_char.cc: New file.
	
2000-08-21  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>

	* bits/std_cmath.h (std::abs): Overload for int and long.

2000-08-20  Benjamin Kosnik  <bkoz@gnu.org>

	* src/string-inst.cc: Tweak instantiations for new-gxx-abi.

2000-08-19  Gabriel Dos Reis  <gdr@codesourcery.com>

	* bits/valarray_array.h (__valarray_min, __valarray_max): Fix
	thinko. Diagnostic messages really need to be improved for
	template argument deduction.

2000-08-18  Benjamin Kosnik  <bkoz@gnu.org>

	* bits/valarray_meta.h: Fix typos...

2000-08-18  Gabriel Dos Reis  <gdr@codesourcery.com>

	* bits/valarray_meta.h (_Expr<>::shift, _Expr::cshift,
	_Expr<>::apply): Implement. 

2000-08-18  Gabriel Dos Reis  <gdr@codesourcery.com>

	* bits/valarray_meta.h (_Expr<>::min, _Expr<>::max): Implement.

	* bits/valarray_array.h (__valarray_min, __valarray_max): New
	function. 

2000-08-17  Mark Mitchell  <mark@codesourcery.com>

	* bits/localefwd.h (std::locale): Use explicit `class' specified
	when declaring friends.
	* bits/std_fstream.h (std::basic_filebuf): Likewise.

2000-08-16  Alexandre Oliva  <aoliva@redhat.com>

	* src/Makefile.am (libstdc++.INC): Renamed from INCLUDES.
	* src/Makefile.in: Regenerate.

2000-08-15  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* bits/codecvt.h: New file.
	* src/codecvt.cc: New file.
	* bits/std_locale.h: Add include here.
	* src/Makefile.am (headers): Add codecvt.h
	(sources): Add codecvt.cc.
	* src/Makefile.in: Regenerate.
	* bits/locale_facets.h (codecvt): Re-implement. Rename _Codecvt to
	__codecvt_abstract_base in an attempt to point some light this way...
	Move __enc_traits and codecvt bits to codecvt.h.
	* src/locale-inst.cc: Remove codecvt<wchar_t, wchar_t, mbstate_t>
	explicit instantiation. Separate out codecvt instantiations, simplify.
	* src/locale.cc: Move codecvt bits to codecvt.cc

2000-08-15  Alexandre Oliva  <aoliva@redhat.com>

	* src/Makefile.am (INCLUDES): New target file, with all -I flags.
	* src/Makefile.in: Regenerate.

2000-08-14  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	C/C++ io merge/sync.
	* libio/fileops.c
	* libio/genops.c
	* libio/iofclose.c
	* libio/iofopen.c
	* libio/iofwide.c
	* libio/libio.h
	* libio/libioP.h
	* libio/stdio.c
	* libio/wfileops.c
	* libio/wgenops.c
	* config/c_io_libio.cc (__basic_file): Add hacky casts to
	((struct _IO_FILE_plus *) in ctors.
	(__basic_file<wchar_t>): Adjust _wide_data->_codecvt to just _codecvt.
	* libio/Makefile.am: Fix copyright. Remove cleanup.c.
	* libio/cleanup.c: Remove.
	* libio/filedoalloc.c (_IO_file_doallocate): Don't call
	_IO_cleanup_registration_needed, even if not libc.
		
	* testsuite/27_io/stringstream.cc (test02): Fix.

2000-08-14  Brent Verner <brent@rcfile.org>

	* testsuite/debug_assert.h: new file
	* testsuite/*/*.cc: s/test\s*&=([^;]+);/VERIFY($1);/g
	changed conditional #include <c?assert.?h?> to
	unconditional #include <debug_assert.h>
	* mkcheck.in: added $SRC_DIR/testsuite to include search path
	for testsuite compile command.

2000-08-14  Levente Farkas  <lfarkas@mindmaker.hu>

	* bits/std_fstream.h: Remove duplicate typdefs for ofstream and
	wofstream, filebuf, wfilebuf, fstream, wfstream.
	* bits/std_streambuf.h: Same for streambuf, wstreambuf.
	* bits/std_sstream.h: Same for stringstream and wstringstream.
	Same for stringbuf, wstringbuf, istringstream, wistringstream,
	ostringstream, wostringstream.
	
	* testsuite/26_numerics/valarray.cc: Add test.

2000-08-14  Zack Weinberg  <zack@wolery.cumb.org>

	* configure: Regenerate after change to ../libtool.m4.

2000-08-10  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* bits/locale_facets.tcc: Formatting tweaks.
	* bits/locale_facets.h (__enc_traits): Start integrating this
	into codecvt, ctype. Formatting tweaks.

2000-08-09  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	Preliminary wchar_t implementation, with trivial encodings.
	* docs/configopts.html: Add bits about canonical configure option
	checking.

	* testsuite/27_io/iostream_objects.cc: Replace this file (which
	has newly-declared-illegal mixing of wide/narrow stdstreams) with...
	* testsuite/27_io/narrow_stream_objects.cc: New file.
	* testsuite/27_io/wide_stream_objects.cc: New file.

	* bits/fstream.tcc (underflow): Temporarily hack a solution
	together that writes from the external file to the internal
	buffers. This removes codecvt from the loop, and is incorrect.
	(_M_really_overflow): Same here.

	* testsuite/21_strings/inserters_extractors.cc (test05): Tweaks.
	
2000-08-08  Benjamin Kosnik  <bkoz@cygnus.com>
	    Ulrich Drepper  <drepper@cygnus.com>

	* config/c_io_libio.h: Tweak.
	* config/c_io_libio_codecvt.c: New file.
	* libio/Makefile.am: Add c_codecvt.c.
	* libio/Makefile.in: Regenerate.
	* libio/genops.c (_IO_unbuffer_write): Don't call _IO_SETBUF if the
	stream is not orientated.

	* acinclude.m4: Add config/c_io_libio_codecvt.c dummy file, until
	encoding gets fleshed out.

	* bits/basic_file.h: Add specialization declarations.
	* config/c_io_libio.cc: Add specializations for pbackfail, uflow.

	* config/c_io_libio.h: Add __c_wfile_type.
	* bits/basic_file.h: Add _M_wfile.

	* config/c_io_libio.cc (__basic_file<char>): Initialize the
	streams without setting the orientation of the underlying FILE to
	either wide or narrow.
	(__basic_file<wchar_t>)): Enable tricky wchar_t io bits.

2000-08-07  Felix Natter  <fnatter@gmx.net>

	* docs/17_intro/porting-howto.html:  New version.

2000-08-03  Mark Mitchell  <mark@codesourcery.com>

	* bits/locale_facets.h (ctype::ctype): Don't name unused
	parameters.

2000-08-01  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* docs/install.html: Edit bits about requiring a special version
	of the autotools.

2000-07-31  Benjamin Kosnik  <bkoz@cygnus.com>

	* libio/fileops.cc: Update to current glibc sources.
	* libio/genops.c: Same.
	* libio/iofwide.c: Same.
	* libio/libio.h: Same.
	* libio/libioP.h: Same.
	* libio/wfiledoalloc.c: Same.
	* libio/wgenops.c: Same.
	
2000-07-28  Alexandre Oliva  <aoliva@redhat.com>

	* acinclude.m4: Include ../libtool.m4.
        * aclocal.m4, configure: Rebuilt.
	
2000-07-26  Phil Edwards  <pme@sourceware.cygnus.com>

	* acinclude.m4 (GLIBCPP_CHECK_LINKER_FEATURES):  Test for GNU ld
	  before trying to use any of its options.
	  (CHECK_MATH_DECL*,CHECK_BUILTIN_MATH_DECL*):  Cache tests.
	* aclocal.m4:  Regenerate.
	* configure.in:  Having found GNU make, name it.
	* configure:  Regenerate.
	* docs/install.html:  Mention possible problems with caching.
	* src/Makefile.am (CXXLINK):  Use new OPT_LDFLAGS.
	* src/Makefile.in:  Regenerate.
	* libio/Makefile.in:  Regenerate.
	* math/Makefile.in:  Regenerate.
	* Makefile.in:  Regenerate.

2000-07-26  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* src/misc-inst.cc (std): Remove instantiations.

	* acinclude.m4: Add forward-looking bits for autoconf.
	* aclocal.m4: Regenerate.

	* bits/ostream.tcc (ostream::operator<<): Fix const char* case.

2000-07-25  Benjamin Kosnik  <bkoz@gnu.org>

	* configure.in: Change AM_PROG_LIBTOOL to AC_PROG_LIBTOOL. Change
	it back for current versions of maintainer-tools...
	* acinclude.m4: Some cleanups...
	* aclocal: Regenerated.
	* configure: Regenerated.
	
	* src/Makefile.am (CXXLINK): Add -Wl,-01 to the link line for
	optimizing/adapting the hash table using GNU ld.
	* src/Makefile.in: Regenerate.
	
2000-07-24  H.J. Lu  <hjl@gnu.org>

        * src/Makefile.am (LIBIO_INCLUDES): Set to -I$(top_srcdir)/libio
        even if GLIBCPP_NEED_LIBIO is false. The installed glibc header
        files don't include private libio header files needed by
        libstdc++ v3.
        * src/Makefile.in: Rebuild.

2000-07-24  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* bits/std_fstream.h: Parameterize __basic_file.
	* config/c_io_libio.cc: Add wchar_t methods for parameterization.
	* bits/basic_file.h: Same here.

	* bits/istream.tcc (getline): Tweaks.

	* bits/fstream.tcc: Shorten __retval to __ret.
	* bits/ostream.tcc: Same.
	* bits/sbuf_iter.h: Same.
	* bits/sstream.tcc: Same.
	* bits/streambuf.tcc: Same.
	* bits/std_fstream.h: Same.
	* src/string-inst.cc: Same.
	* src/ios.cc: Same.
	* config/c_io_libio.cc: Same.
	* bits/string.tcc: Same.
	* bits/std_streambuf.h: Same.

2000-07-23  Brent Verner <brent@rcfile.org>

        * bits/istream.tcc: istream::getline(char_type*, streamsize,
	char_type) make compliant
        * testsuite/27_io/istream_unformatted.cc: test for compliant behavior

2000-07-23  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* acinclude.m4 (enable_cshadow_headers): Fix problems with blddir
	and srcdir used to define CSHADOW_INCLUDES..

	* configure.in: For consistency, change .sanity_warned to
	stamp-sanity-warned.

	* acinclude.m4: Tweak formatting.
	* Makefile.am (check): Call mkcheck with full pathname for build
	directory...
	(check-install): And here.
	* Makefile.in: Regenerate.
	
2000-07-22  Gabriel Dos Reis  <gdr@codesourcery.com>

	Line up with libstdc++-v2 version of valarray.
	* bits/valarray_array.h (__valarray_product): Make inline.
	* src/valarray-inst.cc (__valarray_product): Remove explicit
	instantiation. 

2000-07-21  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

        * src/stl-inst.cc: Change __sink_unused_warning to unsigned int
        for alpha.

        * testsuite/26_numerics/complex_inserters_extractors.cc (testall):
        Change return type to void.
        * testsuite/25_algorithms/lower_bound.cc: Add return values.
	* testsuite/17_intro/header_ciso646.cc: Modify.
        * bits/locale_facets.h: Add return values for the generic cases.

2000-07-21  H.J. Lu  (hjl@gnu.org)

        * acinclude.m4: Include <features.h> for glibc testing.
        * aclocal.m4: Likewise.

        * configure: Rebuild.

2000-07-20  H.J. Lu  (hjl@gnu.org)

        * acinclude.m4: Change "#pragma system_header" to
        "#pragma GCC system_header".
        * aclocal.m4: Likewise.
        * bits/std_cmath.h: Likewise.
        * bits/std_cassert.h: Likewise.
        * bits/std_cctype.h: Likewise.
        * bits/std_cerrno.h: Likewise.
        * bits/std_cfloat.h: Likewise.
        * bits/std_climits.h: Likewise.
        * bits/std_clocale.h: Likewise.
        * bits/std_cwchar.h: Likewise.
        * bits/std_csetjmp.h: Likewise.
        * bits/std_csignal.h: Likewise.
        * bits/std_cstdarg.h: Likewise.
        * bits/std_cstddef.h: Likewise.
        * bits/std_cstdio.h: Likewise.
        * bits/std_cstdlib.h: Likewise.
        * bits/std_cstring.h: Likewise.
        * bits/std_ctime.h: Likewise.
        * bits/std_cwctype.h: Likewise.
        * bits/std_exception.h: Likewise.
        * bits/std_new.h: Likewise.
        * bits/std_typeinfo.h: Likewise.
        * shadow/bits/std_cassert.h: Likewise.
        * shadow/bits/std_cctype.h: Likewise.
        * shadow/bits/std_cerrno.h: Likewise.
        * shadow/bits/std_cfloat.h: Likewise.
        * shadow/bits/std_climits.h: Likewise.
        * shadow/bits/std_clocale.h: Likewise.
        * shadow/bits/std_cmath.h: Likewise.
        * shadow/bits/std_csetjmp.h: Likewise.
        * shadow/bits/std_csignal.h: Likewise.
        * shadow/bits/std_cstdarg.h: Likewise.
        * shadow/bits/std_cstddef.h: Likewise.
        * shadow/bits/std_cstdio.h: Likewise.
        * shadow/bits/std_cstdlib.h: Likewise.
        * shadow/bits/std_cstring.h: Likewise.
        * shadow/bits/std_ctime.h: Likewise.
        * shadow/bits/std_cwchar.h: Likewise.
        * shadow/bits/std_cwctype.h: Likewise.
        * shadow/bits/wrap_libio.h: Likewise.
        * shadow/bits/wrap_unistd.h: Likewise.
        * shadow/sys/cdefs.h: Likewise.

        * configure: Rebuild.

2000-07-20  Jakub Jelinek  <jakub@redhat.com>

        * config/cpu/sparc/sparc64/bits/atomicity.h (__exchange_and_add):
        Use extended word instructions to match 64bit _Atomic_word.
        (__atomic_add): Likewise.
        * math/clog10l.c (clog10l): Use M_PIl if defined.
        * math/c_logl.c (c_logl): Likewise.
        * math/signbitl.c (__signbitl): Adapt for IEEE quad long doubles.
        * math/mathconf.h (ieee_quad_double_shape_type): New type.
        (GET_LDOUBLE_MSW64): New define.

2000-07-20  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/std_streambuf.h: Add bits for pback buffers here, so that
	in_avail, etc can use them.
	* bits/std_fstream.h: Ditto.
	* bits/fstream.tcc: Ditto.
	* testsuite/27_io/filebuf.cc: Tweaks.
	* testsuite/27_io/filebuf-3.tst: Correct for pbackfail bits.

2000-07-19  Benjamin Kosnik  <bkoz@cygnus.com>

	* src/localename.cc: Same.
	* src/locale.cc: Same.
	* bits/localefwd.h: _M_init_facet to _M_facet_init.

	* bits/locale_facets.h: _M_init_boolnames to _M_boolnames_init.

	* bits/std_sstream.h: Change _M_init_stringbuf to _M_stringbuf_init.

	* bits/fstream.tcc: Change _M_init_filebuf to _M_filebuf_init.
	* bits/std_fstream.h: Same.

	* bits/basic_string.h: Tweaks.
	
2000-07-19  Phil Edwards  <pme@sourceware.cygnus.com>

	* docs/18_support/howto.html:  Update.

2000-07-19  Benjamin Kosnik  <bkoz@milou.soma.redhat.com>

	Internal consistency checks.....
	* bits/ios_base.h: Change _M_locale_ios to _M_ios_locale.
	* src/ios.cc: Same.
	
	* bits/basic_ios.h: Change _M_fctype_ios to _M_ios_fctype.
	* bits/basic_ios.tcc: Same.
	
	* bits/std_streambuf.h: Change _M_locale_buf to _M_buf_locale.
	Change _M_fctype_buf to _M_buf_fctype.
	* bits/fstream.tcc: Same.

	* bits/std_streambuf.h: Change _M_buf_bump to _M_out_cur_move.
	Change _M_locale_set to _M_buf_locale_init.
	* bits/streambuf.tcc: Same.
	* bits/sstream.tcc: Same.
	* bits/fstream.tcc: Same.

	* bits/std_streambuf.h: Make typedefs consistent.
	(_M_buf_bump): Be more careful with input sequence.

	* bits/std_sstream.h: Same.
	* bits/std_fstream.h: Same.

2000-07-18  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* acinclude.m4: Tweaks.
	* config/c_io_libio.cc: Tweaks.
	* bits/sstream.tcc (stringbuf::pbackfail): Simplify.
	* libio/_G_config.h: Don't define _G_HAVE_ST_BLKSIZE.
	* libio/[iofwide.c, wfiledoalloc.c, wfiteopos.c, wgenops.c]: New files.
	* libio/iofclose.c iofopen.c, stdio.c: New files.
	* libio/Makefile.am: Add files, add flags, etc.
	* src/Makefile.am (sources): Add filebuf.cc.
	* acinclude.m4 (GLIBCPP_CHECK_WCHAR_T_SUPPORT):
	(GLIBCPP_ENABLE_CSTDIO): Versioning testing, etc etc.

2000-07-17  Phil Edwards  <pme@sourceware.cygnus.com>

	* acinclude.m4:  Import CHECK_GNU_MAKE from autoconf macro archive.
	* configure.in:  Use it.  Also print reminders one time.
	* aclocal.m4:  Regenerate.
	* configure:  Regenerate.

2000-07-15  Gabriel Dos Reis  <gdr@codesourcery.com>

	* bits/valarray_array.h (__valarray_get_storage): New function.
	(_Array<>::Array): Use it.
	* bits/std_valarray.h (valarray<>::valarray): Likewise.
	(valarray<>::resize): Likewise.  Tweak.
	* src/valarray-inst.cc (__valarray_product): Tweak.

2000-07-11  Phil Edwards  <pme@sourceware.cygnus.com>

	* docs:  Update sourceware->sources in every HTML file.  Minor updates.

2000-07-07  Benjamin Kosnik  <bkoz@soma.redhat.com>

	Clean up configure/build longstanding issues.
	* src/Makefile.am (AC_CXXFLAGS): Don't set @SECTION_LDFLAGS@ here.
	(CXXLINK): Add here, instead.

	* Makefile.am (check-install): Make sure mkcheck has execute privs.
	(check): Same here.
	* configure.in (AC_OUTPUT_COMMANDS): Remove hacks here.

	* configure.in (AC_OUTPUT_COMMANDS): Link c_io_libio.h and
	c_io_libio.cc instead of copying.
	* acinclude.m4 (GLIBCPP_ENABLE_CSTDIO): Do link here.

	* configure.in (AC_OUTPUT_COMMANDS): Link $THREADS.h and
	c++threads.h instead of copying.
	* acinclude.m4 (GLIBCPP_ENABLE_THREADS): Do link here.
	Tweaks.
	
	* config/c_io_libio.cc (__basic_file::_M_open_mode): Consolidate.
	* bits/basic_file.h: Declare.

	* mkcheck.in (TESTS_FILE): Use -v instead of --version.

2000-07-07   brent verner  <brent@rcfile.org> 

	* testsuite/27_io/istream_unformatted.cc (test05): New test.

2000-07-07  Benjamin Kosnik  <bkoz@gnu.org>

	* bits/istream.tcc (istream::getline): Minor tweaks.

2000-07-07  Phil Edwards  <pme@sourceware.cygnus.com>

	* docs/download.html:  Mention gcc_update.
	* docs/configopts.html:  Minor updates.
	* docs/gccrebuild.html:  Ditto.
	* docs/18_support/howto.html:  More tips, explanations, and reminders.
	* docs/19_diagnostics/howto.html:  Ditto.
	* docs/21_strings/howto.html:  Ditto.
	* docs/24_iterators/howto.html:  Ditto.
	* docs/25_algorithms/howto.html:  Ditto.
	* docs/26_numerics/howto.html:  Ditto.

2000-07-05  brent verner  <brent@rcfile.org> 

	* testsuite/27_io/ifstream_members.cc (test01): Add tests.
	* testsuite/27_io/ofstream_members.cc (test01): Add tests.
	* config/c_io_libio.cc (__basic_file::open): Unset
	~_IO_DELETE_DONT_CLOSE.

2000-07-05  Zack Weinberg  <zack@wolery.cumb.org>
	
        * bits/gslice_array.h, bits/indirect_array.h, bits/mask_array.h,
        bits/slice_array.h, bits/std_valarray.h, bits/valarray_meta.h:
        Do not paste anything after 'operator' keyword.

2000-07-03  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* bits/std_memory.h: Revert.

2000-07-03  Brendan Kehoe  <brendan@zen.org>

	* bits/std_complex.h: Fix parens. Format.
	
2000-07-03  scott snyder  <snyder@fnal.gov>

        * bits/locale_facets.tcc (_M_extract): Only figure out the base
        from the input if base == 0.
        * testsuite/27_io/istream_extractor_arith.cc: Test reading a
        number with a leading `0' in hex mode.

	* shadow/bits/std_cmath.h: Fix typo in _GLIBCPP_HAVE_CEILL test.

        * mkinclosure: Change `==' to `=' in test.

2000-07-03  Chip Salzenberg  <chip@valinux.com>

        * src/Makefile.am (libio_headers): _G_config.h is found in srcdir,
        not builddir.
        * src/Makefile.in: Regenerate.

2000-07-01  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>
	    Ulrich Drepper  <drepper@purist.soma.redhat.com>

	Sync libio to glibc-2.2 current CVS. 
	* libio/_G_config.h: New file.
	* libio/wfileops.c: New file.
	* libio/wfiledoalloc.c: New file.
	* libio/wgenops.c: New file.
	* libio/iofwide.c: New file.
	* libio/Makefile.am: Tweaks.
	* libio/Makefile.in: Regenerate.
	* libio/gen-params: Remove. Generic replacement for this yet undone.
	* libio/[filedoalloc.c, fileops.c, genops.c, iolibio.h, libio.h,
	libioP.h, stdfiles.c]: Update.
	* config/c_io_libio.cc: Tweaks.
	* acinclude.m4: Complete hacks to test wide io.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* src/Makefile.am: Update.
	* src/Makefile.in: Regenerate.

	* math/cargl.c: Remove underscores.
	
	* bits/locale_facets.h: Tweaks. Start adding iconv details
	and notes.
	* bits/locale_facets.tcc: Tweaks.
	* bits/std_cwchar.h: Tweaks.
	
2000-06-29  scott snyder  <snyder@fnal.gov>

        * bits/concept_checks.h
        (__less_then_comparable_requirement_violation): Only check for <.
	* testsuite/25_algorithms/lower_bound.cc: New file.
	
2000-06-29  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* testsuite/27_io/ostream_manip.cc (test02): Add tests.
	* bits/ostream.tcc: Tweak.
	* bits/std_fstream.h (basic_filebuf::setbuf): Reset
	_M_buf_size_opt too.
	* bits/std_streambuf.h (basic_streambuf::~basic_streambuf): Zero
	out _M_buf_size_opt.
	* bits/std_sstream.h (basic_stringbuf::_M_init_stringbuf): Set
	_M_buf_size_opt out here.
	* bits/char_traits.h (char_traits::eos): Non standard member
	function, uglify to __eos. Return char_type().
	* bits/std_ostream.h: Change.

	* testsuite/27_io/ostream_seeks.cc: New file.
	* testsuite/27_io/ostream_seeks-1.tst: New file.
	* testsuite/27_io/istream_unformatted.cc (main): Move test04 and
	test05 to...
	* testsuite/27_io/istream_seeks.cc: New file.

2000-06-29  Branko Cibej  <branko.cibej@hermes.si>

        * bits/std_memory.h (auto_ptr_ref): Reworked and defined only if
        _GLIBCPP_RESOLVE_LIB_DEFECTS.
        (auto_ptr): _M_ptr changed to void*.
        (suto_ptr::get): Cast _M_ptr to element type.
        (auto_ptr::auto_ptr(auto_ptr<Tp1>)): Test implicit convetsion.
        (auto_ptr::~auto_ptr): Use this->get() instead of _M_ptr.
        (auto_ptr::operator*): Likewise.
        (auto_ptr::operator->): Likewise.
        (auto_ptr::release): Likewise.
        (auto_ptr::reset): Likewise.
        (auto_ptr::auto_ptr(auto_ptr_ref)): Initialize from __ref._M_release.
        (auto_ptr::operator auto_ptr_rev<_Tp1>): Updated.
        Define nested auto_ptr_ref unless _GLIBCPP_RESOLVE_LIB_DEFECTS.
        Define operator=(auto_ptr_ref) if _GLIBCPP_RESOLVE_LIB_DEFECTS.

2000-06-28  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* testsuite/27_io/filebuf.cc: Tweak.
	* testsuite/27_io/filebuf_members.cc (test_01): Fix.
	* config/c_io_libio.cc (__basic_file::~__basic_file): Match libio
	filebuf dtor.
	(__basic_file::basic_file): Clean, add calls similar to
	_IO_file_attach.
	(__basic_file::open): Clean.
	(__basic_file::sys_open): Clean.

	* bits/std_fstream.h: Revert.
	* bits/fstream.tcc (filebuf::close()): Revert.
	(filebuf::basic_filebuf()): Revert.

2000-06-27  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	Update to SGI STL 3.3
	* ext/hash_map, ext/hash_set, ext/slist, ext/stl_bvector.h,
	ext/stl_rope.h, ext/ropeimpl.h: Update.
	* bits/std_bitset.h, bits/std_map, bits/std_memory.h,
	bits/stl_algo.h, bits/stl_algobase.h, bits/stl_alloc.h,
	bits/stl_config.h, bits/stl_construct.h, bits/stl_deque.h,
	bits/stl_function.h, bits/stl_heap.h, bits/stl_iterator.h,
	bits/stl_iterator_base.h, bits/stl_list.h, bits/stl_map.h,
	bits/stl_multimap.h, bits/stl_multiset.h, bits/stl_numeric.h,
	bits/stl_queue.h, bits/stl_set.h, bits/stl_stack.h,
	bits/stl_string_fwd.h, bits/stl_threads.h, bits/stl_three.h,
	bits/stl_uninitialized.h, bits/stl_vectory.h: Update.

	* src/Makefile.am (headers): Add new files.
	* src/Makefile.in: Regenerate.
	* src/stl-inst.cc (std): Add instantiation for __sink_unused_warning.
	* bits/concept_checks.h: New file.
	* bits/container_concepts.h: New file.
	* bits/sequence_concepts.h: New file.
	
2000-06-27  H.J. Lu  <hjl@gnu.org>
            Loren J. Rittle  <ljrittle@acm.org>

        * mkcheck.in: Add support to print standard flags needed to
        test g++ in build tree.  Enhance command line error checking.

2000-06-27  Phil Edwards  <pme@sourceware.cygnus.com>

	* docs/install.html:  Fix minor typo as reported.

2000-06-26  Brent Verner <brent@rcfile.org>

	* bits/string.tcc (string::rfind): Fix.
	* testsuite/21_strings/rfind.cc: New file.
	
2000-06-26  Anthony Williams  <anthony@anthonyw.cjb.net>

	* testsuite/21_strings/ctor_copy_dtor.cc: Fixed logic error.
	
2000-06-26  Branko Cibej  <branko.cibej@hermes.si>

        * testsuite/27_io/filebuf_members.cc (test_01): Fixed typos.

        * mkcheck.in: Make the *.txt and *.tst files writable after
	  copying them to $TEST_DIR.

        * testsuite/27_io/ostream_inserter_arith.cc: Renamed
	  __TEST_NUMPUT_VERBOSE to TEST_NUMPUT_VERBOSE.  Define
	  TEST_NUMPUT_VERBOSE only if DEBUG_ASSERT.
	
2000-06-23  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* bits/fstream.tcc (basic_filebuf::basic_filebuf(fd)): Use it.
	(basic_filebuf::close): Use it.
	* bits/std_fstream.h (basic_filebuf): Remove default arguments for
	filebuf ctor.
	(basic_filebuf): Add _M_fileno_based data member.
        As reported by brent verner <brent@rcfile.org> 
	* testsuite/27_io/filebuf_members.cc: New file.
	* testsuite/27_io/filebuf_members-1.tst: New file.

	* bits/std_fstream.h: Formatting tweaks.
	* testsuite/27_io/ofstream_members.cc: New file.
	* testsuite/27_io/ofstream_members-1.tst: New file.
	* testsuite/27_io/ifstream_members.cc: New file.
	* testsuite/27_io/ifstream_members-1.tst: New file.

2000-06-23  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>
            Ulrich Drepper  <drepper@cygnus.com>
	
	* acinclude.m4 (GLIBCPP_CHECK_MATH_SUPPORT): Add -D_GNU_SOURCE, so
	that all the freaky stuff like sincos will be around...

2000-06-22  Branko Cibej  <branko.cibej@hermes.si>

        * Makefile.am (AM_MAKEFLAGS): Added WERROR to list of flags.

2000-06-22 Steven King <sxking@uswest.net>

        * acinclude.m4: Check for sinl, _sinl using 1 parameter.

2000-06-22  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* acinclude.m4 (GLIBCPP_CHECK_BUILTIN_MATH_SUPPORT): Redo. Use the
	same approach as GLIBCPP_CHECK_MATH_SUPPORT, only don't try to
	link against libm and don't use -fno-builtins...
	* math/mathconf.h: Change up builtin macros to new schema.
	* bits/std_cmath.h: And here. Wheee!
	* shadow/bits/std_cmath.h: And here.
	* acconfig.h: Change up builtin macros here.
	* math/cosf.c:  Remove.
	* math/fabsf.c:  Likewise.
	* math/sinf.c:  Likewise.
	* math/sqrtf.c:  Likewise.
	* math/Makefile.am (EXTRA_DIST):  Remove those four files.
	* math/Makefile.in:  Regenerate.

2000-06-22  Anthony Williams  <anthony@anthonyw.cjb.net>

	* testsuite/21_strings/find.cc: Patch.

2000-06-22  Benjamin Kosnik  <bkoz@soma.redhat.com>

	* acinclude.m4 (GLIBCPP_CHEC_LINKER_FEATURES): Use gcc + -x c++ as
	an easy way to get at g++ without having to link in libstdc++.

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

	Fix alpha, powerpc build failures.
	* acinclude.m4 (GLIBCPP_CHECK_MATH_SUPPORT): Substantially
	re-write. Need to check for both proper declaration when using a
	c++ compiler, and "C" linkage when linking. Do both, and if both
	exist, then define the HAVE_* bits in config.h.
	(GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE): New, uber-macro. Does all.
	(GLIBCPP_CHECK_LINKER_FEATURES): Actually link and run this
	program, doh.

2000-06-20  Anthony Williams  <anthony@anthonyw.cjb.net>

	* bits/string.tcc: Fix find.
	* testsuite/21_strings/find.cc: Patch.
	
2000-06-20  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* docs/install.html: Update where to get automake, where to get
	binutils.
	* acinclude.m4: Need -fno-builtins too, so gcc doesn't recognize
	builtins.

2000-06-19  Benjamin Kosnik  <bkoz@soma.redhat.com>

	* acinclude.m4 ((GLIBCPP_CHECK_MATH_SUPPORT): Revert last change.
	Add -Werror-implicit-function-declaration instead.

	Regenerate with fixed maintainer-tools.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* libio/Makefile.in: Regenerate.
	* src/Makefile.in: Regenerate.
	
2000-06-19  Russell Davidson  <russell@ehess.cnrs-mrs.fr>

	* testsuite/27_io/istream_extractor_arith.cc: Patch.
	* bits/locale_factets.tcc: Tweak.
	
2000-06-19  Raja R Harinath  <harinath@cs.umn.edu>
	
	* src/Makefile.am: change @WERROR@ to $(WERROR) so that this can
	be overridden on the command line for individual files.

2000-06-19  Benjamin Kosnik  <bkoz@soma.redhat.com>

	* acinclude.m4 (GLIBCPP_CHECK_MATH_SUPPORT): Can't use
	AC_LANG_CPLUSPLUS as this tries to link in libstdc++, which we are
	building. Use -x c++ instead, which does not attempt to link
	libstdc++.

	* acinclude.m4 (GLIBCPP_CHECK_LINKER_FEATURES): Actually check for
	not coring when we hit a try/throw block, which was the problem
	with the linker support...

	* docs/17_intro/contribute.html: Add bits about getting to the LWG
	issues pages.
	* docs/documentation.html: Rename link to make more accurate and scary.
	* docs/gccrebuild.html: Edit for clarity as these are no longer
	separate projects.
	* docs/install.html: Add bits about binutils for
	-ffunction-sections, -fdata-sections, -Wl,--gc-sections

	* configure.in: Add call for GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT.
	* math/Makefile.am (EXTRA_DIST): Change USE_LONG_DOUBLE to
	USE_COMPLEX_LONG_DOUBLE.
	* acinclude.m4 (GLIBCPP_CHECK_MATH_SUPPORT): Break into
	GLIBCPP_CHECK_MATH_SUPPORT and GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT.
	Works around irregularies in powerpc "C" compiler, but a good idea
	anyway.

	* acinclude.m4 (GLIBCPP_CHECK_COMPLEX_MATH_COMPILER_SUPPORT):
	New. Merge both old compiler bug checks for complex into this.

2000-06-19  Anthony Williams  <anthony@anthonyw.cjb.net>
	
	* testsuite/21_strings/find.cc: Empty strings can be found at all
	positions. Modified.

2000-06-19  Branko Cibej  <branko.cibej@hermes.si>

        * testsuite/20_utilities: New directory.	
        * testsuite/20_utilities/auto_ptr.cc: New file.
	
2000-06-14  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

      	* src/Makefile.am (string_sources): Simplify, assuming that with
	-ffunction-sections, -fdata-sections, -Wl,--gc-sections, all this
	hacking is not necessary.
        (wstring_sources): Same.
        (OPTIMIZE_CXXFLAGS): Enable -fdata-sections -ffunction-sections
	-Wl,--gc-sections.
	* src/string-inst.cc: Remove macro blocks.
	* mkcheck.in (CXX_FLAG): Add bits here.
	
	* src/string-inst.cc: Remove iostream-related string instantiations.
	* src/misc-inst.cc: Add here.

	* acinclude.m4 (GLIBCPP_CHECK_COMPILER_VERSION): Change FMTFLAGS
	to WFMT_FLAGS.
	* aclocal.m4: Regenerate.
	* configure.in: Change up.
	* configure: Regenerate.
	
2000-06-13  Steven King  <sxking@uswest.net>

        * acinclude.m4:  Fixup some of the builtin math tests and add tests for
        __builtin_fmod* and test libm for fmodf, fmodl or _fmodf, _fmodl.
        * acconfig.h: Add entries for fmod*.

2000-06-13  Branko Cibej  <branko.cibej@hermes.si>

        * bits/std_cmath.h:  Fix typos in tests (*_FMODFF -> *_FMODF).
        Test  *_MODFF not *_MODF for modf(float, float*).
        (modf(float, float*)): Remove reference to _C_legacy.

2000-06-13  Benjamin Kosnik  <bkoz@redhat.com>
	
       	* acinclude.m4 (enable_cshadow_headers): Change CSHADOWFLAGS to
	_GNU_SOURCE instead of _ISOC9X_SOURCE, as _GNU_SOURCE is the
	superset, and already defined at top level.
        * aclocal.m4: Regenerate.
        * configure: Regenerate.

	* docs/17_intro/contribute.html: Plead with people to use -cp.
	
2000-06-13  Anthony Williams  <anthony@anthonyw.cjb.net>

	* testsuite/23_containers/bitset_ctor.cc: Qualify reverse wth std::.

	* testsuite/27_io/filebuf.cc: Changed calls to
	fpos<>._M_position() to implicit calls to operator streamoff().
	* testsuite/27_io/iostream_objects.cc: Removed #include <ciso646>,
	as not needed. Revert, as part of standard.
	* testsuite/27_io/ostream_inserter_arith.cc: Replaced explicit
	call to numpunct<>._M_init() with overrides of the appropriate
	virtual functions.

	* testsuite/27_io/stringstream.cc: Removed unnecessary char *
	pointers from test01, so no need to call base(), which isn't
	guaranteed to be implemented as iterators may themselves be pointers
	* testsuite/27_io/stringbuf.cc: Removed unnecessary calls to
	_M_position() - use implicit conversion to streamoff instead

2000-06-13  Thomas Holenstein  <thomas@hex.ch>
 
        * bits/stl_iterator.h: Added inline to operators == to >=.

2000-06-13  Brent Verner <brent@rcfile.org>

	* bits/streambuf.tcc: repaired _S_copy_streambufs()
	* testsuite/27_io/ostream_inserter_other.cc (test03): Added testcase.
	
2000-06-12  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* bits/locale_facets.h (ctype<wchar_t>): Remove unnecessary data
	members.
	* src/locale.cc: Add cwchar include here. Remove incorrect
	definitions, and stub them out.
	* config/generic/ctype.cc (ctype): Remove ctype<wchar_t> bits.
	* config/solaris/solaris2.7/ctype.cc (ctype): Same.
	* config/solaris/solaris2.5/ctype.cc (ctype): Same.
	* config/newlib/ctype.cc: Same.
	* config/gnu-linux/ctype.cc: Same.
	* config/bsd/ctype.cc: Same.
	* config/aix/ctype.cc: Same.

2000-06-12  Branko Cibej  <branko.cibej@hermes.si>

        * config/solaris/solaris2.6/ctype.cc (do_toupper, do_tolower): Use
        towupper and towlower to convert wide characters.

2000-06-12  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* mkcheck.in: Clean up confusion regarding NAME, PRE_NAME.

2000-06-08  Branko Cibej  <branko.cibej@hermes.si>

	* acinclude.m4 (GLIBCPP_CHECK_BUILTIN_MATH_SUPPORT):  Check for
	  sinf, cosf, fabsf, and sqrtf; add to LIBMATHOBJS if missing.
	* aclocal.m4:  Regenerate.
	* configure:  Regenerate.
	* math/cosf.c:  New file.
	* math/fabsf.c:  Likewise.
	* math/sinf.c:  Likewise.
	* math/sqrtf.c:  Likewise.
	* math/Makefile.am (EXTRA_DIST):  Add those four files.
	* math/Makefile.in:  Regenerate.

2000-06-08  Phil Edwards  <pme@sourceware.cygnus.com>

	* testsuite/26_numerics/complex_inserters_extractors.cc:  Need cmath.

2000-06-06  Steven King  <sxking@uswest.net>

	* acconfig.h: Added defines for HAVE_BUILTIN math functs for float,
	double and long double.  Added defines for HAVE libm math functs for
	float and long double.
	* aclocal.m4: Added configure checks for builtin math funcs and libm
	support for float and long double versions of the math functions.
	* config.h.in: Added undefs for math functs.
	* configure: Regenerate.
	* math/mathconf: Changed the _GLIBCPP_HAS_BUILTIN_* to
	_GLIBCPP_HAVE_BUILTIN_*.
	* bits/std_cmath.h: Added long double support.  Use builtins for
	float, double and long if available, otherwise, use libm versions if
	availible, otherwise, punt.
	* shadow/bits/std_cmath.h: ditto

2000-06-02  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* bits/locale_facets.h: Tweak.
	* src/locale.cc (codecvt<wchar_t>): Tweak. 
	
	* bits/locale_facets.h (_Format_cache): _S_ecks -> _S_x. 
	* bits/locale_facets.tcc (num_get<char>::_M_extract): Fix for hex.

	* bits/basic_string.h: Move data member up.
	* src/string-inst.cc: Fix instantiations.
	* bits/string.tcc: Fix types.
	
2000-06-02  Anthony Williams  <anthony@anthonyw.cjb.net>

	* testsuite/21_strings/replace.cc (test01): Qualify find with std::.

2000-06-01  Benjamin Kosnik  <bkoz@gnu.org>

	* bits/std_cwctype.h: Clean.
	* bits/std_cwchar.h: Clean, remove cruft.

	* acinclude.m4 (GLIBCPP_CHECK_WCHAR_T_SUPPORT): Re-work, add bits
	for beginning iconv support.
	Remove _GLIBCPP_HAS_WCHAR_MIN_MAX, roll into _GLIBCPP_USE_WCHAR_T
	macro.
	* acconfig.h: Remove _GLIBCPP_HAS_WCHAR_MIN_MAX.
	* bits/limits_generic.h: Remove.
	* src/gen-num-limits.cc: Same.
	
	* src/locale.cc: Tweaks.

	* bits/char_traits.h: Tweaks.

2000-05-31  Russell Davidson  <russell@ehess.cnrs-mrs.fr> 

	* bits/locale_facets.tcc (num_get<char>::_M_extract): Fix signage,
	exponent, scientific formatting issues.
	* testsuite/27_io/istream_extractor_arith.cc (test09): Add tests.
	
2000-05-31  Branko Cibej  <branko.cibej@hermes.si>

        * bits/limits_generic.h (numeric_limits<wchar_t>): Use WCHAR_MIN
        and WCHAR_MAX instead of WCHART_MIN and WCHART_MAX.

2000-05-31  Nathan Myers  <ncm@cantrip.org>
 
       * docs/thanks.html: edit own credits

2000-05-31  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* bits/generic_shadow.h: Remaining _C_Shadow -> _C_shadow fix.
	
	* acinclude.m4 (GLIBCPP_ENABLE_LONG_LONG): Add strtoull checks...

	* mkcheck.in (SH_FLAG): Add in -Wl,--rpath -Wl,$LIB_PATH. Tweaks.
	
2000-05-31 Steven King <sxking@uswest.net>

        * shadow/time.h: fix typo
        * shadow/wchar.h: ifdef __USE_GNU for wcsdup
        * shadow/bits/std_cwchar.h: ditto
        * shadow/bits/std_cstdlib.h: add overloads of abs and div for long
        and long long.

2000-05-26  Phil Edwards  <pme@sourceware.cygnus.com>

	* acinclude.m4 (GLIBCPP_ENABLE_LONG_LONG):  If strtoll isn't
	  available, force --disable.  Need to flesh this out; make smarter.
	* aclocal.m4:  Regenerate.
	* configure:  Regenerate.

	* mkcheck.in:  Minor tweaks.
	* docs/download.html:  Fix typo.

2000-05-25  Benjamin Kosnik  <bkoz@milou.soma.redhat.com>

	* inclosure: Change to...
	* mkinclosure: This.
	Fix paths to bash.	
	* mkcshadow: Fix paths to bash.
	
	* src/Makefile.am: Tweaks. Do cshadow header trickery at build time.
	* src/Makefile.in: Regnerate.
	* acinclude.m4 (GLIBCPP_COMPILER_VERSION): Fix typo.
	(GLIBCPP_ENABLE_SHADOW): Do a less gross hack.
	* aclocal.m4: Regenerate.
	* mkcheck.in (INC_PATH): Tweak. 
	
	* configure.in: Enable long long by default.
	* configure: Regenerate.
	
	* mkcheck.in (LIB_PATH): Revert.

2000-05-24   Nathan "I don't write ChangeLog Entries" Myers  <ncm@cantrip.org>

	* config/cpu/i486: New directory.
	* config/cpu/i486/bits: New directory.
	* config/cpu/i486/bits/atomicity.h: New file.
	* config/cpu/i386/bits/atomicity.h (__compare_and_swap): Delete
	'cmpxchgl' asm.
	* acinclude.m4 (GLIBCPP_CHECK_CPU): Enable i386.
	
2000-05-24  Loren J. Rittle  <ljrittle@acm.org>

        * backward/alloc.h (__default_alloc_template): Only expose
          implementation-specific symbol, if it exists in the
          configuration.
        * backward/iostream.h (ends): Expose symbol.
        * backward/strstream.h: New file.
        * backward/stream.h: New file.
        * backward/ostream.h: New file.
        * backward/istream.h: New file.
        * backward/fstream.h: New file.
        * backward/complex.h: New file.
        * backward/iomanip.h: New file.

	* mkcheck.in (LIB_PATH): Add -R bits.

	* math/carg.c (carg): Replace __atan2 with atan2.

2000-05-24  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* Makefile.am (TAGS): Construct.
	* Makefile.in: Rengerate.
	* src/Makefile.am: Tweak.
	* src/Makefile.in: Tweak.
	* configure.in: Tweak.

	* bits/c++config.h: Rename to ...
	* bits/c++config: This.
	* mkc++config: Adjust.
	
	* m4: Remove.
	* m4/lc_message.m4: Merge into acinclude.m4.
	* m4/mathfcts.m4: Same.
	* m4/stringfcts.m4: Same.
	* acinclude.m4: Add here.
	* configure: Regnerate.
	
	* acinclude.m4 (GLIBCPP_CHECK_COMPILER_VERSION): Remove
	OPTLEVEL. Add FMTFLAGS.
	* aclocal.m4: Regenerate.
	* src/Makefile.am (AC_CXXFLAGS): Take out OPTLEVEL, as this has
	been disabled due to higher-level Makefiles running amuck over
	this bit, and add in FMTFLAGS so that formatting is clear. 
	* src/Makefile.in: Regenerate.
	* configure: Regenerate.

	* src/ios.cc (ios_base::sync_with_stdio): Clean up buffers from
	initialization.

	* docs/download.html: Remove references to Cygwin-specific bits,
	as this can now be built natively.
	Update with current information.

2000-05-24  Phil Edwards  <pme@sourceware.cygnus.com>

	* acinclude.m4 (GLIBCPP_CHECK_COMPILER_VERSION):  If we can use
	  -fdiagnostics-show-location=once, do so.  Expand AC_LANG_* to
	  enclose other tests in this macro, including future ones.
	* aclocal.m4:  Regenerate.
	* configure:  Regenerate.

	* docs/faq/index.html:  Update location of libg++ FAQ.
	* docs/faq/index.txt:  Regenerate.

2000-05-22  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* docs/17_intro/libstdc++-assign.txt: Change Cygnus to FSF.

2000-05-22  Phil Edwards  <pme@sourceware.cygnus.com>

	* mkcheck.in:  Tweak for Solaris 8.  Additional minor output comment.

2000-05-22  Phil Edwards  <pme@sourceware.cygnus.com>

	* acinclude.m4:  If the new pragma isn't supported, don't kill -Werror;
	  keep -Werror and add -Wno-unknown-pragma.  -Werror Is Good.
	* aclocal.m4:  Regenerate.
	* configure:  Regenerate.

2000-05-19   Nathan C. Myers  <ncm@cantrip.org>

      	* bits/generic_shadow.h: s/swamp/legacy/

2000-05-19  Phil Edwards  <pme@sourceware.cygnus.com>

	* acinclude.m4:  Clean up comments on newer checks.
	  (GLIBCPP_CHECK_COMPILER_VERSION):  Check for system_header
	  pragma support.  Remove WERRORSUPPRESS variable, add WERROR.
	* aclocal.m4:  Regenerate.
	* configure:  Regenerate.
	* Makefile.in:  Regenerate.
	* libio/Makefile.in:  Regenerate.
	* math/Makefile.in:  Regenerate.
	* src/Makefile.am:  Tell make's WERROR to depend on configure's WERROR.
	* src/Makefile.in:  Regenerate.
	* docs/configopts.html:  Document changes to --enable names.

2000-05-18  Chip Salzenberg  <chip@valinux.com>

        * bits/ostream.tcc (_S_pad_char): Function template should not be
        static.
        * bits/streambuf.tcc (_S_copy_streambufs): Likewise.
        * src/string-inst.cc (__destroy_aux): Instantiate for string*.

2000-05-18  Nathan C. Myers  <ncm@cantrip.org>

	* mkcshadow: Change C_Swamp to C_legacy.
	* shadow/*: Same.
	* shadow/bits/*: Same.
	s/C_Swamp/C_legacy/g
	s/SWAMP/LEGACY/g
	s/_Shadow/_shadow/g

2000-05-18  Anthony Williams  <anthony@anthonyw.cjb.net> 

	* bits/locale_facets.tcc (num_get::_M_extract): Change char* to
	const char*.
	* src/string-inst.cc (string::_S_find): Same.
	
2000-05-18  Benjamin Kosnik  <bkoz@gnu.org>

	* acinclude.m4 (GLIBCPP_ENABLE_SHADOW): Change to
	--enable-cshadow-headers. Add output messages.
	(GCC_ENABLE_LONG_LONG): Change to --enable-long-long, no
	underscores (like the rest of the enable options.) Add output messages.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* configure.in: Touch.
	
2000-05-17  Benjamin Kosnik  <bkoz@cygnus.com>

	* mkcheck.in: Enable shared library testing.

2000-05-17  Nathan C. Myers  <ncm@cantrip.org>

	* bits/std_cmath.h: fix sqrt(float)

2000-05-16  Loren J. Rittle  <ljrittle@acm.org>

        * bits/std_cassert.h: Use system_header pragma.
        * bits/std_cctype.h: Likewise.
        * bits/std_cerrno.h: Likewise.
        * bits/std_cfloat.h: Likewise.
        * bits/std_climits.h: Likewise.
        * bits/std_clocale.h: Likewise.
        * bits/std_cmath.h: Likewise.
        * bits/std_csetjmp.h: Likewise.
        * bits/std_csignal.h: Likewise.
        * bits/std_cstdarg.h: Likewise.
        * bits/std_cstddef.h: Likewise.
        * bits/std_cstdio.h: Likewise.
        * bits/std_cstdlib.h: Likewise.
        * bits/std_cstring.h: Likewise.
        * bits/std_ctime.h: Likewise.
        * bits/std_cwchar.h: Likewise.
        * bits/std_cwctype.h: Likewise.
        * bits/std_exception.h: Likewise.
        * bits/std_new.h: Likewise.
        * bits/std_typeinfo.h: Likewise.
        * shadow/bits/std_cassert.h: Likewise.
        * shadow/bits/std_cctype.h: Likewise.
        * shadow/bits/std_cerrno.h: Likewise.
        * shadow/bits/std_cfloat.h: Likewise.
        * shadow/bits/std_climits.h: Likewise.
        * shadow/bits/std_clocale.h: Likewise.
        * shadow/bits/std_cmath.h: Likewise.
        * shadow/bits/std_csetjmp.h: Likewise.
        * shadow/bits/std_csignal.h: Likewise.
        * shadow/bits/std_cstdarg.h: Likewise.
        * shadow/bits/std_cstddef.h: Likewise.
        * shadow/bits/std_cstdio.h: Likewise.
        * shadow/bits/std_cstdlib.h: Likewise.
        * shadow/bits/std_cstring.h: Likewise.
        * shadow/bits/std_ctime.h: Likewise.
        * shadow/bits/std_cwchar.h: Likewise.
        * shadow/bits/std_cwctype.h: Likewise.
        * shadow/bits/wrap_libio.h: Likewise.
        * shadow/bits/wrap_unistd.h: Likewise.
        * shadow/sys/cdefs.h: Likewise.

2000-05-16  Nathan C. Myers  <ncm@cantrip.org>

        It appears that gcc-2.96 supports the keyword "and" now.
	* bits/std_ciso646.h: remove.
	* std/ciso646: gut.
	* testsuite/17_intro/header_ciso646.c: enable testing.
	* src/Makefile.am, src/Makefile.in: remove mention of
	bits/std_ciso646.h

2000-05-16  Nathan C. Myers  <ncm@cantrip.org>
       
       * mkcshadow: fix typo s/_C_Swamp_/_C_Swamp/.

2000-05-16  Phil Edwards  <pme@sourceware.cygnus.com>

	* acinclude.m4:  Fix typo, switch to decaf...
	* aclocal.m4:  Regenerate.
	* configure:  Regenerate.

2000-05-16  Phil Edwards  <pme@sourceware.cygnus.com>

	* acinclude.m4 (GLIBCPP_ENABLE_SHADOW):  New macro, stub.
	* aclocal.m4:  Regenerate.
	* configure.in:  Call.
	* configure:  Regenerate.
	* docs/configopts.html:  Stub documentation.

2000-05-14  Nathan Myers  <ncm@cantrip.org>

        * mkcshadow: build in more-correct directory, create cshadow/
        directory if needed, report progress.

2000-05-14  LLeweLLyn Reese  <llewelly@dbritsch.dsl.xmission.com>

        * src/Makefile.am: Fix tr commands.
        * src/Makefile.am: Remove references to [w]stringCTORDUPAL.[lo,cc]
        * src/string-inst.cc: Remove extra instantiation of
          S::basic_string(S::size_type, C, S::allocator_type const&);
        * src/string-inst.cc: Remove extra template keyword.

2000-05-14  Loren J. Rittle  <ljrittle@acm.org>

        * config/bsd/bits/ctype_base.h: Add support for plain BSD4.4.
        * acinclude.m4 (GLIBCPP_CHECK_CTYPE): Enhance bsd tests.
        * aclocal.m4: Regenerate.
        * configure: Regenerate.
        * */Makefile.in: Regenerate.

2000-05-11  Phil Edwards  <pme@sourceware.cygnus.com>

	* acinclude.m4:  Fix minor typo with ctypes, add more sanity to
	  enable-cxx-flags, and remove GLIBCPP_ENABLE_NAMESPACES altogether.
	* aclocal.m4:  Regenerate.
	* configure.in:  Non-blank arguments break fewer Linuxes.
	* configure:  Regenerate.
	* src/Makefile.am:  Re-order AC_CXXFLAGS components.
	* src/Makefile.in:  Regenerate.

2000-05-10  Benjamin Kosnik  <bkoz@redhat.com>

	* bits/std_cmath.h: Tweaks.
	* math/mathconf.h: Tweaks and fixes for HP-UX 11.
	(sqrtf): Define away iff !builtin and !in <math.h>. 
	(sinf): Same.
	(cosf): Same.
	(fabsf): Same.
	At some point this directory should be converted to c++, the
	autoconf tests should be run by the c++ compiler (not c), and
	<cmath> should be used instead of math.h.
	Move declaration of nan() here.
	* math/complex-stub.h (cabsl): Remove nan() declaration.

	Finish up FreeBSD4.0 support.
	* config/bsd/ctype.cc: Scope out toupper, tolower calls.
	* config/generic/ctype.cc: And here.
	* testsuite/21_strings/char_traits.cc (test02): Guard with
	_GLIBCPP_USE_WCHAR_T.

	via Phil Edwards  <pme@sourceware.cygnus.com>
	* bits/std_cctype.h: Remove _GLIBCPP_USE_NAMESPACES.
	* acconfig.h: And here.
	* acinclude.m4: Same.
	* testsuite/27_io/istream.cc: And here.
	* testsuite/27_io/ostream.cc: And here.

2000-05-09  Benjamin Kosnik  <bkoz@gnu.org>

	* acinclude.m4 (GLIBCPP_CHECK_CPU): Change powerpc bits to
	-mcpu=powerpc.
	* src/Makefile.am: Disable ENABLE_CXX_FLAGS stuff for the moment.
	
	* config/generic/bits/ctype_specializations.h (ctype<char>::is):
	Make more generic.

	* config/bsd: New directory.
	* config/bsd/ctype.cc: New.
	* config/bsd/bits/ctype_base.h (ctype_base): New.
	* config/bsd/bits/ctype_specializations.h: New.
	* acinclude.m4 (GLIBCPP_CHECK_CTYPE): Add bsd tests.
	
2000-05-09  Phil Edwards  <pme@sourceware.cygnus.com>

	* acinclude.m4:  New macro, GLIBCPP_ENABLE_CXX_FLAGS.
	* configure.in:  Call.
	* src/Makefile.am:  Append results of macro to AC_CXXFLAGS.
	* aclocal.m4:  Regenerate.
	* configure:  Ditto.
	* src/Makefile.in:  Ditto.
	* docs/configopts.html:  Document.
	* docs/download.html:  Fix typo (close quote).
	* docs/footer.html:  Update.

2000-05-09  Loren J. Rittle  <ljrittle@acm.org>

        * backward/iostream.h: Expose endl.  Guard wide types.
        * src/Makefile.am (headers): Update list to match files.
        * src/Makefile.in: Regenerate.

2000-05-09  Vadim Egorov  <egorovv@mailandnews.com>
	    Benjamin Kosnik  <bkoz@gnu.org>
	    Nathan Myers  <ncm@cantrip.org>
	    Dietmar Kuehl  <dietmar_kuehl@yahoo.com> 

        * bits/streambuf.tcc (basic_streambuf::xsgetn): Fix uflow case.
	(basic_streambuf::xsputn): Make consistent.
	* testsuite/27_io/filebuf.cc: Add tests.
	
2000-05-08  Steven King  <sxking@uswest.net>

        * bits/char_traits.h: Use wchar_t utility functions for
        char_traits<wchar_t> methods.
        * testsuite/21_string/char_traits.cc: New (test02): test
        char_traits<wchar_t>

2000-05-08  Benjamin Kosnik  <bkoz@cygnus.com>

	* acinclude.m4 (GLIBCPP_CXXFLAGS): Add bits for solaris2.8.

	* bits/fstream.tcc (filebuf::_M_init_filebuf): Don't set
	_M_buf_size based on macro, instead use _M_buf_size_opt.
	* bits/std_streambuf.h (basic_streambuf): Add _M_buf_size_opt.
	(basic_streambuf()): Set _M_buf_size_opt.
	* testsuite/27_io/filebuf.cc (filebuf): Use _M_buf_size_opt
	instead of _M_buf_size.

2000-05-04  Branko Cibej  <branko.cibej@hermes.si>

        * src/complex_io.cc: Don't instantiate inserters and extractors
        for wide-character streams unless _GLIBCPP_USE_WCHAR_T is defined.

2000-05-03  Phil Edwards  <pme@sourceware.cygnus.com>
            Felix Natter <fnatter@gmx.net>

	* docs/footer.html:  Update to see if it takes effect.
	* docs/thanks.html:  More people.
	* docs/17_intro/headers_cc.txt:  Copy from testsuite, since that can't
	  be seen from the web pages.  Rename for browser-friendliness...
	* docs/17_intro/howto.html:  ...and update here.
	* docs/17_intro/porting-howto.html:  Changes from Felix.
	* docs/gccrebuild.html:  Mention v3->egcs move.
	* docs/faq/index.html:  Ditto.  Also misc tweaks and URL updates.
	* docs/faq/index.txt:  Regenerate.

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

	* config/cpu/powerpc/bits/atomicity.h (__exchange_and_add): More
	fixes.

2000-05-01  Vadim Egorov  <egorovv@@mailandnews.com>

        * bits/char_traits.h: Fix parameter types.
        * bits/string.tcc: Avoid traits_type::move.

2000-05-01  Benjamin Kosnik  <bkoz@haight.constant.com>

	* src/Makefile.am (AC_CXXFLAGS): Add CPUFLAGS here.
	* src/Makefile.in: Regenerate.
	* acinclude.m4 (GLIBCPP_ENABLE_DEBUG): Revert.

2000-04-30  Steven King <sxking@uswest.net>

        * bits/locale_facets.h: Fix syntax  error.
        * bits/std_fstream.h: ditto

2000-04-30  Benjamin Kosnik  <bkoz@gnu.org>

	* config/cpu/powerpc/bits/atomicity.h (__compare_and_swap): Fix typo.

	* mknumeric_limits (trait_name): Fix copyright notice.
	* src/gen-num-limits.cc: Explicitly instantiate epsilon and
	round_error data members of struct value. This works around
	weak-linking issues on AIX, HPUX.

2000-04-29  Phil Edwards  <pme@sourceware.cygnus.com>

	* docs/download.html:  Add link to list of mirror sites.

2000-04-28  Loren J. Rittle  <ljrittle@acm.org>

        * mkcheck.in: Rely on exit status instead of the presence of a
        core file.  Added comments on how/where to save core and exe
        files.  Move shell wildcards outside quotes and fix core path.
	
2000-04-27  scott snyder  <snyder@fnal.gov>

        * src/misc-inst.cc: Explicitly instantiate ifstream and ofstream
        classes.

2000-04-26  Nathan C. Myers  <ncm@cantrip.org>

	* bits/basic_string.h: include <bits/atomicity.h> instead
        of <atomicity.h>, and use the uglified names.
        * config/cpu/*/atomicity.h: replace with bits/atomicity.h;
        uglify names, eliminate dependence on <inttypes.h>.
        * src/Makefile.in, src/Makefile.am: refer to correct place
        for atomicity.h header.

2000-04-25 Steven King <sxking@uswest.net>

        * bits/basic_string.h: Fix syntax error.

2000-04-25  Benjamin Kosnik  <bkoz@redhat.com>

	* acinclude.m4 (GLIBCPP_CHECK_MATH_SUPPORT): Improve checks for
	USE_LONG_DOUBLE.
	(GLIBCPP_ENABLE_DEBUG): If alpha, use -gdwarf-2.
	* math/Makefile.am (EXTRA_LONG_DOUBLE_yes): Add all the long
	versions to this as copysignl is needed anyway for these targets.
	* math/Makefile.in: Regenerate.
	
	* bits/streambuf.tcc (streambuf::xsgetn): Tweak.
	* bits/fstream.tcc (underflow): Cast to libio types.
	* bits/basic_file.h (seekoff): Fixes for alpha: use __c_streamoff.
	* config/c_io_libio.cc (seekoff): And here.
	
2000-04-24  Loren J. Rittle  <ljrittle@acm.org>

        * mkcheck.in: Report compiler version used for test.  Find
        the built _G_config.h instead of any old installed version.

2000-04-24  Loren J. Rittle  <ljrittle@acm.org>

        * config/generic/ctype.cc (do_toupper): Remove dependence on
        non-portable/non-existent lookup table.
        (do_tolower): Same.
	
2000-04-24  Nathan Myers  <ncm@cantrip.org>

	* src/string-inst.cc: More fixing.

2000-04-24  Benjamin Kosnik  <bkoz@gnu.org>

	* bits/stl_iterator.h: Pedantic fixing.
	* bits/std_sstream.h: And here.
	* bits/string.tcc: And here.

2000-04-24  Felix Natter <fnatter@gmx.net> 

	* docs/17_intro/howto.html: Add bits.
	* docs/17_intro/porting-howto.html: New file.
	
2000-04-24  Branko Cibej  <branko.cibej@hermes.si>

        * acinclude.m4(GLIBCPP_CHECK_WCHAR_T_SUPPORT): Expand
        @libinst_wstring_la@ to libinst-wstring.la when specializing for
        wchar_t, to empty string otherwise.
        * src/Makefile.am: (EXTRA_LTLIBRARIES): New.
        (sources): Remove $(string_sources) and $(wstring_sources).
        (libstdc___la_LIBADD): Add libinst-string.la and @libinst_wstring_la@.
        (libstdc___la_DEPENDENCIES): New.
        (libinst_string_la_SOURCES, libinst_wstring_la_SOURCES): New.

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

	* bits/std_sstream.h: Tweak formatting.
	* bits/std_fstream.h: Make types public.

	* testsuite/27_io/streambuf.cc: Fix for alpha.

	Brad Garcia <bgarcia@laurelnetworks.com>
	* bits/locale_facets.h (numpunct::numpunct(size_t)): Fix bool
	initialization.
	* testsuite/27_io/ios_manip_fmtflags.cc (test02): Add test for
	bool formatting.
	
2000-04-19  Nathan Myers  <ncm@cantrip.org>

	* src/string-inst: consolidate _S_create,
	destroy, leak, clone members into stringMAIN and stringMUTATE
	object files.
	* src/Makefile.am: Above, and eliminate dependence on
	wstring-inst.cc.
	* src/wstring-inst.cc: Remove.

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

	* src/Makefile.am (AC_CXXFLAGS): Activate debugging code, again.
	Add flags for specialized rules dealing with instantiations.
	
	* src/string-inst.cc: Add instantiations missing from shared
	libraries--see stringEQ, stringCONSC.
	* src/Makefile.am (wstring_sources): Add.
	(string_sources): Same.
	* src/Makefile.in: Regenerate.
	
	* stl/*: Integrate contents of this directory into top-level
	directories.
	* ext/bvector hash_map hash_set rope ropeimpl.h slist
	stl_bvector.h stl_hash_fun.h stl_hashtable.h stl_rope.h tree: Add.
	* bits/pthread_allocimpl.h std_algorithm.h std_bitset.h
	std_deque.h std_functional.h std_iterator.h std_list.h std_map.h
	std_memory.h std_numeric.h std_queue.h std_set.h std_stack.h
	std_stdexcept.h std_strstream.h std_utility.h std_vector.h
	stl_algo.h stl_algobase.h stl_alloc.h stl_config.h stl_construct.h
	stl_deque.h stl_function.h stl_heap.h stl_iterator.h
	stl_iterator_base.h stl_list.h stl_map.h stl_multimap.h
	stl_multiset.h stl_numeric.h stl_pair.h stl_pthread_alloc.h
	stl_queue.h stl_range_errors.h stl_raw_storage_iter.h stl_relops.h
	stl_set.h stl_stack.h stl_string_fwd.h stl_tempbuf.h stl_threads.h
	stl_tree.h stl_uninitialized.h stl_vector.h type_traits.h: Add.
	* backward/algo.h algobase.h alloc.h bvector.h defalloc.h deque.h
	function.h hash_map.h hash_set.h hashtable.h heap.h iterator.h
	list.h map.h multimap.h multiset.h pair.h rope.h set.h slist.h
	stack.h tempbuf.h tree.h vector.h: Add.
	* README (file): Update.
	* docs/documentation.html: README not being found.
	* src/Makefile.am (sources): Take out stl directory.
	* mkcheck.in (SRC_DIR): And here.
	* src/Makefile.in: Regenerate.
	
2000-04-18  Levente Farkas  <lfarkas@mindmaker.hu>

	* stl/bits/stl_function.h: Add bits so that const and non-const
	both work.
	
2000-04-18  scott snyder  <snyder@fnal.gov>

        * stl/bits/stl_map.h (class map): Fix default for _Alloc template
        parameter.  Get rid of use of __STL_DEFAULT_ALLOCATOR and
        __STL_LIMITED_DEFAULT_TEMPLATES macros.
        * stl/bits/stl_multimap.h (class multimap): Likewise.  Get rid of
        use of __STL_DEPENDENT_DEFAULT_TMPL macro.

2000-04-18  scott snyder  <snyder@fnal.gov>

        * stl/bits/stl_config.h (__STL_DEPENDENT_DEFAULT_TMPL): Deleted
        this macro.

        * stl/ext/hash_map (class hash_map, class hash_multimap): Get rid
        of use of __STL_DEPENDENT_DEFAULT_TMPL macro.
        * stl/ext/hash_set (class hash_set, class hash_multiset):
        Likewise.
        * stl/bits/stl_function.h (struct constant_unary_fun, struct
        constant_binary_fun): Likewise.
        * stl/bits/stl_queue.h (class queue, class priority_queue): Likewise.
        * stl/bits/stl_stack.h (class stack): Likewise.
        * stl/bits/stl_set.h (class set): Likewise.
        * stl/bits/stl_multiset.h (class multiset): Likewise.

        * stl/bits/stl_iterator.h (class reverse_bidirectional_iterator,
        class reverse_iterator): Get rid of use of
        __STL_LIMITED_DEFAULT_TEMPLATES macro.

        * stl/bits/stl_config.h (__STL_DEFAULT_ALLOCATOR): Deleted this
        macro.

        * stl/bits/stl_deque.h (class deque): Get rid of use of
        __STL_DEFAULT_ALLOCATOR macro.
        * stl/bits/stl_list.h (class list): Likewise.
        * stl/bits/stl_multiset.h (class multiset): Likewise.
        * stl/bits/stl_set.h (class set): Likewise.
        * stl/bits/stl_string_fwd.h (class basic_string): Likewise.
        * stl/bits/stl_tree.h (class _Rb_tree, class rb_tree): Likewise.
        * stl/bits/stl_vector.h (class vector): Likewise.
        * stl/ext/ropeimpl.h (rotate): Likewise.
        * stl/ext/hash_map (class hash_map, class hash_multimap):
        Likewise.
        * stl/ext/hash_set (class hash_set, class hash_multiset):
        Likewise.
        * stl/ext/slist (class slist): Likewise.
        * stl/ext/stl_bvector.h (class bit_vector): Likewise.
        * stl/ext/stl_rope.h (class rope): Likewise.
        * src/locale.cc (_Impl): Likewise.
        * src/localename.cc (_Impl): Likewise.
        * bits/localefwd.h (_Impl): Likewise.

2000-04-18  Phil Edwards  <pme@sourceware.cygnus.com>

	* docs/install.html:  Cleanup, minor changes.
	* docs/17_intro/howto.html:  Ditto.

2000-04-18  Nathan Myers  <ncm@cantrip.org>

	* bits/basic_string.h: Remove "inline" from member _S_find.
	
	* src/string-inst.cc: Rewrite to reflect non-inline template
	instantiations in string.tcc.
	
	* src/stringADDCS.cc, stringADDPS.cc, stringADDSC.cc, stringADDSP.cc,
	stringADDSS.cc, stringBIST.cc, stringBOST.cc, stringCHTR.cc,
	stringEQPS.cc, stringEQSP.cc, stringEQSS.cc, stringEXTRA.cc,
	stringGEPS.cc, stringGESP.cc, stringGESS.cc, stringGETLI.cc,
	stringGTPS.cc, stringGTPS.cc, stringGTSP.cc, stringGTSS.cc,
	stringINSER.cc, stringLEPS.cc, stringLESP.cc, stringLESS.cc,
	stringLESP.cc, stringLTPS.cc, stringLTPS.cc, stringLTSP.cc,
	stringLTSS.cc, stringMAIN.cc, stringNEPS.cc, stringNESP.cc,
	stringNESS.cc, stringSCOPY.cc: Remove.
	* src/wstringADDCS.cc, etc: Remove.

	Benjamin Kosnik  <bkoz@haight.constant.com>
	* src/Makefile.am: Modify to reflect above.
	* src/Makefile.in: Regenerate.
	
2000-04-17  Benjamin Kosnik  <bkoz@cygnus.com>

	* docs/install.html (--enable-libstdcxx-v3): Clean up install docs.

2000-04-13  Benjamin Kosnik  <bkoz@haight.cygnus.com>

	* bits/std_fstream.h (filebuf::sync): Need to use the abstracted
	io interface here instead of the libio particulars.

	* config/threads-posix.h: Consistency with stl_config.h.

	* mkcheck.in (CXX_FLAG): Add DDEBUG_ASSERT back in.
	
2000-04-13  Loren J. Rittle  <ljrittle@acm.org>

        * mknumeric_limits: Rename generic type template parameter name
        '_T' to '_Tp'.
        * stl/bits/type_traits.h: Ditto.

2000-04-06  Benjamin Kosnik  <bkoz@decepticon.cygnus.com>

	* mkcheck.in (SRC_DIR): Change default mkcheck behavior, so that
	it is more useful for --enable-libstdcxx-v3. Use the built
	compilers with v3, instead of compilers in PATH, and don't
	re-include include directories for checking the install.

2000-04-05  Benjamin Kosnik  <bkoz@cygnus.com>

	* src/Makefile.am (AM_CXXFLAGS): Disable NAMESPACES, as this is on
	by default when using --enable-libstdcxx-v3.
	* src/Makefile.in: Regenerate.
	* configure.in: Disable GLIBCPP_ENABLE_NAMESPACES,
	GLIBCPP_ENABLE_RELIBGCC for --enable-libstdcxx-v3 flag.
	* configure: Regenerate.
	* mkcheck.in: Deal with NAMESPACES.
	
2000-04-05  Petter Urkedal  <petter@matfys.lth.se>

        * src/cmath.cc: New file...
        (pow(*, int)): Define functions...
        * src/Makefile.am (sources): ...register file.
        * src/Makefile.in: Regenerate.
        * bits/std_cmath.h (pow): ...declare functions here, and remove
        old definitions.

2000-04-04  Benjamin Kosnik  <bkoz@redhat.com>
	
	* acinclude.m4 (GCC_OBJDIR): Tweaks

2000-04-03  Benjamin Kosnik  <bkoz@redhat.com>
	
	* acinclude.m4 (GLIBCPP_CHECK_CPU): Add arm configure bits.
	* config/cpu/arm: New directory.

	Jesper Skov  <jskov@redhat.com>
	* config/cpu/arm/atomicity.h: New file.
	
2000-03-31  Benjamin Kosnik  <bkoz@redhat.com>

	* stl/bits/stl_config.h: Make _STL_THREADS depend on _REENTRANT.
	Remove unused bits. Clean.
	
2000-03-29  Benjamin Kosnik  <bkoz@cygnus.com>

	* testsuite/25_algorithms: New directory.
	* testsuite/25_algorithms/min_max.cc: New file.

2000-03-29  scott snyder  <snyder@fnal.gov>

        * bits/locale_facets.tcc (do_put): Allow a couple extra digits of
        precision beyond that which we get from numeric_limits::digits10.

        * stl/bits/stl_algobase.h (max, min): Don't use comparison
        operator.

	* testsuite/23_containers/bitset_shift.cc: Fix.

        * testsuite/27_io/ios_manip_fmtflags.cc (test01): Don't give a
        temporary to imbue().

	* bits/std_fstream.h (sync): Resync libio's idea of the current
        file position with the external file.

2000-03-28  Benjamin Kosnik  <bkoz@cygnus.com>

	* testsuite/27_io/istream_extractor_arith.cc.cvs: Fix merge
	mistake.

	* bits/std_fstream.h (filebuf::is_open): Check for _M_file before
	attempting calls to it. 
	* bits/fstream.tcc (ctors): Don't call _M_init_filebuf in
	ctors. Instead, call _M_init_filebuf ...
	(open): Here, as suggested by 27.8.1.3.	
	* src/ios.cc (ios_base::Init::Init()): Clean up default filebufs
	properly when initializing cout/cin/cerr.

2000-03-27  Russell Davidson  <russell@ehess.cnrs-mrs.fr>

	* testsuite/23_containers/multiset.cc (main): Clean up for namespaces.
	* testsuite/22_locale/ctype_char_members.cc: And here.
	* testsuite/27_io/streambuf.cc (streambuf): And here.
	* testsuite/27_io/ostream_inserter_char.cc (test06): And here.
	* testsuite/27_io/istream_unformatted.cc (test05): And here.
	* testsuite/27_io/istream_extractor_arith.cc: And here.
	* testsuite/27_io/ios_manip_basefield.cc (test02): And here.
	* testsuite/27_io/ios_base_members_static.cc: And here.
	* bits/std_climits.h (_CPP_CLIMITS): Fix typo.

2000-03-27  Chris Faylor  <cgf@cygnus.com>
	
	* configure.in: Remove setting of CXX if canadian cross.
	* configure: Regenerate.

2000-03-27  Nathan Myers  <ncm@zembu.com>

	* bits/sstream.tcc: Optimize.
	* bits/basic_string.h(string::append): Don't inline.
	* bits/string.tcc: Move out-of-line.
	
2000-03-27  Phil Edwards  <pme@sourceware.cygnus.com>

	* acinclude.m4:  (GLIBCPP_CHECK_COMPILER_VERSION)  When using <2.96,
	  define WERRORSUPPRESS so that the inlining warnings won't kill us.
	* aclocal.m4:  Regenerate.
	* configure:  Regenerate.
	* src/Makefile.am:  Use WERRORSUPPRESS for the files that need it.
	* src/Makefile.in:  Regenerate.

	* docs/install.html:  Almost complete rewrite.

2000-03-25  Phil Edwards  <pme@sourceware.cygnus.com>

	* docs/install.html:  Explain -Werror problem at "#Werror" mark.
	* docs/faq/index.html:  Testsuite will die horribly if new libgcc.a
	  not installed.
	* docs/faq/index.txt:  Regenerate.

2000-03-24  Alexandre Oliva  <oliva@lsd.ic.unicamp.br> 

	* src/Makefile.am (libio_headers_install): Fix.
	* src/Makefile.in: Regenerate.
	
2000-03-24  Benjamin Kosnik  <bkoz@cygnus.com>

	* docs/17_intro/RELEASE-NOTES: Fix typos.
	* docs/index.html: Update.
	* docs/17_intro/BUGS: Update.
	* docs/status.html: Update for 2.90.8 release.

2000-03-23  Phil Edwards  <pme@sourceware.cygnus.com>

	* Makefile.am:  Better error message when missing libgcc2.ready.
	* Makefile.in:  Regenerate.
	* acinclude.m4:  Fastidious nitpicking reformatting.
	* aclocal.m4:  Regenerate.
	* configure:  Regenerate.
	* mkcheck.in:  Must use same namespace settings as the library being
	  tested.  Also log ST_FLAG, since it's being passed.
	* docs/install.html:  Add brief chunk on configuration.
	* docs/17_intro/RELEASE-NOTES:  Fix minor Cygwin typo.
	* docs/23_containers/howto.html:  Mention MT-safe string.
	* docs/faq/index.html:  Minor updates.
	* docs/faq/index.txt:  Regerarate.

2000-03-22  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/sstream.tcc (seekoff): Fix for gptr() null cases.
	Return newoff. 
	* bits/fstream.tcc (seekoff): Sync.
	(seekpos): Sync.
	* testsuite/27_io/ostream_unformatted.cc: New file.
	* testsuite/27_io/stringbuf.cc: Fix.
	* testsuite/27_io/istream_unformatted.cc (test04): Fix.
	
	* config/newlib/bits/ctype_base.h (ctype_base): Fix.
	* config/newlib/ctype.cc (ctype): Change __ctype -> _ctype_.

	* src/complex_io.cc (operator>>complex): Tweak.

	* config/cpu/alpha/atomicity.h: Explicitly typedef uint32_t, int32_t if
	<inttypes.h> does not exist.
	* config/cpu/sparc/sparc64/atomicity.h: Same.
	* config/cpu/sparc/sparc32/atomicity.h: Same.
	* config/cpu/powerpc/atomicity.h: Same.
	* config/cpu/i386/atomicity.h: Same.
	* config/cpu/generic/atomicity.h: Same.
	* configure.in: Check for inttypes.h.
	* configure: Regnerate.

2000-03-21  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/std_sstream.h (_M_init_stringbuf): Set initial ate position
	correctly.
	* testsuite/27_io/ostream_inserter_char.cc (test06): Add tests for ate.

	* docs/17_intro/RELEASE-NOTES (New): Add bits.

	* configure.in: Move AC_CHECK_HEADERS to a point where we know we
	are compiling natively.

	* libio/*: Update to CVS libio from egcs.
	
2000-03-21  Phil Edwards  <pme@sourceware.cygnus.com>

	* docs/download.html:  Document use of -z9 for CVS.
	* docs/index.html:  Add target date (no link) for future snapshot.

2000-03-21  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* bits/slice_array.h: Rename generic type template parameter name
	'_T' to '_Tp'. 
	* bits/mask_array.h: Ditto

2000-03-20  Benjamin Kosnik  <bkoz@cygnus.com>	

        * *: Change copyright holder from "Cygnus Solutions" to "Free
	Software Foundation, Inc."
	
	* docs/configopts.html: Explain what "hella versions" means.
	* docs/install.html: Some tweaks--nice job on this Phil.
	* docs/documentation.html: Add a direct link to configuration options.

	* src/Makefile.am (OPTIMIZE_CXXFLAGS): Add in extras.
	* docs/17_intro/RELEASE-NOTES (New): Add.
	* bits/c++config.h (__GLIBCPP__): Bump version.

	* config/c_io_libio.cc (__basic__file(__c_lock*)): Change argument
	type to match prototype.

2000-03-20  Phil Edwards  <pme@sourceware.cygnus.com>

	* docs/install.html:  Update for new funky build procedure.  Move
	  description of 'configure' options to...
	* docs/configopts.html:  ...here.  New file.
	* docs/17_intro/howto.html:  Updates for new snapshot.
	* docs/20_util/howto.html:  Ditto.
	* docs/21_strings/howto.html:  Ditto.
	* docs/21_strings/stringtok_std_h.txt:  Fix example typos.
	* docs/22_locale/howto.html:  Ditto.
	* docs/23_containers/howto.html:  Ditto.
	* docs/faq/index.html:  Ditto.

2000-03-18  Petter Urkedal  <petter@matfys.lth.se>
            Benjamin Kosnik  <bkoz@gnu.org>
	
        * acinclude.m4 (GLIBCPP_CHECK_COMPLEX_SUPPORT): Move code for main
        to the right place.
        * aclocal.m4: Regenerate.
        * configure: Regenerate.

2000-03-16  Benjamin Kosnik  <bkoz@cygnus.com>
            scott snyder  <sss@karma.fnal.gov>
	
	* config/c_io_libio.h: Add __c_lock.
	* config/threads-no.h: Same here.
	* config/threads-posix.h: Add __mutext_type typedef.
        * config/c_io_libio.cc: basic_file ctor takes lock arg. 
        * bits/basic_file.h: Ctor takes lock arg. 
        * bits/std_fstream.h: Add _M_lock.
        * bits/fstream.tcc: Supply it to basic_file ctor.

	* mkcheck.in (resultstext): Change [[ to [.

	* testsuite/27_io/ostream_inserter_char.cc (test06): Tweak.

	* bits/locale_facets.h: Tweak.	

	* stl/bits/stl_config.h: Fix defines.
	
2000-03-16  Benjamin Kosnik  <bkoz@cygnus.com>

	* mkcheck.in (INC_PATH): Add paths from cpu_include_dir to find
	atomicity.h
	* configure: Regenerate.
	* aclocal.m4: Regnerate.
	
2000-03-16  Nathan Myers  <ncm@zembu.com>

	* bits/string.tcc: Add MT support.
	* bits/basic_string.h: Same.
	
2000-03-16  Phil Edwards  <pme@sourceware.cygnus.com>

	* configure.in:  Make --enable-namespaces and -libgcc-rebuild=../..
	  the defaults.
	* configure:  Regenerate.

	* config/solaris/solaris2.7/ctype.cc:  Fix unsigned/signed comparison.

2000-03-16  Phil Edwards  <pme@sourceware.cygnus.com>

	* acinclude.m4 (GLIBCPP_CHECK_CTYPE):  If Sol2.5 ctype is found, keep
	  checking for 2.[67].  (GLIBCPP_ENABLE_RELIBGCC):  No longer ignore
	  any defaults passed in.
	* aclocal.m4:  Regenerate.

2000-03-16  Phil Edwards  <pme@sourceware.cygnus.com>

	* mkcheck.in:  Report total successes and failures.

2000-03-15  Benjamin Kosnik  <bkoz@cygnus.com>

	* config/cpu: New directory, intended to be used to provide
	cpu-specific configuration files. In particular, assembly language
	primitives for thread safety.
	* config/cpu/alpha: Populate.
	* config/cpu/alpha/atomicity.h: New file.
	* config/cpu/arm: Populate.
	* config/cpu/generic: Populate.
	* config/cpu/generic/atomicity.h: New file.
	* config/cpu/hppa: Populate.
	* config/cpu/i386: Populate.
	* config/cpu/i386/atomicity.h: New file, take from i486.
	* config/cpu/m68k: Populate.
	* config/cpu/mips: Populate.
	* config/cpu/powerpc: Populate.
	* config/cpu/powerpc/atomicity.h: New file.
	* config/cpu/sparc: Populate.
	* config/cpu/sparc/sparc32: Populate.
	* config/cpu/sparc/sparc64: Populate.
	* config/cpu/sparc/sparc32/atomicity.h: New file.
	* config/cpu/sparc/sparc64/atomicity.h: New file.	

	* src/Makefile.am (myinstallheaders): Add install routines.
	* acinclude.m4 (GLIBCPP_CHECK_CPU):Add configuration for the
	cpu dir.
	* configure.in: Add.

	* config/default: Adopt glibc naming conventions, and so move to
	* config/generic: Here.
	* acinclude.m4 (GLIBCPP_CHECK_CTYPE): Modify default case to generic.
	
2000-03-15  Bill Thompson  <billt@toast.net>

	* testsuite/27_io/ostream_inserter_char.cc (test06): Add test.

2000-03-14  Phil Edwards  <pme@sourceware.cygnus.com>

	* docs/17_intro/howto.html:  Add missing "TOC" entry, and new section.

	* acinclude.m4 (GLIBCPP_CHECK_CTYPE): Fixup.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

2000-03-13  scott snyder  <snyder@fnal.gov>
	    Jason Merrill  <jason@cygnus.com>
	
        * bits/locale_facets.h (class ctype, class ctype<char>, class
        ctype<wchar_t>): More mask fixes.
        * testsuite/22_locale/ctype.cc: Test for the problem.

2000-03-13  Benjamin Kosnik  <bkoz@cygnus.com>

	* acconfig.h: Add bits.
	* configure.in: Move AM_PROG_LIBTOOL up in file.
	Tweak cross compiling info. 
	* configure: Regenerate.

	* mknumeric_limits (XCOMPILE): Echo compilation line for
	gen-num-limits.cc

	* acinclude.m4 (GLIBCPP_CHECK_CTYPE): Add aix checks.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* config/aix/ctype.cc (ctype): Tweak.
	* config/aix/bits/ctype_base.h (ctype_base): Tweak.
	* config/aix/bits/ctype_specializations.h: New file.

2000-03-10  scott snyder  <snyder@fnal.gov>

        * stl/bits/stl_vector.h (_M_assign_aux): Fix for __normal_iterator 
        conversions.
        * testsuite/23_containers/vector_modifiers.cc (test01): Add a
        regression test for the problem.

2000-03-09  Benjamin Kosnik  <bkoz@fidel.cygnus.com>
	
	* testsuite/27_io/streambuf.cc (class testbuf): Same here.	
	* bits/fpos.h: And here.
	* bits/std_ostream.h: Same here.
	* bits/std_istream.h: Same here.
	* bits/basic_ios.h: Same here.
	* bits/std_fstream.h: Same here.
	* bits/sbuf_iter.h (std): Here too.
	* bits/std_sstream.h: Make types public.

	* src/misc-inst.cc: Use size_t instead of unsigned int. 
	* bits/locale_facets.tcc (_S_format): For now, cast to char. I
	suppose this should be ctype::narrow... all the ctype<wchar_t>
	stuff needs to be cleaned up.

2000-03-09  Phil Edwards  <pme@sourceware.cygnus.com>

	* docs/gentop:  Remove entire directory, finally.

2000-03-09  scott snyder  <snyder@fnal.gov>

        * bits/std_cmath.h (modf): Fix pointer overrun.
        * testsuite/26_numerics/c_math.cc (test04, main): Add a regression 
        test for the problem.

2000-03-09  Phil Edwards  <pme@sourceware.cygnus.com>

	Looks like changes to the #include'd files must be followed by a
	change to the #include'ing files to take effect.  Caveat emptor.
	* docs/header.html:  New file, for server-side include.
	* docs/footer.html:  New file, for server-side include.
	* docs/documentation.html:  Change to use SSI.
	* docs/download.html:  Ditto.
	* docs/index.html:  Ditto.
	* docs/mail.html:  Ditto.
	* docs/status.html:  Ditto.
	* docs/thanks.html:  Ditto, plus minor updates.
	* docs/how.html:  Remove.

2000-03-09  Benjamin Kosnik  <bkoz@gnu.org>

	Preliminary alpha-linux support.
	* src/locale.cc (ctype<wchar_t>): Use correct types...
	* bits/locale_facets.h (ctype<char>): Add __table_type typedef.
	(ctype<wchar_t>): Same.
	* bits/locale_facets.h (ctype<wchar_t>): Have char and wchar_t
	types match for table_size (size_t).

	* config/gnu-linux/ctype.cc (ctype): Change char_type to wchar_t
	as per char specialization.
	* config/*/ctype.cc: Same.
	
2000-03-09  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* bits/locale_facets.h (_Ctype<>::mask): Import from base class
	_Ctype_nois<>.  Template base classes are never examinated in
	first-phase name-lookup. 

2000-03-08  Benjamin Kosnik  <bkoz@gnu.org>

	Add Solaris 2.5.1 support.
	* config/solaris/solaris2.5/bits/ctype_base.h (ctype_base): And here.
	* config/solaris/solaris2.5/ctype.cc: Fixup.
	* config/solaris/solaris2.5/bits/ctype_specializations.h: Add.
	* acinclude.m4 (GLIBCPP_CHECK_CTYPE): Add bits for solaris2.5.1.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	
	* config/default/ctype.cc (ctype): Fixup.

2000-03-07  Benjamin Kosnik  <bkoz@blues.cygnus.com>

	* testsuite/27_io/filebuf.cc: Activate init code from yesterday...
	* testsuite/27_io/ostream_inserter_arith.cc (testcases): Fix for
	non-wchar_t case.

2000-03-07  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* bits/cpp_type_traits.h: Expand on this file purpose.

2000-03-06  Benjamin Kosnik  <bkoz@gnu.org>

	* bits/locale_facets.h (ctype<char>): Remove static members, and
	re-work initialization code.
	(ctype<wchar_t>): Same.
	Move _S_touppper to _M_toupper and initialize in ctor.
	Move _S_tolower  to _M_tolower and initialize in ctor.	
	Move _S_table to _M_ctable and initialize in ctor.
	* bits/locale_facets.h (std): And here.
	* src/locale.cc (std): Tweak.
	* config/gnu-linux/ctype.cc: Change initialization here.
	* config/newlib/ctype.cc: And here.
	* config/solaris/solaris2.7/ctype.cc: And here.
	* config/solaris/solaris2.6/ctype.cc: And here.
	
	* bits/localefwd.h: Tweak.
	* bits/std_streambuf.h: Tweak formatting.

	* testsuite/27_io/filebuf.cc: Remove BUFSIZ dependencies.

2000-03-05  Chip Salzenberg  <chip@valinux.com>

        * src/misc-inst.cc (basic_iostream<>):  Instantiate.

2000-03-02  Phil Edwards  <pme@sourceware.cygnus.com>
            Kevin Atkinson  <kevinatk@home.com> 

        Initial grab of SGI's strstream implementation with minor
        modifications.
        * src/strstream.cc:  New file.
        * std/strstream:  New file.
        * stl/bits/std_strstream.h:  New file.
        * bits/std_streambuf.h:  Add public access.
        * src/Makefile.am:  Add strstream sources to list of dependencies.
        * src/Makefile.in:  Regenerate.

2000-03-03 2000  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* bits/valarray_meta.h: Fix typo.
	
2000-03-02  Alexandre Oliva  <oliva@lsd.ic.unicamp.br> 
	    Chip Salzenberg  <chip@valinux.com>
	    Petter Urkedal  <petter@matfys.lth.se>

	* src/Makefile.am (myinstallheaders): Hack to avoid
        `for i in ; do'.
	* src/Makefile.in: Regenerate.
	
2000-03-02  Chip Salzenberg  <chip@valinux.com>

        * libio/Makefile.an, math/Makefile.an, src/Makefile.am
        (LINK): Put quotes around "$(CC)" for libtool link mode,
        so libtool will use "-B" options during GCC bootstrap.
        * */Makefile.in: Regenerate.
        
2000-03-02  Petter Urkedal  <petter@matfys.lth.se>

        * config/c_io_libio.h: Enclose it all in ::std.
        * bits/basic_string.h (basic_string<>): Make types and
        `npos' public.
        * mkc++config: Truncate output file before writing.

2000-03-01  Benjamin Kosnik  <bkoz@gnu.org>

	* math/cabsf.c (__mycabsf): Rename to cabsf.
	* math/cabs.c (__mycabs): Rename to cabs.

2000-02-29  LLeweLLyn Reese  <llewelly@198.dsl.xmission.com>
 
       * bits/basic_string.h: Move declarations of __out_of_range(),
       __length_error() and accompanying macros ...
       * bits/exception_support.h: here. (Newly created file).
       * bits/basic_string.h: #include <bits/exception_support.h>
       * stl/bits/stl_vector.h: #include <bits/exception_support.h>
       * src/Makefile.am (headers): Add.
       * src/Makefile.in: Regenerate.
	
2000-02-29  Benjamin Kosnik  <bkoz@cygnus.com>
	
	* bits/cpp_type_traits.h: Rename structs so they don't clash with
	type_traits.h.
	* bits/valarray_array.h: Synch. Fix typos.

	* libio/Makefile.am: Change to only compile source files that
	config/c_io_libio.cc actually needs.
	* libio/Makefile.in: Regnerate.
	* libio/PlotFile.hes SFile.h builtinbuf.h editbuf.h floatconv.c
	floatio.h fstream.h indstream.h iofclose.c iofdopen.c iofeof.c
	ioferror.c iofflush.c iofgetpos.c iofgets.c iofopen.c iofprintf.c
	iofputs.c iofread.c iofscanf.c iofsetpos.c ioftell.c iofwrite.c
	iogetc.c iogetdelim.c iogetline.c iogets.c ioignore.c iomanip.h
	iopadn.c ioperror.c iopopen.c ioprims.c ioprintf.c ioputc.c
	ioputs.c ioscanf.c ioseekoff.c ioseekpos.c iosetbuffer.c
	iosetvbuf.c iosprintf.c iosscanf.c iostream.h iostrerror.c
	ioungetc.c iovfprintf.c iovfscanf.c iovsprintf.c iovsscanf.c
	istream.h list.out ostream.h outfloat.c parsestream.h peekc.c
	pfstream.h procbuf.h stdiostream.h stream.h streambuf.h strfile.h
	strops.c strstream.h: Delete.

	* bits/basic_file.h: Stub out or delete unused bits in this
	interface.
	(filepos_beg): Remove.	
	(filepos_cur): Remove.
	(filepos_valid): Remove.
	* config/c_io_libio.cc: Resynch with the changes to basic_file.

2000-02-29  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* bits/cpp_type_traits.h: Correct typo.

2000-02-29  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* bits/cpp_type_traits.h: New file.
	
	* bits/valarray_array.h: Tweak.  #include <bits/cpp_type_traits.h>
	Improve array construction.
	(_Array_default_ctor): New dispatcher class. 
	(__valarray_default_construct): New function.
	(_Array_copy_ctor): New dispatcher class.
	(__valarray_copy_construct): New function.
	(_Array<>::free_data): Remove.

	* src/Makefile.am (headers): Add cpp_type_traits.h
	* src/Makefile.in: Regenerate.

2000-02-28  Benjamin Kosnik  <bkoz@cygnus.com>

	Prune libio directory to match files in libio/Makefile.
	* libio/PlotFile.cc,indstream.cc, isgetsb.cc, sbform.cc,
	stream.cc, SFile.cc, ioassign.cc, isscan.cc, sbgetline.cc,
	streambuf.cc, builtinbuf.cc, ioextend.cc, osform.cc, sbscan.cc,
	strstream.cc, editbuf.cc, iomanip.cc, parsestream.cc,
	stdiostream.cc, filebuf.cc, iostream.cc, pfstream.cc,
	stdstrbufs.cc, fstream.cc, isgetline.cc, procbuf.cc,
	stdstreams.cc: Remove.
	* libio/floatio.h, iolibio.h, iostdio.h, iostreamP.h: Remove.
	* libio/iofflush_u.c: Remove.
	
	* libio/dbz: Remove.  
	* libio/include: Remove.  
	* libio/stdio: Remove.  
	* libio/tests: Remove.  
	* libio/testsuite: Remove.
	
	* config/c_io_libio.cc: Add fcntl.h include for Solaris.

	* acinclude.m4 (GLIBCPP_ENABLE_CSTDIO): Add bits.
	* configure.in: Replace 'grep -e' with 'grep' for Solaris.
	* configure: Regenerate.

2000-02-25  Benjamin Kosnik  <bkoz@gnu.org>

	Abstract out the underlying "C" io bits.
	* bits/std_new.h: Remove <stl_config> include, as well as <cstddef>.
	* stl/bits/stl_string_fwd.h: Remove <stddef> include.
	* bits/std_cwchar.h: Wrap with _GLIBCPP_USE_WCHAR_T guards. Don't
	include <cstddef>.
	* stl/bits/stl_config.h: Don't include _G_config.h.

	* bits/basic_file.h: Allow for non-inheritance based __basic_files.
	* config/c_io_libio.h (_GLIBCPP_BASIC_FILE_INHERITANCE): Define.
	* config/c_io_libio.cc: Tweak.

	* src/Makefile.am (TOPLEVEL_INCLUDES): Add includedir.
	* src/Makefile.in: Regenerate.
	* Makefile.am (AM_MAKEFLAGS): Define includedir so that
	prefix/include files will be picked up.
	* Makefile.in: Regenerate.
	* math/Makefile.am (TOPLEVEL_INCLUDES): And here.
	* libio/Makefile.am (TOPLEVEL_INCLUDES): And here.
	
	* bits/std_ios.h: Include <bits/c++io.h> instead of libio.
	* bits/fpos.h: And here.	
	* bits/basic_file.h (get_fileno): Move definition from ...
	* src/basic_file.cc (std): To here.
	* bits/fpos.h: Move types for streamoff, streampos to..
	* bits/basic_file.h: Move __c_file_type and fpos typedefs to...
	* config/c_io_libio.h: ...here.
	(_GLIBCPP_[BOOLALPHA, HEX, DEC, FIXED, INTERNAL, LEFT, OCT, RIGHT,
	SCIENTIFIC, SHOWBASE, SHOWPOINT, SHOWPOS, SKIPWS, UNITBUF,
	UPPERCASE, ADJUSTFIELD, BASEFIELD, FLOATFIELD, BADBIT, EOFBIT,
	FAILBIT, GOODBIT, APP, ATE, BINARY, IN, OUT, TRUNC): New macros to
	abstract out bits in ios_base.
	* bits/ios_base.h: Re-macrofy.	
	* src/basic_file.cc : Rename, move to
	* config/c_io_libio.cc: Here. 
	* config/c_io_libio.h: New file. Include libio.
	* bits/c++config.h: Don't define _GLIBCPP_USE_LIBIO.
	* configure.in (blddir): Add enabling bits for GLIBCPP_ENABLE_CSTDIO.
	* configure: Regenerate.
	* src/Makefile.am (sources): Take out basic_file.cc and add c++io.cc.
	(generated_headers): Add c++io.h
	* acinclude.m4 (GLIBCPP_ENABLE_CSTDIO): New function to select
	underlying "C" io library.
	* acinclude.m4 (GLIBCPP_CHECK_LIBIO): Roll functionality into
	GLIBCPP_ENABLE_CSTDIO.
	
	* configure.in: Add configure bits for cross compiling non-newlib
	targets. .
	GLIBCPP_CHECK_COMPILER_VERSION: Take out this test for this
	target, as we assume g++ support is not the limiting factor.
	GLIBCPP_CHECK_LIBIO: Same, know we don't need libio.  
	* configure: Regenerate.
	
2000-02-22  Benjamin Kosnik  <bkoz@cygnus.com>

	* Makefile.am (INTERFACE): Define.
	* Makefile.in: Regenerate.
	* libio/ChangeLog: Add entry.

2000-02-21  Benjamin Kosnik  <bkoz@cygnus.com>

	* docs/install.html: Update install directions.

	* docs/status.html: Fix sidebar to be consistent.
	* docs/thanks.html: Same.
	* docs/links.html: Same.
	* docs/mail.html: Same.
	* docs/download.html: Same.

	* testsuite/27_io/filebuf.cc: Change BUFSIZ to buffer_size, and
	kill the macro BUFSIZ. I think the solaris fails lie elsewhere
	however, in the ctype_char_members.cc fail (for instance.)
	* testsuite/17_intro/headers.cc: Remove extraneous fails for hosts
	that do not have wchar_t enabled.
	* testsuite/27_io/ostream_inserter_arith.cc (struct _TestCase):
	Same here.
	* testsuite/27_io/iostream_objects.cc: And here.

	* libio/gen-params (CONFIG_NM): Specifically add in nm as the
	default CONFIG_NM.
	
2000-02-18  Benjamin Kosnik  <bkoz@haight.constant.com>
            Tom Tromey  <tromey@cygnus.com>

	* configure.in: Manually add MULTISUBDIR.
	* configure: Regenerate.
	* src/Makefile.am (MULTISUBDIR): Add the lesser evil of Tom's two
	"Eww" hacks to get multilib installs working correctly.
	($(headers): Test for MULTISUBDIR before installing.
	* Makefile.am (AM_MAKEFLAGS): Don't define MULTISUBDIR, instead
	have configure hack it in.
	* Makefile.in: Regenerate.
	* acinclude.m4 (GLIBCPP_CXXFLAGS): Tweak wording. 
	Add enabling bits for native Cygwin ctypes, and other newlib-based
	Oses.
	
2000-02-17  Benjamin Kosnik  <bkoz@decepticon.cygnus.com>

	* mkc++config (OUT_H): Remove EOF in cygwin.
	* acinclude.m4 (LIBS): Tweaks to allow cygwin to configure.

        Tom Tromey  <tromey@cygnus.com>
	* src/Makefile.am: Tweaks for installing multilibs.

2000-02-17  Benjamin Kosnik  <bkoz@cygnus.com>

	* src/Makefile.am: 
	(toolexeclib_LTLIBRARIES): Use this instead of lib_LTLIBRARIES.
	Add USE_LIBDIR bits here, not...
	* src/Makefile.in: Regenerate.
	* Makefile.am: ...here.
	* Makefile.in: Regenerate.
	
2000-02-17  Benjamin Kosnik  <bkoz@gnu.org>

	* acinclude.m4 (LIBS): Fix typos.
	* configure.in: _GLIBCPP_BUGGY_FLOAT_COMPLEX,
	_GLIBCPP_BUGGY_COMPLEX for crosses.
	* src/Makefile.am (std_headers): Add libio.h as install include,
	as with _G_config.h
	* src/Makefile.in: Regenerate.

	* mkcheck.in: Add bits to set CXX to cross compiler.

	* src/complex_io.cc: Tweak.
	* configure.in: _GLIBCPP_BUGGY_COMPLEX for crosses.
	* configure: Regenerate.
	
	* config/newlib/ctype.cc: Tweaks.
	* config/newlib/bits/ctype_base.h (ctype_base): Set mask to char,
	not const char.
	* src/complex_io.cc (operator>>(istream, complex): Define out if
	BUGGY_COMPLEX.

2000-02-16  Benjamin Kosnik  <bkoz@cygnus.com>

	* config/newlib/bits/ctype_base.h: Correct _S_table.

	Reconfigure ctype support for "C" libraries that don't use arrays.
	* testsuite/22_locale/ctype_char_members.cc: New file. Test for
	basic ctype<char> functionality.
	* src/locale.cc: Move host-specific ctype functions that are not
	inlines to config/*/ctype.cc files.
	(ctype<char>::do_tolower): For instance.
	(ctype<char>::do_toupper): For instance.
	(ctype<wchar_t>::do_tolower): For instance.
	(ctype<wchar_t>::do_toupper): For instance.
	* config/gnu-linux/ctype.cc: Modify.
	* config/default/ctype.cc: Modify.
	* config/newlib/ctype.cc: Modify.
	* config/solaris/solaris2.6/ctype.cc: Modify.
	* config/solaris/solaris2.7/ctype.cc: Modify.

	* bits/locale_facets.h (ctype<char>::is): Mark inline, move
	out-of-line.
	(ctype<char>::scan_is): Here too.
	(ctype<char>::scan_not): Here too.
	Move out of line defs to config/*/bits/ctype_specializations.h.
	* config/gnu-linux/bits/ctype_specializations.h: ...here. New file.
	* config/default/bits/ctype_specializations.h: ...here. New file.
	* config/newlib/bits/ctype_specializations.h: ...here. New file.
	* config/solaris/solaris2.6/bits/ctype_specializations.h: New file.
	* config/solaris/solaris2.7/bits/ctype_specializations.h: New file.
	* src/Makefile.am (headers): Add ctype_specializations.h.
	* src/Makefile.in: Regenerate.
	
	Aaron Weiss <weiss@clearway.com> 
	* Makefile.am (AM_MAKEFLAGS): Add NM_FOR_BUILD, NM_FOR_TARGET, and
	CONFIG_NM for Solaris builds.
	* Makefile.in: Regenerate.
	
	* src/locale.cc: Tweak formatting.

2000-02-15  Benjamin Kosnik  <bkoz@cygnus.com>

	Jim Parsons  <parsons@clearway.com> 
	* testsuite/27_io/istream_unformatted.cc (test06): Add test.
	* bits/istream.tcc (read): Set failbit if !good(). Don't increment
	gcount if eof.
	(readsome): Same.

	Michel Decima  <michel.decima@cnet.francetelecom.fr>
	* testsuite/27_io/streambuf.cc: Add test.
	* bits/streambuf.tcc (xsgetn): Don't test for valid mode.
	(xsputn): Same.
	
	* src/Makefile.am (AM_CXXFLAGS): Pass down AC_CXXFLAGS,
	OPTIMIZE_CXXFLAGS, etc. So --enable-debug and --enable-namespaces
	will work correctly, for instance.
	* src/Makefile.in: Regenerate.

	* bits/locale_facets.h: Fix merge error.
	(num_put::put(unsigned long long): And here.
	* mknumeric_limits (trait_name): Same.
	
2000-02-15  Chip Salzenberg  <chip@valinux.com>

        Support 'configure --enable-long-long'.
        * bits/c++config.h (_GLIBCPP_USE_LONG_LONG): Remove.
        * stl/bits/stl_config.h (__STL_LONG_LONG): Remove '#if 0'.
        * acconfig.h (_GLIBCPP_USE_LONG_LONG): Add.  Default to undef.
        * acinclude.m4 (GLIBCPP_ENABLE_LONG_LONG): Define flag macro.
        * configure.in (GLIBCPP_ENABLE_LONG_LONG): Use it.

	* aclocal.m4: Regenerate.
        * config.h.in: Regenerate.
        * configure: Regenerate.

2000-02-15  Chip Salzenberg  <chip@valinux.com>

        Improve (complete?) 'long long' support.
        * mknumeric_limits: Call $CXX with $CPPFLAGS.  Define statics
        for {,unsigned} long long if the limits header declares them.
        * src/gen-num-limits.cc: Include <bits/c++config.h> early.
        (__USE_GNU, _GNU_SOURCE): Define if _GLIBC_USE_LONG_LONG.
        (long long, unsigned long long): Gen limits if _GLIBC_USE_LONG_LONG.
        * bits/locale_facets.h (num_get<>::get(..., long long &)): Define.
        (num_put<>::put(..., long long)): Likewise.
        (num_put<>::put(..., unsigned long long)): Likewise.
        * bits/locale_facets.tcc (_S_format): Rename from _S_format_long.
        Templatize last parameter to support 'long long'.
        (num_put<>::put(...)): Call _S_format with new name.
        (num_put<>::put(..., long long)): Define.
        (num_put<>::put(..., unsigned long long)): Likewise.
        * src/locale-inst.cc (_S_format): Instantiate under new name.

2000-02-15  Petter Urkedal  <petter@matfys.lth.se>

        * src/complex.cc (operator<<, operator>>): Moved from here...
        * src/complex_io.cc: ...to new file.
        (operator>>): Stub replaced by the real thing.
        * src/Makefile.am (sources): Inserted complex_io.cc.
	* src/Makefile.in: Regenerate.
        * testsuite/26_numerics/complex_inserters_extractors.cc: Check it.

2000-02-14  Benjamin Kosnik  <bkoz@gnu.org>

	Add in ctype information for newlib "C" libraries.
	* config/newlib: New directory
 	* config/newlib/bits/ctype_base.h: New file.
	* config/newlib/ctype.cc: New file.

	* ctype/config/linux/*: Rename, move to...
	* ctype/config/gnu-linux/*: Here.
	
	Finish off multilib work.
	* configure.in: Don't set CXX if not Canadian cross.
	* configure: Regenerate.
	* acinclude.m4 (GLIBCPP_CHECK_LIBIO): Tweak messages.
	* aclocal.m4: Regenerate.
	* config.h.in: Regenerate.

	* install-sh: Remove, as AC_CONFIG_AUX_DIR(..) picks this out of
	the top-level gcc directory now.
	* mkinstalldirs: Remove.
	* missing: Remove
	* ltconfig: Remove.
	* ltmain.sh: Remove.
	* config.guess: Remove.
	* config.sub: Remove.
	
2000-02-13  Benjamin Kosnik  <bkoz@cygnus.com>

	* configure.in (glibcpp_basedir): Add glibcpp_basedir.
	* Makefile.am: Move mutlilib stuff to src/Makefile.am. 
	* Makefile.in: Regenerate.
	* src/Makefile.am: Add multilib bits.
	* src/Makefile.in: Regenerate.
	
2000-02-12  Benjamin Kosnik  <bkoz@cygnus.com>

	* configure.in: Clean, add some multilib support.
	* configure: Regenerate.
	* configure.host: New file.

	* acinclude.m4: GLIBCPP_CHECK_LIBIO. Take bits from configure.in and 
	roll a new function, checks for presence of libio.
	GLIBCPP_CHECK_COMPILER_VERSION: Same.
	GLIBCPP_CHECK_BUILTIN_MATH_SUPPORT: Same.
        GLIBCPP_CHECK_MATH_SUPPORT: Same.
	GLIBCPP_CHECK_WCHAR_T_SUPPORT: Same.
	GLIBCPP_CHECK_LIBIO: Same.
	GLIBCPP_CHECK_CTYPE: Same.
	* aclocal.m4: Regenerate.
	* config.h.in: Regenerate.	

	* Makefile.am: Tweaks.
	* Makefile.in: Regenerate.
	
2000-02-11  Benjamin Kosnik  <bkoz@cygnus.com>

	* configure.in: Make outputing the libio/Makefile
	conditional. Haha, yeah right. Anyway, we instead do this thing
	where if libio is found, then we build a null library, as there is
	no point in duplicating the found libio.
	* Makefile.am: Tweak.
	* Makefile: Regenerate.
	* libio/Makefile.am: Add _G_config.h stuff. Now cross compilers
	are happy happy happy.
	* libio/Makefile.am: Regenerate.
	* libio/gen-params: New file.
	* src/Makefile.am: Make libio.la non-conditional, as it is now a
	null library if it's not needed. At least we are being consistent,
	if not as elegant as we could be.
	* src/Makefile: Regenerate.
	
2000-02-10  Benjamin Kosnik  <bkoz@gnu.org>

	* Makefile.am (SUBDIRS): Add libio again.
	* Makefile.in: Regenerate.
	* configure.in (BUILD_LIBIO_INCLUDE): And here.
	(AC_OUTPUT): Generate libio/Makefile again.
	* configure: Regnerate.
	* src/Makefile.am (libstdc___la_LIBADD): Change path so that
	libio.la is referring back to the libio subdir again.
	(LIBIO_INCLUDES): And here.
	* src/Makefile.in: Regenerate.
	
2000-02-09  Benjamin Kosnik  <bkoz@decepticon.cygnus.com>

	* math/complex-stub.h: Missed one. Change __mycabs* to cabs*.

2000-02-09  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* bits/valarray_array.h (<bits/std_new.h>): #include.
	(__valarray_get_memory): New function.
	(__valarray_release_memory): Likewise.
	(__valarray_default_construct): New functions.
	(__valarray_fill_construct): New function.
	(__valarray_copy_construct): New funstions.
	(__valarray_destroy_elements): New function.

	* bits/valarray_array.tcc (__valarray_copy_construct): New
	functions. 

	* bits/std_valarray.h (valarray<>::valarray): Use
	__valarray_get_memory and __valarray_fill_construct,
	__valarray_copy_construct, __valarray_default_construct to
	properly construct valarrays.  
	(valarray<>::~valarray): Use __valarray_destroy_elements to
	destroy elements and __valarray_release_memory to return memory.
	(valarray<>::shift): Tweak. 
	(valarray<>::cshift): Likewise.
	(valarray<>::resize): Robustify.

2000-02-09  Benjamin Kosnik  <bkoz@cygnus.com>

	* mknumeric_limits (XCOMPILE): Add support for cross compiling.
	* bits/limits_generic.h: New file, defaults.
	* src/limits_generic.cc: New file, defaults.	
	* configure.in (LIBS): Run mknumeric_limits at configure time.
	* acconfig.h: Remove PACKAGE VERSION HAVE_COMPLEX
	HAVE_LC_MESSAGES, tidy, clean, etc.
	* src/Makefile.am (geberated_sources): Remove.

	* bits/fpos.h: Use _GLIBCPP_USE_LIBIO guards for libio typenames
	(_IO_off_t, _IO_ssize_t)

	* src/complex.cc: Use glibc's <complex.h> if
	possible. . . apparently this was not being done before. Include
	tweaks.
	(abs): Enable cabs if it's around, instead of mycabs.
	* src/complexf.cc (FCT): Add global scope to match complex.cc.
	* src/complexl.cc (FCT): Same.
	* math/Makefile.am (EXTRA_LONG_DOUBLE_yes): Change mycabsl to cabsl.
	(libmath_la_SOURCES): And here.
	* math/(mycabs.c, mycabsf.c, mycabsl.c): Move to. . .
	* math/(cabs.c, cabsf.c, cabsl.c): . . . Here.
	* math/complex-stub.h: Move c_log declarations into. . . 
	* math/mathconf.h: Here. This is because glibc's <complex.h>
	declares cclog, not c_log. The case of the dueling standards. . .
	* math/mathconf.h: Add _GLIBCPP_HAVE_* to macros.
	* math/Makefile.am: Change.
	* math/nan.c (nan): Change signature.
	* math/mathconf.h (NAN): Same.
	* math/complex-stub.h (nan): And here.
	
	* Makefile.am (rebuild-stamp): Remove libio and libio
	dependencies.  Plan to take out libio subdir and just merge with
	libio in top level gcc directory. Of course, this assumes there is
	a libio in the top level directory (ie ../src_dir). This will
	probably change the way this library is configured by default.
	* libio/*: Remove.

2000-02-09  Chip Salzenberg  <chip@valinux.com>

        * localefwd.h (locale): Make public: facet, id, category.
	
2000-02-09  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* testsuite/26_numerics/buggy_complex.cc: Fix Origin:.

	* acinclude.m4: Patch only once!

2000-02-09  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* testsuite/26_numerics/buggy_complex.cc: New file.

2000-02-05  Petter Urkedal  <petter@matfys.lth.se>

        * acinclude.m4: New GLIBCPP_CHECK_COMPLEX_SUPPORT macro. Based
	on the 1999-11-21 entries by Mumit Khan.
        * configure.in: Use.
        * acconfig.h: New _GLIBCPP_BUGGY_COMPLEX macro.
        * bits/std_complex.h: Use.
	
2000-02-04  Philip Martin <pm@corris.dircon.co.uk>

       * stl/bits/stl_algobase.h: Add traits based dispatch for
       __normal_iterator in the copy_backward()algorithm
       * stl/bits/stl_vector.h: Reduce use of __normal_iterator
       base() function.

2000-02-04  Mumit Khan  <khan@xraylith.wisc.edu>
	
	* src/gen-num-limits.cc (signal_handler): Work around signal
	handling problem on Cygwin. 
	Thanks to Chris Faylor <cgf@cygnus.com>.

2000-02-03  Benjamin Kosnik  <bkoz@cygnus.com>

	* configure.in: Add (preliminary) support for cross compiles and
	multilibs.
	Remove AC_C_BIGENDIAN tests. Why is this necessary? Cross
	compilation freaks on this.
	* configure: Regenerate.
	* src/Makefile.am: Add support for cross compiles.
	* src/Makefile: Regenerate.
	* Makefile.am: Add support for cross compiles.
	* Makefile.in: Regenerate.
	
2000-02-02  Benjamin Kosnik  <bkoz@cygnus.com>

	* configure.in (LIBS): Remove unused subdirs.	
	* configure: Regenerate.
	* Makefile.am (SUBDIRS): And here.
	* Makefile.in: Regenerate.
	* src/Makefile.am (sources): And here.
	* src/Makefile.in: Regenerate.
	* string/*: Remove.
	* amm1/*: Remove.
	* generic/*: Remove.
	* glibc/*: Remove.
	* mkcheck.in (INC_PATH): Include $BUILD_DIR before any source dirs.

	* libtool: Update to libtool-1.3.4.
	* ltconfig: Same
	* ltmain.sh: Same
	* config.sub: Same.
	* config.guess: Same.

2000-02-02  Benjamin Kosnik  <bkoz@cygnus.com>
	    Alexandre Petit-Bianco  <apbianco@cygnus.com>    

	* mkc++config: New file. Put autoconf macros into _GLIBCPP_
	namespace instead of polluting global namespace with duplicate
	autoconf output.
	* configure.in (AC_OUTPUT): Don't need to generate bits/config.h
	here anymore. . .
	(AC_OUTPUT_COMMANDS): Make it here.
	* configure: Regenerate.
	* bits/c++config.h.in (_CPP_CPPCONFIG): Change. Tweak. Remove
	endif, as now we will add it manually.
	Move to this file. . .
	* bits/c++config.h: New file. Same as old c++config.h.in except
	the ending macro guard is now appended manually.

	* bits/locale_facets.tcc: Change HAVE_* macros to _GLIBCPP_HAVE_*.
	* bits/std_cmath.h: Same here.
	* bits/std_cwchar.h: And here.
	* src/locale.cc: And here.
	* src/complexl.cc: And here.
	* math/mathconf.h: Change to include "config.h" instead of
	bits/c++config.h.
	
2000-02-01  Benjamin Kosnik  <bkoz@gnu.org>

	* configure.in: Add support for threads. Try a model closer to
	libjava, as hopefully if the thread bits are added carefully
	enough, the source code will not have gross hacks. Besides, the
	libstdc++-v2 model could be easily emulated without the necessity
	of linking files in (as currently done)--all that needs to be done
	is AC_DEFINE(-D_PTHREADS) etc. However, let's try something
	new. . . and see if we arrive at a more elegant solution.
	* configure: Regenerated.
	* config/threads-no.h: New file. 
	* config/threads-posix.h: New file. 
	* src/Makefile.am (myinstallheaders): Install c++threads.h.
	* src/Makefile.in: Regenerated.
	
2000-01-31  Benjamin Kosnik  <bkoz@gnu.org>

	META-QUESTION: Can we just make a "header.html" file and a
	"footer.html" and just include them in all the doc sub-pages. The
	duplication of the header info is kind of gross, and weak
	considering that if you change order or layout then all this stuff
	has to be changed in all the sub-files.

	* docs/17_intro/contribute.html: Take out duplicate file info.
	* README: Should just contain a link to the docs/index.html
	page. Duplicate information removed.
	* docs/faq/index.html: Remove indexes into HOWTOS.
	* docs/17_intro/howto.html: Make intro and docs part more
	centralized. Move intro stuff to documentation.html.
	* docs/how.html: Tweak. Does this file need to exist? What calls it?
	* docs/README.html: Move documentation files to
	documentation.html. Should this file be renamed
	"config_and_install.html" as that is what is apparently covered
	here. . .
	* docs/install.html: Yes. New file, moved and renamed README.html.
	* docs/documentation.html: New file. This is the index file for
	the documentation.
	* docs/index.html: Edit sidebar order. Insert new link to new
	documentation spine, documentation.html.

2000-01-31  Scott Snyder  <snyder@fnal.gov>

        * bits/istream.tcc (operator>>(istream&, string&)): Set failbit if 
        we don't extract any characters.
	* testsuite/21_strings/inserters_extractors.cc (main): New tests.
	
2000-01-31  Anders Widell  <awl@hem.passagen.se>

        * stl/bits/std_bitset.h (_M_do_left_shift): Handle case when shift
        step is a multiple of the word size.
        (_M_do_right_shift): Same.
	* testsuite/23_containers/bitset_shift.cc: New file.
	
2000-01-31  Nathan Myers  <ncm@zembu.com>
	
	* README (Documentation): Add path info, fix typos.
	
2000-01-26  Benjamin Kosnik  <bkoz@redhat.com>
	
	* bits/locale_facets.tcc (num_get::_M_extract): Add the freaking
	crazy group checking for numpunct, for real this time. At some
	point, the local variable __grp should probably get replaced a
	char array, or something a bit more lightweight.
	(num_get::do_get(bool)): Simplify. Don't set bool reference to
	parsed value unless err isn't failbit.
	(num_get::do_get(*)): Same, make consistent.

        Nathan Myers  <ncm@zembu.com>
	Jim Parsons  <parsons@clearway.com>
	* testsuite/27_io/istream_extractor_arith.cc (test08): Add
	more grouping tests, tweak, scold, wine.
	
2000-01-24  Benjamin Kosnik  <bkoz@gnu.org>

	* testsuite/27_io/istream_extractor_arith.cc (test07): Add
	grouping tests.
	* bits/locale_facets.tcc (num_get::_M_extract): Change to fix
	grouping bugs. Only allow thousands_sep if _M_use_groupings is
	true.

        via <llewelly@198.dsl.xmission.com>
	* stl/bits/stl_vector.h (vector::_M_range_check): Throw
	out_of_range instead of range_error.

2000-01-17  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* bits/std_iomanip.h (setw): Fix typo.

2000-01-14  Benjamin Kosnik  <bkoz@gnu.org>

	* testsuite/27_io/istream_extractor_arith.cc: Fix.
	* bits/locale_facets.tcc (do_get(...void)): Change to strtoul.
	* testsuite/27_io/istream_unformatted.cc (test04): Tweak.
	
2000-01-14  Phil Edwards  <pme@sourceware.cygnus.com>

	* docs/README.html:  Reformat, more installation instructions.
	* docs/gccrebuild.html:  New file.
	* docs/faq/index.html:  Update for new testsuite output filenames.
	* docs/faq/index.txt:  Regenerate.

2000-01-14  Phil Edwards  <pme@sourceware.cygnus.com>

	* Makefile.am (rebuild-stamp, all-local):  New targets.
	* Makefile.in:  Regenerated.
	* acinclude.m4:  New macro, GLIBCPP_ENABLE_RELIBGCC.
	* aclocal.m4:  Regenerated.
	* configure.in:  Call new macro.  Also do some sanity checks
	  for combinations of --enable's that may not make sense.
	* configure:  Regenerated.

2000-01-13  Benjamin Kosnik  <bkoz@cygnus.com>

	* testsuite/27_io/istream_extractor_arith.cc: Add checks for void*.
	* bits/locale_facets.tcc (do_get::(...void)): Set fmtflags
	correctly for hex-formatted input.

	* testsuite/27_io/istream_manip.cc (test01): Fix, as per setting
	eofbit instead of eofbit | failbit.
	* testsuite/27_io/istream_unformatted.cc (test04): Fix, as
	ifstreams now are opened or'd with ios_base::in (as is correct).
	* bits/fstream.tcc (filebuf::seekoff): Simplify.
	* testsuite/27_io/ios_base_members_static.cc (test01): Fix thinko.

2000-01-12  Benjamin Kosnik  <bkoz@gnu.org>

	* bits/std_fstream.h: Add ios_base as a friend to basic_filebuf.
	* bits/basic_file.h (basic_file::filepos_cur): Remove incorrect
	(misleading) code.
	(__basic_file::filepos_valid): Same.
	(__basic_file::filepos_beg): Same.
	(__baseic_file::get_fileno): New function.
	* bits/ios_base.h (ios_base::sync_with_stdio): Implement, including
	feedback from LWG 49.
	* src/ios.cc: Move definition here.
	* testsuite/27_io/ios_base_members_static.cc (test01): Add tests.
	
	* bits/std_sstream.h (_M_really_sync): Simplify argument list. Set
	output part of internal buffer based on string size, so that
	_M_out_end is set consistently with filebufs. Correct comments.
	* bits/sstream.tcc (stringbuf::overflow): Update here too.
	* testsuite/27_io/stringbuf.cc: Changes.
	
2000-01-11  Benjamin Kosnik  <bkoz@gnu.org>

	* bits/sstream.tcc (seekoff): Set based on end of written buffer,
	not buffer size.
	* testsuite/27_io/stringbuf.cc: Add tests for seekoff(end).

	* bits/std_fstream.h (ifstream::open): Add ios_base::in to openmode.
	(ofstream::open): Add ios_base::out to openmode.

	* bits/locale_facets.tcc (_M_extract): Have consistency between
	istream::sentry and extractors, where failbit | eofbit is
	set. Don't change this, but instead change. . (do some formatting
	tweaks.)  
	* bits/istream.tcc (istream::sentry): Only set eofbit.
	
2000-01-10  Benjamin Kosnik  <bkoz@gnu.org>

	* testsuite/27_io/istringstream_members.cc: New file.

2000-01-09  Benjamin Kosnik  <bkoz@gnu.org>

	* bits/istream.tcc (istream::sentry): Flush.

	* configure.in (AC_OUTPUT_COMMANDS): Simplify.
	* configure: Regenerate.
	* src/Makefile.am (generated_headers): Remove bits/c++config.h so
	that make clean will not delete it.
	* src/Makefile: Regenerate.
	
2000-01-07  Phil Edwards  <pme@sourceware.cygnus.com>

	* mkcheck.in:  Use host-specific invocation of size(1);
	  GNU binutils isn't necessarily there (more's the pity).

2000-01-06  Benjamin Kosnik  <bkoz@cygnus.com>

	* configure.in (LIBS): Better tests for solaris2.6.
	* configure: Regenerate.

         <vakatov@ncbi.nlm.nih.gov>
	* bits/std_sstream.h: As per libstdc++20.

2000-01-06  Benjamin Kosnik  <bkoz@gnu.org>

	Break out configuration on solaris.
	* configure.in (ctype_solaris): Add in bits for solaris2.6 and 2.7.
	* config/solaris/ctype.cc: Delete and move to proper version.
	* config/solaris/bits: Same.
	* config/solaris/solaris2.5: Add this directory, with subdir bits
	and file ctype.cc. Probably doesn't work.
	* config/solaris/solaris2.6: Same.
	* config/solaris/solaris2.7: Same, as per specs via Phil Edwards.
	
	* Makefile.am: Change paths to mkcheck.
	* Makefile: Regenerate.
	* configure.in (AC_OUTPUT_COMMANDS): Build mkcheck here.
	* configure: Regenerate.
	* src/Makefile.am (generated_headers): Add bits/c++config.h.

	* mkcheck: Now autogenerated by configure and renamed. . .
	* mkcheck.in (INC_PATH): Add glue for ctype_include_dir.	
	Have longer-style dates.
        Raja R Harinath  <harinath@cs.umn.edu>
	* mkcheck: Change path to #!/usr/clocal/bin/bash.

	* docs/README.html: Correct links, maybe. FAQ, install notes, and
	general documentation need to be organized around each other, not
	fight against each other. . .

2000-01-04  Phil Edwards  <pme@sourceware.cygnus.com>
            Nicolai Josuttis <nicolai.josuttis@braunschweig.netsurf.de>

	* README:  Add a note referring to README.html.
	* docs/README.html:  New file from Nicolai.
	* docs/faq/index.html:  Move "how to get a copy" to here.
	* docs/gentop/footchunk.html:  Update.
	* docs/gentop/headchunk.html:  New links according to
	  bkoz's idea for "How to..." stuff.
	* docs/gentop/thanks:  Actually put people here.
	* docs/download.html:  Regenerated.
	* docs/index.html, docs/links.html, docs/mail.html,
	  docs/status.html, docs/thanks.html, docs/faq/index.txt:  Ditto.
	* docs/how.html:  Ditto.  (This file should go away soon.)

1999-12-26  Phil Edwards  <pme@sourceware.cygnus.com>

	* docs/gentop/status:  Add snapshot version column, update
	  for Solaris 7.
	* docs/status.html:  Regenerated.

1999-12-26  Phil Edwards  <pme@sourceware.cygnus.com>

	* docs/faq/index.html:  Turn README and RELEASE-NOTES into links
          from installation FAQ, and specify location of text files.
	* docs/faq/index.txt:  Regenerated.

1999-12-23  Phil Edwards  <pme@sourceware.cygnus.com>

	* docs/gentop/download:  Add links to prebuilds for Cygwin/Mingw32.
	* docs/download.html:  Regenerated.

1999-12-22  Phil Edwards  <pme@sourceware.cygnus.com>

	* docs/faq/index.html:  Update 'what works' for .7 snapshot,
	  clean up various links.
	* docs/faq/index.txt:  Regenerated.
	* docs/gentop/gentop:  Smarter regeneration script.
	* docs/gentop/{head,foot}chunk.html:  Updated with new
	  contributors link and mod date.
	* docs/gentop/index:  Snapshot relase date.
	* docs/gentop/thanks:  New contributors page added.
	* docs/{download,how,index,links,mail,status,thanks}.html:
	  Regenerated from gentop; thanks.html created.

1999-12-21  Benjamin Kosnik  <bkoz@decepticon.cygnus.com>

	* bits/c++config.h.in (__GLIBCPP__): 19991221.
	* docs/index.html: Add correct information.	

	* config/irix: New directory.
	* config/irix/ctype.cc: Add irix-6.5 info. Not tested.
	* config/irix/bits/ctype_base.h: And here.

	* config/aix: New directory.
	* config/aix/ctype.cc: Add aix-4.2 info. Not tested.
	* config/aix/bits/ctype_base.h: And here.
	
1999-12-21  Philip Martin  <pm@corris.dircon.co.uk>

        * bits/basic_string.h: Add special case handling for integral
	"iterators".
        * bits/std_string.h: include type_traits.h
	* testsuite/21_strings/ctor_copy_dtor.cc: Tweak.
	
1999-12-21  Benjamin Kosnik  <bkoz@decepticon.cygnus.com>

	* bits/fstream.tcc (seekoff): Output buffer based on _M_*_in and
	_M_*_end now.
	* bits/std_fstream.h (sync): And here.
	* testsuite/27_io/filebuf.cc: Revisions.
	* testsuite/27_io/filebuf-2.tst: Correct, remove weird character
	at the end of the file.
	* testsuite/27_io/filebuf-3.tst: Correct.
	
1999-12-21  Phil Edwards  <pedwards@jaj.com>

	* docs/gentop/index:  Hold off on .7 announcement date.
	* docs/index.html:  Regenerate.

1999-12-21  Benjamin Kosnik  <bkoz@kcygnus.com>

	* bits/std_fstream.h (sync): Move _M_file->sync() to
	_M_really_overflow().
	* bits/fstream.tcc (seekoff): Call sync, not _M_really_overflow so
	as to get the _M_file->sync action, which forces the external
	buffer to update itself.
	(underflow): Same here.

1999-12-21  Phil Edwards  <pedwards@jaj.com>

	* bits/c++config.h.in:  Uncomment _GLIBCPP_USE_NAMESPACES and move...
	* acconfig.h:  ...to here.
	* config.h.in:  Regenerate from aclocal.
	* acinclude.m4:  Add GLIBCPP_ENABLE_DEBUG, GLIBCPP_ENABLE_NAMESPACES.
	* aclocal.m4:  Regenerate from acinclude.
	* configure.in:  Use ENABLE macros here.
	* configure:  Regenerate.
	* src/Makefile.am:  Use results from ENABLE macros.
	* src/Makefile.in:  Regenerate.

1999-12-20  Benjamin Kosnik  <bkoz@cygnus.com>
	
	* mkcheck (SRC_DIR): Now have to include config/* dir if "make
	check" and not "make check-install." Temporarily hack in linux
	support.
	
	* bits/std_streambuf.h: Tweaks.
	* bits/streambuf.tcc (xsgetn): Tweaks.
	* bits/std_fstream.h (sync): Make _M_really_overflow consistent.
	* bits/fstream.tcc (filebuf::underflow): Simplify.
	* bits/std_sstream.h (streambuf::underflow): Minor change to make
	checks for read position precisely implement the standard.
	* bits/basic_file.h (filepos_cur): Base this on _offset.
	* testsuite/21_strings/inserters_extractors.cc (test05): Tweaks.
	* testsuite/27_io/filebuf.cc: Tweak.

1999-12-20  Benjamin Kosnik  <bkoz@cygnus.com>

	* docs/17_intro/RELEASE-NOTES: Fix typos.

	* bits/locale_facets.h (ctype): Modify, use __to_type to abstract
	out platform-specific bits.
	* config/default/ctype.cc: And here.
	* config/defaults/bits/ctype_base.h: And here.
	* config/linux/ctype.cc: And here.
	* config/linux/bits/ctype_base.h (ctype_base): And here.
	* config/solaris/bits/ctype_base.h (ctype_base): Add
	__to_type. Comment, as it looks like this is for solaris2.6 and
	above: solaris2.5.1 doesn't seem to have the same definitions.
	* config/solaris/ctype.cc: And here.

1999-12-19  Benjamin Kosnik  <bkoz@cygnus.com>
            Ulrich Drepper  <drepper@cygnus.com>
	
	* acconfig.h: Remove _GLIBCPP_USE_CTYPE_ISBIT.

	* src/locale.cc: Take out platform-specific hacks.
	* config/linux/ctype.cc: Put here.
	* config/solaris/ctype.cc: Put here.
	* config/default/ctype.cc: Put here.	

	* bits/locale_facets.h: Take out platform-specific hacks.
	* config/linux/bits/ctype_base.h: Put here.
	* config/solaris/bits/ctype_base.h: Put here.
	* config/default/bits/ctype_base.h: Put here.	

	* configure.in: Bump version.
	Add tests for top-level config directory.
	* configure: Regenerated.
	* src/Makefile.am (INCLUDES): Add platform-specific dir.
	* src/Makefile: Regenerate.
	
1999-12-19  Benjamin Kosnik  <bkoz@cygnus.com>
	    Ulrich Drepper  <drepper@cygnus.com>

        * bits/locale_facets.h: Hack in solaris support.
        * src/locale.cc: Here too.

1999-12-18  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

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

1999-12-17  Benjamin Kosnik  <bkoz@milou.cygnus.com>

	* bits/c++config.h.in (__GLIBCPP__): Bump.
	* docs/17_intro/RELEASE-NOTES: Update, Gaby please add your stuff.
	* docs/17_intro/TODO: Update.	

	* bits/locale_facets.h: Touch this too.
	* bits/localefwd.h: Add typedefs for loooooong vector names.
	* bits/locale_facets.tcc (locale::operator()): Need parens.
	(has_facet): Simplify.
	* src/locale-inst.cc: Add instantiations.
	* src/locale.cc: Tweaks.
	
	* bits/std_streambuf.h: Move indeterminates into. . 
	* bits/std_fstream.h: Here.	
	* bits/fstream.tcc (underflow): Rewind just for ios_base::out
	streams.
	* bits/sstream.tcc: Very minor formatting tweaks.
	* bits/std_streambuf.h (_M_set_determinate): If exclusively an
	input buffer, set _M_buf to offset.
	* bits/istream.tcc (std): Tweaks.
	* testsuite/27_io/istream_unformatted.cc (test05): More tweaks,
	include fstream.
	* testsuite/27_io/filebuf.cc: Tweaks.
	
1999-12-17  Phil Edwards  <pedwards@jaj.com>

	* configure.in:  Add OPTLEVEL, -O2 for gcc 2.96+, nothing otherwise.
	* configure:  Regenerate.
	* src/Makefile.am:  Use OPTLEVEL in CXXFLAGS.
	* src/Makefile.in:  Regenerate.  Also picks up OTHER_CXXFLAGS rename
	  to OPTIMIZE_CXXFLAGS from a previous revision (1.96) to Makefile.am.

1999-12-17  Phil Edwards  <pedwards@jaj.com>

	* docs/21_strings/stringtok_std_h.txt:  New algorithm
	  suggested by Chris King.
	* docs/21_strings/howto.html:  Link to new version.

1999-12-16  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* bits/valarray_array.h (__valarray_sum): Use operator+=, not
	operator+.
	* docs/17_intro/TODO: Update.

1999-12-15  Phil Edwards  <pme@sourceware.cygnus.com>

	* docs/gentop/footchunk.html:  Updated, fixed CRLFs.
	* docs/gentop/gentop:  Ditto.
	* docs/gentop/headchunk.html:  Ditto.
	* docs/*.html:  Regenerated from gentop.
	* docs/*/howto.html:  Updated as test.
	* docs/faq/index.html:  Updated, fixed CRLFs.
	* docs/faq/index.txt:  Regenerated.

1999-12-15  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* mknumeric_limits (OUT_C): restart only if $OUT_C is present.

	* bits/std_complex.h 
	(complex<float>::complex(const complex<double>&),
 	complex<float>::complex(const complex<long double>&)): Define.

	* docs/17_intro/TODO: Update.

1999-12-13  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/istream.tcc (seekg): Don't set _M_gcount.
	(tellg): Same.
	* bits/fstream.tcc (filebuf::underflow): Re-sync
	external byte sequence's input buffer only. . .
	* testsuite/27_io/istream_unformatted.cc (test04): New tests for
	tellg, seekg and filebufs.
	(test05): Same for stringbufs.
	* testsuite/27_io/istream_unformatted-2.tst: New file.
	* testsuite/27_io/istream_unformatted-1.tst: New file.
	* testsuite/27_io/istream_unformatted-1.txt: New file.	
	* testsuite/21_strings/inserters_extractors.cc (test05): Change
	output file.

1999-12-13  Phil Edwards  <pedwards@jaj.com>

        * docs/gentop/*:  New directory, containing bits for the homepages.
        * docs/*.html:  Regenerated from gentop.
        * docs/*/*.html:  Entries added and regenerated.

1999-12-13  Benjamin Kosnik  <bkoz@gnu.org>

	Efforts to get -O2 to work with -Winline -Werrors.
	* bits/valarray_array.h (__valarray_fill(_Tp*, size_t, const
	_Tp&): Remove inline declaration, as cannot be inlined and
	-Winline -Werror complains. An interesting question is why this
	cannot be inlined, as I can see no real reason to disqualify it.
	(__valarray_product(const _Tp*, const _Tp*)): Same here.
	* bits/std_valarray.h (valarray::operator[](size_t)): Same here.
	
	* docs/17_intro/TODO: Update.

1999-12-12  Benjamin Kosnik  <bkoz@gnu.org>

	* bits/std_fstream.h (seekpos): Tweaks, fixes. Move definition to
	fstream.tcc.
	* bits/basic_file.h (filepos_cur()): Make pointers themselves be
	the resultant position.
	* bits/fstream.tcc (seekoff): Explicitly set return value to
	resultant external byte sequence position, not value returned from
	_M_file->seekoff. Need to make 
	(seekpos): New definition.
	
	* bits/istream.tcc (seekg): As per Library Issues List 136, set to
	just istream. Necessary, or else tellg will give an invalid stream
	position, but seekg will return a valid stream position, which is
	not groovy: see testcase addition.
	* bits/ostream.tcc (seekp): Same.
	
	* bits/streambuf.tcc (_S_copy_streambufs): Simplify.
	* bits/sstream.tcc: Tweaks.
	* bits/locale_facets.tcc: Tweaks.
	(num_put::do_put(iter_type, ios_base, char_type, const void*)):
	Re-write in a way that is easier for the inliner to work with.
	* bits/ios_base.h: Use explicit static_cast<int>(...) notation.

1999-12-10  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/locale_facets.tcc: Tweaks.
	* bits/locale_facets.h (use_facet): Can't inline, remove inline
	from declaration.
	* bits/localefwd.h: And here.
	* bits/std_ostream.h: Tweaks, sentry ctor can't be inlined.
	* bits/ostream.tcc: Put here.
	
	Frank Ch. Eigler  <fche@cygnus.com> 
	* src/Makefile.am: Adjust CXXFLAGS, add AM_CXXFLAGS. 

1999-12-08  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/sstream.tcc (stringbuf::seekoff): Long overdue revamp. Make
	in and out buffers update independently.

	* bits/basic_ios.h: Minor formatting.
	* bits/fstream.tcc (std): Fix indentation.

1999-12-08  Chip Salzenberg  <chip@valinux.com>

        * bits/char_traits.h (char_traits<>): Move not_eof() functions
        after corresponding eof() functions, so they're easier for the
        compiler to inline.
        * bits/locale_facets.h (money_base::__default_pattern): Move
        static variable out of inline functions.
        (_Moneypunct<>::do_{pos,neg}_format): Use it.
        * src/locale-inst.cc (money_base::__default_pattern): Define it.

1999-12-08  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/std_fstream.h (filebuf::open): Tweak.
	* bits/fstream.tcc (filebuf::seekoff): Simplify, fix.
	* bits/std_ios.h: Minor tweaks for headers.

1999-12-06  Benjamin Kosnik  <bkoz@gnu.org>

	* bits/c++config.h.in (_GLIBCPP_FULLY_COMPLIANT_HEADERS): New macro.
	* src/string-inst.cc: Add guards . . .
	* src/misc-inst.cc: And here.
	* bits/std_sstream.h: And here.
	* bits/std_fstream.h: And here.
	* bits/std_streambuf.h: And here.
	* bits/std_istream.h: And here.
	* bits/std_ostream.h: And here.

1999-12-06  Scott Snyder  <snyder@fnal.gov>

        * bits/istream.tcc (basic_istream::read): Try to handle __n == 0
        case.
	(basic_istream::readsome): And here as well.
        * testsuite/27_io/istream_unformatted.cc: Test a zero-length
        read().

1999-12-06  Mumit Khan  <khan@xraylith.wisc.edu>

        * bits/istream.tcc (basic_istream::ignore): streamsize is not 
        necessarily an `int'.

1999-12-06  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* mknumeric_limits: Don't use $CXXFLAGS when building
	gen-num-limits. It's definitely wrong to use it since $CXXFLAGS
	generally instructs the compiler not to emit template
	instantiations and we end up with undefined symbols. Sigh.

1999-12-05  Benjamin Kosnik  <bkoz@gnu.org>

	* bits/locale_facets.tcc: Tweak.
	(_S_format_long): Adjust showpos formatting for hex and oct.
	* bits/std_ostream.h (operator<<(short)): Correctly deal with hex
	and oct by formatting as unsigned.
	(operator<<(int)): Same here.
	* bits/ostream.tcc (operator<<(long)): Same.
	(operator<<(long long)): Same.
	(_S_pad_char): Actually treat ios_base::internal as something
	worth doing correctly. Remove const designation on ios argument.
	* testsuite/27_io/ios_manip_basefield.cc (test02): Add tests.
	* testsuite/27_io/ostream_inserter_arith.cc (test03): Add tests.
	
1999-12-04  Benjamin Kosnik  <bkoz@gnu.org>

	* bits/std_sstream.h (streambuf::underflow): Check for mode == in.

1999-12-03  Benjamin Kosnik  <bkoz@gnu.org>

	* bits/locale_facets.tcc (num_put::do_put(bool): Fix.

	* bits/sstream.tcc (streambuf::seekoff): Add parens.
	* bits/istream.tcc (istream::get(sb)): Handle exceptional events.
	(operator>>(istream, _CharT*)): Change streamsize to int_type.
	(operator>>(istream, _CharT&)): Fix typedef'd type to be _CharT.
	* bits/ostream.tcc (ostream::operator<<(const char*)): Stub out
	unused argument.
	(ostream::operator<<(_CharT)): Fix.
	
	* bits/std_sstream.h: Temporarily disable including sstream.tcc to
	see if this will increase compile speed.
	* bits/std_ostream.h: Likewise. . .
	* bits/std_istream.h: And here.
	* bits/std_fstream.h: And here.
	* src/misc-inst.cc: Add relevant header file includes for
	instantiation purposes.
	* src/string-inst.cc: And here.
	* testsuite/27_io/ostream_inserter_arith.cc: Add test case.
	
1999-12-02  Benjamin Kosnik  <bkoz@gnu.org>

	* testsuite/27_io/istream_unformatted.cc (test03): Add tests.
	* bits/istream.tcc (get(streambuf)): More fixes. 
	(istream::ignore): Get specific about numeric_limits<int>::max()
	requirements.

	* bits/fstream.tcc (filebuf::open): Tweaks for _M_last_overflowed.
	(filebuf::close): Same.
	* testsuite/27_io/filebuf.cc: Add tests for ios_base::ate.
	
1999-12-01  Phil Edwards  <pedwards@jaj.com>

        * mkcheck:  Support for compilation/execution timing.
	* testsuite/printnow.c: New file.
	
1999-12-01  Phil Edwards  <pedwards@jaj.com>

        * bits/std_cwchar.h:  Test for _GLIBCPP_USE_WCHAR_T.
        * configure.in:  Test for presence of wchar.h before testing
          for any of its features.
        * configure:  Regenerate.

1999-11-30  Benjamin Kosnik  <bkoz@gnu.org>

	Preliminary istream validations complete.
	* bits/istream.tcc (istream::getline): Fixes. Tweaks to make
	formatting more consistent. Removal of if-statements inside of for
	loops.
	(ignore): Fix.
	(get): Same.
	(putback): Same.
	* bits/std_istream.h: Same.
	* bits/sstream.tcc (stringbuf::pbackfail): Fix.
	* testsuite/27_io/stringbuf.cc: Tweak.
	* testsuite/27_io/istream_unformatted.cc (test02): Mo' tests.	

	* bits/ostream.tcc (ostream::operator<<(arith)): Set badbit, not
	failbit on failure, as per 27.6.2.5.2.

	* stl/bits/std_vector.h: Allow bool specializations. Should move
	ext/std_bvector to bits, not ext, maybe.

1999-11-30  Mumit Khan  <khan@xraylith.wisc.edu>

        * configure.in: Fix checks for mbstate_t and WCHAR_MIN/MAX.
	* configure: Regenerate.
	
999-11-29  Benjamin Kosnik  <bkoz@gnu.org>

	* bits/istream.tcc (get(streambuf, char)): Fix.
	* testsuite/27_io/istream_unformatted.cc (test03): Add tests.
	
1999-11-29  Scott Snyder  <snyder@fnal.gov>

        * bits/basic_string.h (append(const _Char*, size_type)): The
        length of the appended string is given exactly by the second arg,
        regardless of the data in the character array.
        * bits/string.tcc (basic_string(const _CharT*, size_type, const
        _Alloc&)): Likewise.
        * testsuite/21_strings/append.cc (test01): Remove erroneous test
        of basic_string::append.

1999-11-29  Chip Salzenberg  <chip@valinux.com>

	* Makefile.in: Tweaks for CXXFLAGS.
	* */Makefile.in: Same.

1999-11-29  Mumit Khan  <khan@xraylith.wisc.edu>

        * conficd bgure.in: Check for wide character support.
        * bits/c++config.h.in (_GLIBC_USE_WCHAR_T): Move from here ...
        * acconfig.h (_GLIBC_USE_WCHAR_T): to here.
        * bits/string.tcc (wstring::_S_find): Guard wchar_t specialization.
	
1999-11-29  Mumit Khan  <khan@xraylith.wisc.edu>

        * acinclude.m4: Fix typo.
        * src/complex.cc: Fix macro line continuation.
	
1999-11-29  Petter Urkedal  <petter@matfys.lth.se>

        * src/Makefile.am (CXXFLAGS): Add -Wno-format to allow non-
        string literals in format, as used in locale-facets.tcc.

1999-11-28  Benjamin Kosnik  <bkoz@gnu.org>

	* testsuite/27_io/istream_unformatted.cc (test03): Add tests.
	* bits/istream.tcc (istream::get): Extract to argument minus one.
	Various tweaks and fixes.
	
1999-11-22  Mumit Khan  <khan@xraylith.wisc.edu>

        * bits/locale_facets.tcc: Workaround for compiler crash on
        ix86-*-mingw32.

1999-11-21  Mumit Khan  <khan@xraylith.wisc.edu>

        * acinclude.m4: New file. New _GLIBCPP_CHECK_FLOAT_SUPPORT macro.
        * configure.in: Use.
        * acconfig.h: New _GLIBCPP_BUGGY_FLOAT_COMPLEX macro.
        * src/complexf.cc: New _GLIBCPP_FLOAT_SPECIALIZATION macro.
        * bits/std_complex.h: Use.
        * src/complex.cc: Use.

1999-11-19  Mumit Khan  <khan@xraylith.wisc.edu>

        * testsuite/18_support/numeric_limits.cc: Add missing std:: prefix.
        * testsuite/21_strings/inserters_extractors.cc: Likewise.
        * testsuite/22_locale/ctype.cc: Likewise.
        * testsuite/23_containers/multiset.cc: Likewise.
        * testsuite/23_containers/vector_ctor.cc: Likewise.
        * testsuite/26_numerics/binary_closure.cc: Likewise.
        * testsuite/27_io/fpos.cc: Likewise.
        * testsuite/27_io/ios_base_callbacks.cc: Likewise.
        * testsuite/27_io/istream_extractor_arith.cc: Likewise.
        * testsuite/27_io/istream_extractor_char.cc: Likewise.
        * testsuite/27_io/istream_extractor_other.cc: Likewise.
        * testsuite/27_io/istream_sentry.cc: Likewise.
        * testsuite/27_io/ostream_inserter_char.cc: Likewise.
        * testsuite/27_io/ostream_inserter_other.cc: Likewise.
        * testsuite/27_io/streambuf.cc: Likewise.
        * testsuite/27_io/stringstream.cc: Likewise.

1999-11-19 Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

        * bits/valarray_meta.h: Don't forget to define tanh

1999-11-18  Philip Martin  <pm@corris.dircon.co.uk>
 
       * src/stl-inst.cc: Use typedef to refer to iterator
       * stl/bits/stl_algobase.h: Add traits based dispatch for
       __normal_iterator in the copy()algorithm
       * stl/bits/type_traits.h: Add _Is_normal_iterator trait support

1999-11-18  Kevin Ediger  <kediger@licor.com>

        * src/locale.cc (locale::_Imp::_Imp): Use auto_ptr to make
	constructors for locale::_Impl exception safe.

1999-11-18  Scott Snyder  <snyder@fnal.gov>

        * stl/bits/stl_queue.h: The C++ standard gives the default for the
        _Sequence template argument of priority_queue<> as vector<>, not
        deque<>.

1999-11-18  Benjamin Kosnik  <bkoz@gnu.org>

	* bits/std_sstream.h (stringbuf::_M_really_sync): Add __iend as a
	parameter.
	* bits/sstream.tcc: Adjust here too.
	
1999-11-17  Benjamin Kosnik  <bkoz@gnu.org>

	* bits/sbuf_iter.h (istreambuf_iter::equal): Tweak.
	* bits/istream.tcc (operator>>): Replace iostate(0) with
	iostate(ios_base::goodbit), which is the same thing, but hopefully
	a bit clearer.
	* bits/locale_facets.tcc (do_get(bool)): Streamline, deal with
	libraries issue list 17.
	(do_gets): Don't set goodbit explicitly, instead only set on
	failures as good bit is the default setting.
	* bits/ios_base.h (setf): Set correctly.
	* bits/fstream.tcc: Tweak.
	* bits/std_sstream.h (_M_really_sync): Fix ibuffer positioning for
	in|out bufs that are empty. . .
	* testsuite/27_io/istream_extractor_arith.cc (test03): Add.
	
1999-11-16  Benjamin Kosnik  <bkoz@gnu.org>

	* testsuite/27_io/streambuf.cc (class testbuf): Don't set _M_buf_size.
	* bits/std_streambuf.h (setp): Set _M_buf_size, _M_mode.
	Add comments "all about _M_buf."
	(setg): Set _M_mode.

1999-11-16  Kevin Ediger  <kediger@licor.com>

	* bits/locale_facets.tcc (_S_build_float_format): New function.
	(_S_output_float): New function.
	(num_put::do_put(double)): Use 'em.
        (num_put::do_put(long double)): Use 'em.
	* testsuite/27_io/ostream_inserter_arith.cc: New file.

1999-11-15  Scott Snyder  <snyder@fnal.gov>

        * bits/basic_file.h: Type of __off parm should be __c_streampos, to
        match how libio is calling us.
        * src/basic_file.cc (sys_seek): Likewise.
        * bits/std_fstream.h (basic_filebuf::sync): Restore sync call.

1999-11-15  Benjamin Kosnik  <bkoz@gnu.org>

	* docs/17_intro/contribute.html: Add link to assignment form.
	* docs/17_intro/libstdc++-assign.txt: New file.

	* mkcheck (TESTS_FILE): Move a copy of test files as well as
	output files.

	* bits/std_streambuf.h (_M_buf_bump): New function.
	* bits/streambuf.tcc: Mods to support _M_buf_bump.
	(xsputn): Here. Also add checks for output valid.
	(xsgetn): Add checks for input valid.
	(sputc): Here.
	(sgetc): Set _M_in_end to _M_buf + _M_buf_end.
	* bits/std_sstream.h (_M_really_sync): Set _M_buf.
	Set _M_out_end to variable-length-end.
	* bits/sstream.tcc (overflow): Use _M_buf_bump.
	(seekpos): Same.
	(seekoff): Same.
	* bits/fstream.tcc (std): Tweak formatting.
	(filebuf::overflow): Simplify.
	(filebuf::showmanyc): Same.
	(filebuf::underflow): Same.
	* testsuite/27_io/filebuf.cc: Fix.
	* testsuite/27_io/ostream_inserter_other.cc: Fix.
	* testsuite/27_io/ostream_inserter_other-2.tst: New file.
	* testsuite/27_io/stringbuf.cc: Tweak.	
	* testsuite/27_io/streambuf.cc: Tweak.	
	* testsuite/27_io/istream_extractor_other.cc: Fix.

1999-11-11  Matthias Klose  <doko@cs.tu-berlin.de>

	* stl_deque.h: Use static_casts<size_type>(signed_type).

1999-11-11  Benjamin Kosnik  <bkoz@gnu.org>

	Cleanups for callbacks, more regression hunting. Remaining
	failures (1) due to last unresolved stringstream issues, not
	regressions per se.
	* bits/std_fstream.h: Revert. Disable call to _M_file->sync as
	killing 27_io/filebuf.cc tests. . . need another solution.

	* bits/streambuf.tcc (_S_copy_streambufs): Fix.
	* testsuite/27_io/istream_extractor_other.cc: Tweak comments.

	* bits/basic_ios.h: Add cached facets here. UGH. The standard
	foils all attempts at a graceful, minimal implementation.
	* bits/basic_ios.tcc: Tweaks.
	* bits/istream.tcc: Fix.
	* bits/ostream.tcc: Fix.
	* bits/std_istream.h: Fix.
	* bits/std_ostream.h: Fix.
	* src/ios.cc (ios_base::imbue): Set _M_locale_ios before calling
	callbacks.
	* bits/locale_facets.tcc (std): Minor, minor formatting tweak.
	(_S_pad_numeric): Make comprehensible.

1999-11-10  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/std_ostream.h: Add callbacks for _M_fnumput.
	(_S_ostream_fcache): New function.
	Move functions out-of-line.
	* bits/ostream.tcc: Put here.

	* bits/std_istream.h: Add callbacks for _M_fnumget.
	(_S_istream_fcache): New function.
	Move functions out-of-line.
	* bits/istream.tcc: Put here.
	
	* bits/basic_ios.tcc (basic_ios::imbue): Tweaks, remove call to
	_M_call_callbacks(), as ios_base::imbue does this already.
	* src/ios.cc (register_callback): Clean.
	(_M_call_callbacks): Same.
	* bits/ios_base.h: Callback work.
	* testsuite/27_io/ios_base_callbacks.cc (test01): New file.
	
1999-11-10  Benjamin Kosnik  <bkoz@cygnus.com>	
	    Matthias Klose  <doko@cs.tu-berlin.de>

	* stl/ext/stl_rope.h: Fix initialization order.

1999-11-09  Scott Snyder  <snyder@fnal.gov>

        * bits/std_fstream.h (basic_filebuf::sync): Unconditionally call
        _M_file->sync() so that redirection works correctly.

1999-11-09  Benjamin Kosnik  <bkoz@gnu.org>

	* bits/istream.tcc: Re-order.
	* bits/std_istream.h: Fix getline problems.
	* testsuite/27_io/istream_unformatted.cc: New tests.
	
	Clean up regressions.
	* bits/std_sstream.h: Set initial stringbufs correctly.

1999-11-09  Scott Snyder <snyder@fnal.gov>

        * stl_vector.h (_M_range_insert): Fix mixing pointers and
        vector::iterator.
	* testsuite/23_containers/vector_modifiers.cc (test01): New file,
	tests.
	
1999-11-09  Benjamin Kosnik  <bkoz@cygnus.com>

	* src/Makefile.am (CXXFLAGS): Add -Winline.
	* src/Makefile.in: Regenerate.

1999-11-05  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* bits/valarray_meta.h (_DEFINE_EXPR_UNARY_FUNCTION): When
	building meta-expressions don't forget to take the contained
	closures. 

1999-11-02  Benjamin Kosnik  <benjamin@cygnus.com>

	* configure: Regenerate.
	
1999-11-02  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* bits/valarray_meta.h (_Expr<>::sum): Tweak. Use copy-initialization
 	syntax.
	* bits/valarray_meta.h (min): Likewise.
	* bits/valarray_meta.h (max): Likewise.

1999-11-01  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/std_sstream.h (_M_really_sync): Take into account in | out bufs.
	* bits/std_streambuf.h (_S_copy_streambufs): New function.
	* bits/streambuf.tcc: Define.
	* bits/istream.tcc (istream::operator>>(streambuf)): Rewrite.
	* bits/ostream.tcc (ostream::operator<<(streambuf)): Rewrite.
	* testsuite/27_io/ostream_inserter_other.cc: Add tests.
	* testsuite/27_io/ostream_inserter_other-1.tst: New file.

	* bits/basic_string.h: Explicitly cast npos to unsigned type,
	reported by Richard Atterer.
	* bits/char_traits.h: For consistency's sake, here too.
	
	* configure.in: Bump version to 2.90.7.
	
1999-10-31  Benjamin Kosnik  <bkoz@cygnus.com>

	* testsuite/27_io/ostream_inserter_char-1.tst: Check file output.
	* testsuite/27_io/ostream_inserter_char.cc (test05, test01): Add tests.
	* bits/streambuf.tcc (xsputn): Treat--size const char for long loops.
	(xsgetn): Same.
	* bits/sstream.tcc (seekpos): Tricks, mostly: check _M_mode before
	writing into buffer.
	(seekoff): Same.
	
1999-10-29  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* bits/valarray_array.h (__valarray_sum): New function.
	* bits/valarray_array.h (__valarray_product): Same.

	* bits/std_valarray.h (valarray<T>::product): Comment out.
	* bits/std_valarray.h (valarray<T>::sum): Use __valarray_sum
	instead of accumulate. 

	* src/valarray-inst.cc: Remove explicit intantiation of
	class multiplies<size_t>, accumulate, valarray<size_t>::product. 
	* src/valarray-inst.cc (__valarray_product): Instantiate
	explicitly. 
	* src/valarray-inst.cc (__valarray_product(const
	valarray<size_t>&)): New function.   
	* src/valarray-inst.cc (gslice::_Indexer::_Indexer): Don't use
	valarray<size_t>::product. Use __valarray_product instead.
	

1999-10-25  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/std_ostream.h (ostream.inserters.char): Correctly pad output.
	(_S_pad_char): New function. Not done: ios_base::internal.
	* bits/ostream.tcc: Clean for above.
	* bits/locale_facets.tcc (_S_fill): Remove ostreambufiterator
	specialization that was commented out, as ostreams now have to
	correctly deal with padding.
	* testsuite/27_io/ostream_inserter_char.cc (main): Add tests.
	
	* testsuite/21_strings/ctor_copy_dtor.cc(test02): Add test case
	from mailing list. This is a bug, and should be fixed.
	* testsuite/21_strings/inserters_extractors.cc (main): Tweak, fix typo.
	
1999-10-22  Petter Urkedal  <petter@matfys.lth.se>

        * stl/bits/stl_numeric.h (__power): Replaced argument name `__opr'
        to avoid conflict with gcc name mangling.
        * stl/bits/stl_algo.h (__transform): Same.

1999-10-21  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/ios_base.h: Change argument names.
	* docs/17_intro/BADNAMES: Add __opr.
	
1999-10-20  Benjamin Kosnik  <bkoz@decepticon.cygnus.com>
	
	Work on compilation slowdowns from 10-5 to 10-12, which are
 	related to the _Callback_list inlining/merge-ifcation, which is
 	still a pending issue, but this stuff is necessary cleanup anyway.

	* src/ios.cc: Re-arrange.
	* bits/ios_base.h: Tweak.
	* bits/basic_ios.tcc: Move out of line definitions here, move
 	small out-of-line definitions inline.
	* bits/basic_ios.h: From here.
	
	* bits/streambuf.tcc (pbackfail, overflow): Move back inline.
	* bits/std_streambuf.h: From here.

1999-10-19  Benjamin Kosnik  <bkoz@cygnus.com>

	* testsuite/27_io/istream_extractor_char.cc: Add tests.
	* bits/std_istream.h: Tweaks--set eofbit on eof condition.
	* bits/istream.tcc (operator>>(istream&, string&): Remove
	vestigial issspace hacks and use ctype::is instead.
	(getline): Remove unnecessary loops, fortify and pasteurize.
	(ws): Same.
	
1999-10-18  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/istream.tcc (operator>>): Tweak.
	* bits/std_istream.h: Fix according to library issues list 68.
	Add typedefs.

	* bits/locale_facets.h: Fix table_size to be non-zero.

1999-10-18  Vadim Egorov  <egorovv@HotPOP.com>

        * src/basic_file.cc: ifdef instead of comment for binary mode

1999-10-18  Russell Davidson  <russell@qed.econ.queensu.ca>

	* bits/std_sstream.h: Stringbuf initialization based on actual,
	not allocated, size.
	* testsuite/21_strings/inserters_extractors.cc (test06): Add test
	case.
	
1999-10-17  Benjamin Kosnik  <bkoz@cygnus.com>

	* testsuite/26_numerics/c_math.cc (test03): Tweak.
	* testsuite/27_io/istream_manip.cc (test01): Corrections due to
	sentry change.
	* testsuite/21_strings/inserters_extractors.cc (test01): Same.

1999-10-14  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/std_istream.h: Tweaks.
	* bits/istream.tcc (istream::sentry::sentry()): Simplify, correct
	as per issues list addition--set failbit, eof on empty buffers.
	* testsuite/27_io/istream_sentry.cc: New file.
	
1999-10-12  Chris Prince <prince@wcug.wwu.edu> 

	* bits/std_cstdio.h: Remove Solaris hacks.

1999-10-12  Phil Edwards  <philip.edwards@sn.wpafb.af.mil>

        * docs/index.html:  Fix minor typos and tweaks.
        * docs/17_intro/contribute.html:  Ditto.
        * docs/*/howto.html:  Ditto.  More "EGCS"->"GCC" conversion, notes on
        thread safety and binary I/O, links to external sites.
        * docs/faq/index.html: EGCS/GCC cleanup, new entries for Cygwin
 	and MT.

1999-10-12  Petter Urkedal  <petter@matfys.lth.se>

        * bits/std_cmath.h (abs(float)): When ::absf is not present, call
        ::fabs(double) rather than ::abs(int).

1999-10-11  Benjamin Kosnik  <bkoz@milou.cygnus.com>

	* bits/std_streambuf.h: Fix minor blip--should explicitly return
	*gptr(), not the result of underflow.
	(pbackfail): Conform to default behavior.
	(overflow): Same.
	* bits/streambuf.tcc: Add out-of-line streambuf members.
	(xsputn): Tweak.
	(xsgetn): Tweak.
	* testsuite/27_io/streambuf.cc: New file.
	* testsuite/27_io/filebuf.cc: Correct test.

1999-10-08  Benjamin Kosnik  <bkoz@haight.constant.com>

	* bits/std_cmath.h: Correctly cast int to double.
	* testsuite/26_numerics/c_math.cc: Add test.

	* mknumeric_limits (OUT_C): Tweaks.
	* src/gen-num-limits.cc: Checks for WCHAR_MIN, WCHAR_MAX before
	trying to instantiate type_traits<wchar_t>.
	* acconfig.h: Add _GLIBCPP_HAS_WCHAR_MIN_MAX.
	* configure.in (LIBS): Plus checks for WCHAR_MIN, WCHAR_MAX.
	* configure: Regenerate.
	
1999-10-06  Benjamin Kosnik  <bkoz@milou.cygnus.com>

	* bits/streambuf.tcc (streambuf::xsgetn): Rewrite.
	(streambuf::xsputn): Put in break.
	Aiming for parity between these two (mostly) similar functions.
	Need to re-write tests.
	
	* bits/ios_base.h (ios_base::_M_copy_base): Remove declaration.
	Make data members protected, not private.
	* src/ios.cc (ios_base::_M_copy_base): Move _Callback_list into
	ios_base.h. As called only once, collapse into . . .
	* bits/basic_ios.h (basic_ios::copyfmt): Fix.
	(basic_ios::clear): Throw ios_base::failure on occasion.
	(basic_ios::exceptions): Fix.
	* testsuite/27_io/ios_members.cc (test02): Add tests.
	
	* bits/fpos.h: Default initialize.
	* testsuite/27_io/fpos.cc (test03): Add test.

1999-10-04  Russell Davidson <russell@qed.econ.queensu.ca> 

	* src/basic_file.cc: Fix open modes.
	
1999-10-04  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* bits/locale_facets.tcc (num_get<>::do_get): Fix typo.

1999-09-23  Benjamin Kosnik  <bkoz@milou.cygnus.com>

	* bits/streambuf.tcc: Yea. Fix this for real.
	* testsuite/27_io/ostream_inserter_other.cc: Add file.
	* src/Makefile.*: Regenerate.

1999-09-22  Benjamin Kosnik  <bkoz@milou.cygnus.com>

	* bits/std_cstdlib.h: Add more linux-specif hacks to the header
	files so that stdtof and strtold will be declared. Some hacks
	already exits in bits/std_cctype.h -- these should all be removed
	at a later date.
	* bits/locale_facets.tcc: Add cstring.h include.
	_S_format_long: Use long, not int.
	Add std_limits.h include, for numeric_limits.
	* testsuite/27_io/istream.cc: Make instantiations work when using
	-fhonor-std.  
	* testsuite/27_io/ostream.cc: Same.
	
1999-09-21  Benjamin Kosnik  <bkoz@milou.cygnus.com>

	* bits/fpos.h (fpos::operator streamoff): Make const, don't return
	a reference. Same for operators == and !=.
	* testsuite/27_io/fpos.cc: Add tests.

1999-09-21  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* bits/valarray_array.h: Fix typo.

	* mknumeric_limits: Make sure we are regenerating things from
	scratch.  Otherwise things get redefined.  Not good.

1999-09-20  Benjamin Kosnik  <bkoz@milou.cygnus.com>

	* bits/std_ostream.h: Fix typo.
	* bits/std_istream.h: Same.
	* bits/std_iomanip.h: Same.

	* bits/istream.tcc (sentry::sentry()): Remove optional tie with
	ostream, as happens with underflow anyway.
	* testsuite/27_io/istream.cc (main): New file.
	* testsuite/27_io/ostream.cc (main): New file.
	* testsuite/27_io/istream_unformatted.cc: Add tests.

	* src/Makefile.am (headers): Add new file.
	* src/Makefile.in (headers): Regenerated.

	* bits/basic_ios.h: Remove local-related files.
	* bits/basic_ios.tcc: New file, add locale-related items.
	* src/misc-inst.cc: Add include of basic_ios.tcc, as a hack for now.
	* testsuite/27_io/ios_members_static.cc: Change to
	* testsuite/27_io/ios_base_members_static.cc: This.
	* testsuite/27_io/ios_members.cc: New file.
	* testsuite/27_io/stdios_basefield_manip: Change to
	* testsuite/27_io/ios_manip_basefield.cc: This.
	* testsuite/27_io/stdios_fmtflags_manip: Change to
	* testsuite/27_io/ios_manip_fmtflags.cc: This.
	
	* bits/fpos.h: Fix discarding qualifiers on this when
	using _M_position with a const fpos.
	* bits/std_iosfwd.h: Tweak.
	* testsuite/27_io/fpos.cc: New file.

1999-09-17  Benjamin Kosnik  <bkoz@milou.cygnus.com>

	* bits/streambuf.tcc (streambuf::xsputn): Tweak.
	* bits/ostream.tcc: Tweak.
	* testsuite/21_strings/inserters_extractors.cc (test04, test05):
 	Add new regressions.
	
1999-09-16  Benjamin Kosnik  <bkoz@milou.cygnus.com>

	* bits/basic_ios.h: Inline, tweak.
	* bits/fstream.tcc (basic_filebuf::_M_really_overflow): Tweak,
 	pass back accurate return value to basic_filebuf::overflow.
	* bits/streambuf.tcc (streambuf::xsputn): Fix overflow accounting.
  	This fixes sstream problems reported in libstdc++/9, but screws up
 	filebufs. That solution is pending.

1999-09-15  Vadim Egorov  <egorovv@1c.ru>

        * bits/streambuf.tcc (basic_streambuf::xsputn): Add check for 
	zero count puts.
	* testsuite/21_strings/inserters_extractors.cc (test01): Add test.
	
1999-09-08  Benjamin Kosnik  <bkoz@milou.cygnus.com>

	* bits/c++config.h.in: Add emacs hints.

	* stl/bits/stl_range_errors.h: Don't define here, for now define
	in stdexcept.cc along with string inlines __length_error, etc.
	* src/stdexcept.cc: Define here.
	* stl/bits/stl_config.h (__STL_CAN_THROW_RANGE_ERRORS): Enable, so
	at(size_t) will be declared/defined.
	(__STL_THREADS): Fix mess surrounding use of this, enable.

1999-08-31  Benjamin Kosnik  <bkoz@milou.cygnus.com>

	* testsuite/27_io/istream_extractor_arith.cc: Fix.
	* src/localename.cc: Tweak formatting, fix assignment to
	const compiler errors.

1999-08-25  Benjamin Kosnik  <bkoz@cygnus.com>

	* acconfig.h: Add absf, cosf.
	* configure.in (use_builtin_sinf): Same.
	* configure: Regenerate.
	* bits/std_cmath.h: Add mess of defines.
	* testsuite/26_numerics/modf_float.cc: Change to
	* testsuite/26_numerics/c_math.cc: This.
	
	* src/locale.cc: Change.
	* bits/locale_facets.h: Fix.
	* testsuite/22_locale/ctype.cc: Add temporary tests.
	
1999-08-24  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/fpos.h: Test.

	* docs/index.html: Add powerpc-linux-gnu results with gcc-2.95.1.
	Fix database name for "libstdc++".

1999-08-23  Benjamin Kosnik  <bkoz@cygnus.com>

	* mknumeric_limits (numeric_limits): Add default definitions to
	member functions.
	* testsuite/18_support/numeric_limits.cc: New file.

1999-08-18  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/std_istream.h: Correct initialization.
	* bits/std_ostream.h: Likewise.
	* bits/std_sstream.h: Likewise.
	* bits/std_fstream.h: Likewise. 
	* testsuite/27_io/stringstream.cc: Add test case.
	
	* bits/std_sstream.h: Replace ____string_type with __string_type.
	* bits/basic_ios.h (basic_ios::rdbuf(sb*): Call clear(), as required.
	* bits/std_ostream.h: Tweak dtor.

1999-08-17  Benjamin Kosnik  <bkoz@decepticon.cygnus.com>

	* src/Makefile.am (CXXFLAGS): Add -O2.
	* src/Makefile.in: Likewise.
	
	* src/gen-num-limits.cc: Conditionally allow wchar_t. See what
	this breaks. . .
	* mknumeric_limits (numeric_limits): Uglify.

	* bits/std_istream.h: Fix warnings.
	* bits/locale_facets.tcc: Collateral damage from
	char_traits<char>::int_type change.

	* testsuite/27_io/istream_extractor_char.cc: Terminate strings.

1999-08-17  Benjamin Kosnik  <bkoz@decepticon.cygnus.com>

	* docs/index.html: Add mailing list form.
	* docs/27_io/howto.html: Add link to iostreams_hierarchy.pdf.

1999-08-16  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/streambuf.tcc (streambuf::xsputn): Allow copies to continue
	if overflow successfully allocates more space.
	* bits/std_sstream.h: Adjust comments.
	* bits/sstream.tcc (stringbuf::overflow): Copy buffer into string
	before overflow forces a resize.
	* testsuite/27_io/ostream_inserter_char.cc: New file.
	
	* bits/std_fstream.h: Remove declaration.
	* bits/fstream.tcc: Move uflow.
	* bits/std_streambuf.h: To here.
	* bits/streambuf.tcc: Make consistent.
	
	* src/Makefile.am (WERROR): Enable.
	* src/Makefile.in: Regenerate.
	* bits/sbuf_iter.h: Tweak.
	* bits/char_traits.h: (char_traits<wchar_t>::eof): Use WEOF.
	Use unsigned int as char_traits<char>::int_type.

	* bits/ostream.tcc (ostream::putc(char)): Tweak.
	* testsuite/27_io/iostream_objects.cc: Terminate string.
	Move cin::operator>>(char*) test to extractor_char.cc.
	* testsuite/27_io/stringstream.cc: Add stringstream instantiation.
	* bits/std_istream.h (basic_iostream): Make explicit definition
	for default ctor.
	* bits/std_sstream.h: Fix typos.
	* bits/fstream.tcc (_M_init_filebuf): Set to indeterminate for
	basic_filebuf ctor with fileno open arguments. Thus, filebufs are
	initialized in a consistent manner, no matter if the underlying
	FILE/bit bucket is a tty or a text file or some other imaginary
	construct. This and setting _M_buf_size to 1 for cin allows
	istream::get(char) to work in a manner consistent with what others
	expect.

	* docs/index.html: Link Stroustrup's C++ page.
	
1999-08-12  Michael Cook  <cook@sightpath.com>

	* bits/fstream.tcc: Fix signed/unsigned -Wall warning.
	* bits/istream.tcc: ditto.
	* bits/sbuf_iter.h: ditto.
	* bits/std_istream.h: ditto.
	* src/Makefile.am: Add -Wall to CXXFLAGS.
	* src/Makefile.in: ditto.

1999-08-12  Benjamin Kosnik  <bkoz@tintin.cygnus.com>
	    Russell Davidson <russell@ehess.cnrs-mrs.fr> 

	* bits/locale_facets.tcc (_M_extract): Finish off patch from yesterday.
	* src/Makefile.am (myinstallheaders): Tweak, remove PHONY.
	
1999-08-11  Benjamin Kosnik  <bkoz@tintin.cygnus.com>

	* testsuite/27_io/istream_unformatted.cc: New file.

	* testsuite/27_io/istream_extractor_arith.cc (test02): Add more
	elaborate tests for int types with noskipws.

	* testsuite/27_io/istream_extractor_other-1.txt: New file.
	* testsuite/27_io/istream_extractor_other-1.tst: New file.
	* testsuite/27_io/istream_extractor_other-2.tst: New file.	
	* testsuite/27_io/istream_extractor_other.cc: Add tests.
	* bits/istream.tcc: Fix operator>>(streambuf*).

	* testsuite/23_containers/vector_ctor.cc (test01): Add.

	* docs/index.html: Remove references to egcs.
	* docs/17_intro/DESIGN: Same.
	* docs/17_intro/contribute.html: Same.
	* docs/17_intro/RELEASE-NOTES: Ditto.
	* docs/17_intro/howto.html: Same here.

	Russell Davidson <russell@ehess.cnrs-mrs.fr>
	* stl/bits/stl_vector.h (_M_insert_aux): 
	* bits/locale_facets.tcc (_M_extract): Tweaks for preliminary
	decimal/floating point support.
	* bits/locale_facets.h: Change _M_extract prototype.
	* bits/char_traits.h (char_traits::to_int_type): Cast to unsigned.
	* bits/std_istream.h (istream::read(char_type, streamsize)): Fix.
	
1999-08-10  Michael Cook  <cook@sightpath.com>

	* bits/fstream.tcc: Fix for unused variable warning (-Wall).
	* bits/ios_base.h: ditto.
	* bits/istream.tcc: ditto.
	* bits/locale_facets.h: ditto.
	* bits/locale_facets.tcc: ditto.
	* bits/std_streambuf.h: ditto.
	* src/basic_file.cc: ditto.
	* src/locale.cc: ditto.
	* src/localename.cc: ditto.

1999-08-10  Kirat Singh  <singhki@jany.gs.com> 

	* bits/std_iomanip.h: Inline.
	
1999-08-10  Alfred Minarik <a8601248@unet.univie.ac.at>
	
	* bits/std_streambuf.h: Correct member initialization order.
	* src/ios.cc: Add definitions for ios_base data members.
	
1999-08-06  Phil Edwards  <pedwards@ball.com>
	
	* docs/index.html:  Seventh snapshot updates.  Minor tweaks.
	* docs/faq/index.html: Ditto.  Removed bugs sections that have
	been fixed for a long time...  Lots of "egcs" references still
	exist.
	* docs/faq/index.txt:  Regenerated.

1999-08-05  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
	    Andreas Amann <amann@physik.tu-berlin.de>

	* testsuite/26_numerics/binary_closure.cc (main): new test.

1999-07-29  Andreas Amann <amann@physik.tu-berlin.de>

	* bits/valarray_meta.h: (_BinClos<>::_Binclos): fix typo causing
	segmentation fault.

1999-08-04  Benjamin Kosnik  <bkoz@decepticon.cygnus.com>

	* docs/index.html (host): Put in testing status.

1999-08-03  Benjamin Kosnik  <bkoz@cygnus.com>

	* docs/index.html: Update for libstdc++-2.90.6 release.
	* docs/17_intro/RELEASE-NOTES (New): Update.
	* docs/17_intro/BUGS: Update.
	* bits/c++config.h.in (__GLIBCPP__): Bump version number.
	* README (file): Update.

1999-08-03  Benjamin Kosnik  <bkoz@cygnus.com>

	* src/Makefile.am (generated_headers): Remove bits/c++config.h as
	a target.
	($(generated_headers)): Same.
	* src/gen-c++config.cc: Remove, rename to
	* bits/c++config.h.in: New file. Bump version number.
	* configure.in: Generate bits/c++config.h at configure time. 
	* math/mathconf.h: include bits/c++config.h, not config.h.
	
	* bits/std_cmath.h: Fix remaining link error for solaris shared
	builds.  _GLIBCPP_HAS_BUILTIN_SINF has to be disabled for the time
	being, as on Solaris this silently calls sinf, which does not
	exist.
	
	* src/complex.cc: More tweaks.

1999-08-03  Benjamin Kosnik  <bkoz@cygnus.com>

	* src/complex.cc: Same.
	* math/complex-stub.h: Change.
	* math/c_log10*.c: Change back to clog10*.c.

	* configure.in (NEED_C_LOG10): Delete.
	* configure: Regenerate.
	* math/Makefile.am: Change.
	
1999-07-30  Benjamin Kosnik  <bkoz@cygnus.com>

	* math/Makefile.am: Fix, for real.
	* configure.in (use_builtin_sinf): Ok, make autoconf solution.
	* math/clog.c: Move to c_log.c.
	* math/clog*: Ditto.
	* math/c_log10l.c (c_log10l): Change function name.
	* math/c_log10f.c (c_log10f): Change function name.
	* math/c_log10.c (c_log10): Change function name.
	
	* math/complex-stub.h: Change to c_log* variants.
	* src/complex.cc: And here. 
	
1999-07-29  Benjamin Kosnik  <bkoz@cygnus.com>

	* testsuite/27_io/istream_extractor_other.cc: Correct last test.
	* bits/sstream.tcc (stringbuf::overflow): Don't update the input
	sequence, just the output sequence.
	* bits/std_sstream.h (stringbuf::str()): Only in stringbufs return
	the original string, all others use complicated heuristic.

	* src/complex.cc: Assume c_log10.
	* math/Makefile.am (EXTRA_yes): Fix c_log/c_logf unresolved
	symbols in shared libraries by making c_log/c_log10 part of the
	"must cmpile" sources. This may not work on solaris, must check.

1999-07-29  Benjamin Kosnik <bkoz@cygnus.com>

	* bits/istream.tcc (operator>>(streambuf*)): Re-do.
	* bits/std_istream.h: Fix char extractors.
	* testsuite/27_io/istream_extractor_char.cc: Change.
	* testsuite/27_io/istream_extractor_other.cc: Add tests.
	
1999-07-28  Benjamin Kosnik <bkoz@cygnus.com>

	* bits/std_cctype.h: Fix for solaris2.6 builds. 

	* bits/istream.tcc: Fix, thanks Alfred.
	* bits/std_istream.h: Formatting changes.

	* libio/Makefile.am (libio_la_SOURCES): Remove cleanup.c, so that
	_IO_cleanup will not be undefined.
	* libio/*: Regenerate.
	
	* bits/basic_string.h: More namespace-safety stuff.
	* testsuite/27_io/istream_extractor_char.cc: Fix.
	* testsuite/27_io/istream_extractor_arith.cc: Fix.
	* testsuite/27_io/iostream_objects.cc: Fix.
	* testsuite/27_io/ios_ctor.cc: Fix.
	* testsuite/27_io/istream_manip.cc: Make namespace safe.
	* testsuite/27_io/istream_extractor_other.cc: New file.

	* mkcheck (TESTS_FILE): Tweaks.

1999-07-27  Benjamin Kosnik  <bkoz@cygnus.com>

	* src/gen-c++config.cc: Note here, change version.
	* acconfig.h( _GLIBCPP_USE_CTYPE_ISBIT): New macro.
	* src/locale.cc: Used here.
	* configure.in (use_builtin_sinf): Check for _ISBit using autoconf.

	* aclocal.m4: Regenerate by running `aclocal -I m4.`
	
	* bits/istream.tcc: Fix.
	* bits/std_istream.h: More changes to extractors.

	* testsuite/27_io/istream_extractor_char.cc: More.
	* testsuite/21_strings/inserters_extractors.cc (test01): Fix logic
	error in testsuite construction.

	* bits/std_istream.h: Partially revert.
	* bits/std_ostream.h: Same.
	* bits/std_sstream.h: Revert. 

1999-07-26  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/std_sstream.h: Change initialization.
	* bits/std_ostream.h: Make default ctor/assign/operator= private.
	* bits/std_istream.h: Same, also correct sentry args.
	* bits/istream.tcc: Add correct sentry args.
	
	* testsuite/27_io/istream_extractor_char.cc: New file.
	* testsuite/27_io/istream_extractor_arith.cc: New file, old file,
	name changes making me dizzy.

1999-07-26  Ulrich Drepper  <drepper@happy.cygnus.com>
            Benjamin Kosnik  <bkoz@cygnus.com>

	* aclocal.m4, config.guess, config.sub, ltconfig ltmain.sh: Update
	to libtool 1.3.3.

1999-07-26 Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* bits/std_complex.h: Tweak. Make the primary template class
	complex work with user-defined numerical types.  Provide member
	definitions.  Restructure.
	(class complex<float>): Uglify.  Remove  __value().  Rename __val
	to _M_value.  Rename __complex_value_type to _ComplexT. Make it
	private.  Remove dependency on __value().  Fix various explicit
	specialization syntax.  Declare a some functions friend.  Now the
	implementation is nearly comforming.
	(class complex<double>): Likewise.
	(class complex<long double>): Likewise.

	* src/complex.cc: Tweak.  Remove dependency on complex::__value().
	(sin, sinh, tan, than): Fix call to corresponding C9x function
	syntax. 

1999-07-24  Benjamin Kosnik  <bkoz@fidel.cygnus.com>

	* bits/istream.tcc (ws): Fix error with failbit being set.

	Disabled due to egcs/gcc-2_95 internal compiler errors.
	* src/Makefile.am (CXXFLAGS): Add -fsquangle -fhonor-std
	-fnew-exceptions. Compiling with namespaces enabled will now be
	the default.
	* mkcheck (CXX_FLAG): Same.
	* src/gen-c++config.cc (_GLIBCPP_USE_NAMESPACES): Yup. New macro.
	* bits/std_cctype.h: Not enough to just define in namespace std if
	ctype-isms are macros. Need to also define in namespace std:: if
	the C functions are just plain functions.

	* src/gen-num-limits.cc: Fix spelling inconsistencies.
	
1999-07-24  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* docs/18_support/howto.html: Start documentation.  Need to keep
	track of the ongoing discussion in th LWG reflector.

	* src/gen-num-limits.cc: Tweak.
	(class predicate): New class.
	(class value): Likewise.
	Make the whole machinery more flexible. Add comments.

1999-07-23  Benjamin Kosnik  <bkoz@fidel.cygnus.com>

	* bits/ios_base.h: Move state/exception functions into basic_ios. 
	* bits/basic_ios.h: Same.
	* src/ios.cc: And here. Callbacks don't attempt to reset
	state now.  

	* bits/std_streambuf.h: Separate ios and streambuf locale data
	members and cached facets. Using this convention: _M_locale_buf for
	the streambuf-related classes, and _M_locale_ios for the ios
	hierarchy.
	* bits/fstream.tcc: And here.
	* bits/basic_ios.h: And here. Also, add cached ctype.
	* src/ios.cc: Ditto.
	* bits/ios_base.h: Ditto.
	* bits/std_istream.h: Use cached ctype facet.
	* docs/27_io/iostreams_hierarchy.pdf: Update for new data member
	arraignment.

	* testsuite/27_io/ios_ctor.cc: New file.
	* src/ios.cc: Move _M_state init to basic_ios::init().
	* bits/basic_ios.h: To here.
	
	Attempt for some consistency in naming for testsuite/27_io/*.cc.
	* testsuite/27_io/boolfmt.cc: Rename to stdios_fmtflags_manip.cc
	* testsuite/27_io/octfmt.cc: Rename to stdios_basefield_manip.cc
	* testsuite/27_io/istream_manip.cc: Rename to istringstream_manip.cc.
	* testsuite/27_io/ostream_manip.cc: Rename to ostringstream_manip.cc.
	
1999-07-22  Benjamin Kosnik  <bkoz@fidel.cygnus.com>
	
	* src/ios.cc: Tweak initializations of standard iostream
	objects to closely match the standard. Tie cin/wcin, set flags on
	cerr/wcerr
	* bits/char_traits.h: Change from size_t to int_type, as per
	standard. As per wide streams.
	* bits/basic_ios.h: Infect with __ctype_type, as a preparation
	for caching a bunch of ctype info. For instance, ctype_base::space
	info needs to be stored somewhere, somehow.
	* bits/std_istream.h: Also here.
	* bits/std_ostream.h: Ditto.
	* bits/std_istream.h (operator>>(istream, char): Aggh. Fixup.
	* testsuite/27_io/iostream_objects.cacc (test01): Oh yeah. Fix
	stream states.

	* bits/istream.tcc (ws): Fix.
	* testsuite/27_io/istream_manip.cc: New file, test ws.
	* testsuite/27_io/ostream_manip.cc: New file, test endl, ends, flush.

 	* bits/basic_string.h: Provide a specialized member function for
	_S_find<char> using strchr.
	* src/string-inst.cc: Put specializations here.
	* bits/string.tcc: Small fix for find, remove typo.
	* testsuite/21_strings/find.cc (test01): Add tests to catch this
	find bug. . .

1999-07-20  Benjamin Kosnik  <bkoz@decepticon.cygnus.com>	

	* bits/basic_ios.h: Put into basic_ios namespace.
	Tweak widen/narrow.

1999-07-19  Benjamin Kosnik  <bkoz@decepticon.cygnus.com>	

	* bits/std_sstream.h (stringbuf::sync): Change to _M_really_sync,
 	adjust _M_*_cur pointers inside the function, so callee doesn't
 	have to adjust.
	* bits/sstream.tcc (stringbuf::overflow): Tweak.

	* mkcheck: Tweak. Add execution time field, even though it is not
 	implemented yet. Simplify pass/fail status notation.

1999-07-18  Mumit Khan  <khan@xraylith.wisc.edu>

        * configure.in: Check for float.h and underscored version of 
        math functions.
        * acconfig.h: Add @BOTTOM@ section for handling underscored
        math functions.
        * configure: Regenerate.
        * config.h.in: Regenerate. 
        * math/mathconf.h (float.h): Include conditionally.
        (M_PI): Define conditionally.
        (INFINITE_P): Define for Mingw.
        * bits/locale_facets.tcc: Workaround for compiler crash on
        ix86-*-mingw32.
        * bits/std_cwchar.h (bits/std_cstddef.h): Include.
        * src/locale.cc (bits/std_istream.h): Include.
        (bits/std_ostream.h): Likewise.

1999-07-18  Phil Edwards  <pedwards@ball.com>

	* docs/faq/index.html:  Updated __black_count notes, fixed typos.
	* docs/faq/index.txt:  Regenerated.

1999-07-15  Benjamin Kosnik  <bkoz@decepticon.cygnus.com>

	* testsuite/27_io/stringbuf.cc: Cccchanges, latent bugs.

	* bits/sstream.tcc (stringbuf::overflow): Modify accounting of
 	newly-allocated buffer.
	* bits/streambuf.tcc (streambuf::xsgetn): Aaaaaah. Fix final
 	overflow condition bits.

1999-07-14  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/std_sstream.h (stringbuf::_M_init_stringbuf): Set
	_M_buf_size to initial _M_string.size(), even though for
	ostringstreams it is pretty pointless. It's necessary for
	istringstreams.
	(stringbuf::str()): Adjust. 
	(stringbuf::str()): Adjust, call _M_init_stringbuf.
	* bits/streambuf.tcc (streambuf::xsgetn): Adjust return value for
	overflow's possible success.
	(streambuf::xsputn): Adjust.
	
	* testsuite/27_io/filebuf.cc: Adjust for the xsgetn re-write from
	yesterday.
	* testsuite/27_io/stringbuf.cc: Tweak.
	* testsuite/21_strings/inserters_extractors.cc (test01): Remove
	notes to myself.
	* testsuite/23_containers/vector_cons.cc: Rename to be consistent
	with other constructor tests to. . .
	* testsuite/23_containers/vector_ctor.cc: New file.
	
1999-07-14  Alfred Minarik <a8601248@unet.univie.ac.at>

	* testsuite/*: Changes to make the testsuit compilable with
	-fhonor-std. Contains direct qualification of library names with
	std::.

1999-07-13  Benjamin Kosnik  <bkoz@decepticon.cygnus.com>

	* bits/streambuf.tcc: Tweaks.
	(streambuf::xsputn): Optimize, fix for sstreams.
	(streambuf::xsgetn): Same.
	* bits/sstream.tcc (stringbuf::overflow): Adjust _M_buf_size
 	correctly, handle overflow/reallocate conditions correctly.
	* bits/std_sstream.h: Fix typo.
	_M_init_stringbuf(): Fix _M_buf_size initialization.
	(stringbuf::str()): Construct return string if output has occurred.

	* bits/basic_string.h: Fix typo from yesterday's patch.

1999-07-12  Ryszard Kabatek <kabatek@chemie.uni-halle.de>

        * bits/string.tcc: _M_mutate - clear _M_state again.
        * bits/basic_string.h: In the three functions that return
	an iterator set _M_state to -1 before return.
	Also optimized two cases of operator+.
	
1999-07-12  Phil Edwards  <pedwards@ball.com>

        * docs/index.html:  Expand egcs-1.1.2 notes/links.
        * docs/faq/index.html:  And here.  Add links to LWG issues-list.
        * docs/faq/index.txt:  Regenerate.  (lynx rocks)
        * docs/21_strings/howto.html:  Fix notes on case conversion.
        * docs/21_strings/stringtok_h.txt:  Goodly spelling...
        * docs/23_containers/howto.html:  Stub for bitmasks.
	* docs/27_io/howto.html: Add section on buffering, stub binary.
	
1999-07-12  Nathan Myers <ncm@cantrip.org>

	* stl/bits/stl_tree.h (__black_count): Optimize.

1999-07-09  Vadim Egorov  <egorovv@1c.ru>

        * src/basic_file.cc: Cleanup in __basic_file destructor.

1999-07-08  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/std_streambuf.h: Changes. . .
	* bits/streambuf.tcc: Merge xsputn from filebuf into xsputn in
	basic_streambuf, to be used for both filebufs and streambufs.
	* bits/std_fstream.h (_M_init_filebuf): New function.
	Take out specialized xsputn, put into basic_streambuf.
	* bits/fstream.tcc: Define, call from both ctors.
	* bits/std_sstream.h (_M_init_stringbuf): New function.
	* bits/sstream.tcc: Tweak.
	
	* docs/27_io/iostreams_hierarchy.pdf: New file.
	
	* docs/17_intro/CHECKLIST (basic_string<char>): Validation and
	acceptance. Wooo-hoo!

	* bits/char_traits.h: Change int_type for char_traits general
	template, so that 21_strings/capacity.cc will compile.
	* testsuite/21_strings/capacity.cc: Add operators.
	
	* bits/string.tcc (string::compare): Clean up, re-implement.
	* testsuite/21_strings/compare.cc: Tweak.
	
	* bits/string.tcc (string:_M_mutate): Keep leaked value in
	_M_state, which means that whenever begin() or end() has been
	called, the string is unshareable, period. By doing this, insert
	and erase member functions that return iterators can remain
	footloose and fancy free. 
	* testsuite/21_strings/invariants.cc: Update.

        * bits/basic_string.h (string::append): Fix self-referential
	problems, ie when "this" is also an argument to a member function.
        * bits/string.tcc: Tweak, same.
        * testsuite/21_strings/append.cc: New file.

1999-07-07  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/char_traits.h: Tweaks.
	* bits/basic_string.h: Tweak.
	* bits/fstream.tcc: Remove warning for _M_buf_size assignment.

1999-07-06  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/std_streambuf.h: Absorb/acquire data members previously
 	working in basic_filebuf.
	* bits/streambuf.tcc: Tweaks.
	* bits/fstream.tcc: Adjust.
	* bits/std_fstream.h: Move and rename the following functions:
 	_M_set_ideterminate, _M_is_indeterminate, _M_set_determinate are
 	now declared and defined in the base class, basic_streambuf.  Oh
 	fuck it, move data members _M_buf, and _M_buf_size into
 	basic_streambuf as well.

	* bits/ostream.tcc: Tweak.
	* bits/locale_facets.tcc: Fix typo in comments.

	* testsuite/21_strings/inserters_extractors.cc (test01): Change
 	state from good to not good, as eof() is set.

1999-07-05  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/char_traits.h (char_traits::compare). Fix.

	* config.guess, config.sub: Update.

1999-07-02  Ryszard Kabatek <kabatek@chemie.uni-halle.de>

        * bits/string.tcc: Check the __res_arg for a length error.

1999-07-01  Benjamin Kosnik  <bkoz@nabi.net>

	* bits/std_streambuf.h: Tweaks. Need to move _M_is_indeterminate
	and related functions into basic_streambuf, from basic_filebuf to
	take care of ostringstreams and empty strings. So that's groovy,
	or will be groovy.
	* bits/std_istream.h: Tweaks.
	* bits/istream.tcc: Implement ws, getline, operator>> for string.
	* bits/std_ostream.h: And here.
	* bits/ostream.tcc: Same.
	* src/misc-inst.cc: Add instantiations for ws.
	
	* src/string-inst.cc: Add instantiations for inserters and
	extractors (operators << and >>, getline).

	* testsuite/21_strings/inserters_extractors.cc: Amazingly enough,
	a testcase for getline and operators << and >>. Ostream tests are
	failing right now, but istream tests should work. . .

	* bits/string.tcc: Change _S_max_size, as GNU malloc won't budge.
	* bits/std_sstream.h: Revert.

	* testsuite/17_intro: header_[iosfwd, ios, iostream, iomanip,
	istream, ostream, streambuf, fstream, sstream].cc: New files.
	
1999-06-30  Ryszard Kabatek <kabatek@chemie.uni-halle.de>

	* bits/std_sstream.h (stringbuf::sync): Don't use string::begin()
	and string::end().
	
        * bits/basic_string.h (basic_string<>::_S_copy_chars): Add
	specializations for _CharT*, iterator and const_iterator.
	* src/string-inst.cc: Remove explicit instantiation, as
	now explicitly specialized.

	* bits/basic_string.h: Add a size_type parameter to _M_clone with
	a default value set to 0.
        * bits/string.tcc: In _M_clone by the call of _S_create add the
	value of the new parameter to _M_length.  In reserve check
	_M_state and use _M_clone instead of _M_mutate.

1999-06-30  Benjamin Kosnik  <bkoz@happy.cygnus.com>	

	* bits/basic_string.h: Fix _S_max_size.
	* bits/string.tcc: Add def here.
	* testsuite/21_strings/insert.cc: Fix.
	
	* bits/sbuf_iter.h: Remove detritus.
	* testsuite/24_iterators/istreambuf_iterator.cc: Add tests.

	* src/locale-inst.cc: Elaborate iterator/locale instantiations
	to resolve alpha-osf4 build problems.

1999-06-29  Benjamin Kosnik  <bkoz@happy.cygnus.com>	

	* bits/string.tcc: Fix signed/unsigned issues in compares.
	* stl/bits/stl_deque.h: And here.
	* stl/bits/stl_string_fwd.h: Remove __get_c_string.

1999-06-29  Ryszard Kabatek <kabatek@chemie.uni-halle.de>
 
         * bits/string.tcc: New implementation and interface of _M_mutate.
           Adapt the change in all functions that call _M_mutate.
         * bits/basic_string.h: And here.

1999-06-29  Benjamin Kosnik  <bkoz@happy.cygnus.com>

	* testsuite/21_strings/capacity.cc (test01): Fix.

1999-06-29  Phil Edwards  <pedwards@ball.com>

        * mknumeric_limits:  Exit script if gen-num-limits isn't built.
	
1999-06-29  Andreas Gruenbacher  <agruenba@pent224.infosys.tuwien.ac.at> 

	* stl/bits/stl_vector.h: Fix.
	* testsuite/23_containers/vector_cons.cc: Add.
	
1999-06-29  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* mknumeric_limits (LDFLAGS): fix.

1999-06-29  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* mknumeric_limits (LDFLAGS): set it according to the system.

	* math/mathconf.h (NAN): Check whether host is running under
	Cygwin and make the appropriate definition.
	* math/complex-stub.h (nan): protect declaration.

1999-06-28  Benjamin Kosnik  <bkoz@haight.constant.com>

	* bits/sbuf_iter.h: Rename internal data structure to prevent
	confusion between basic_ios and istreambuf_iterators internal
	basic_streambuf data member.
	* testsuite/24_iterators/istreambuf_iterator.cc: New file.

	* bits/basic_string.h: Remove conditionals, add input_iterator
	version of S_construct again.
	* bits/string.tcc: Same.
	* src/string-inst.cc: And add explicit instantiation here.
	
	* src/gen-c++config.cc (_GNU_SOURCE): Take out both _GNU_SOURCE
	and __USE_GNU macro defines, as single __USE_GNU use leading to
	confusion on glibc2.1 systems (ie, RedHat 6.0).
	
	* src/Makefile.am (headers): Add std_utility to installed headers.

1999-06-25  John Potter  <jpotter@eagle.lhup.edu>

	* stl/bits/stl_tree.h (insert_unique): Revert, just fix insert_equal.

1999-06-25  Gilles Zunino  <Gilles.Zunino@hei.fr>

	* mknumeric_limits (LDFLAGS): Swap -lc and -lgcc.

1999-06-24  Benjamin Kosnik  <bkoz@tintin.cygnus.com>

	* src/gen-c++config.cc (_GLIBCPP_*): Change all
	macros to include _GLIBCPP as a distinct namespace.
	* bits/*: And here.
	* src/*: And here.
	
	* stl/bits/std_stdexcept.h: Forward-declare __Named_exception ctor.
	* bits/basic_string.h: Remove __get_c_string.
	* src/stdexcept.cc: Define ctor here.
	* bits/ios_base.h: And fix ios_base::failure as well.
	* src/ios.cc: Define here. 
	
	* bits/std_streambuf.h: Add a private copy ctor and assignment
	operator wrapped in _G_RESOLVE_LIB_DEFECTS.
	* bits/ios_base.h: And here too.
	
	* bits/basic_string.h: Tweak.
	* testsuite/21_strings/nonmember.cc: Add operator+ tests.

	* src/valarray.cc: Rename to. . .
	* src/valarray-inst.cc: This.
	* src/Makefile.am (sources): Change here.
	* src/Makefile.in: Regenerated.
	
1999-06-24  Vadim Egorov  <egorovv@1c.ru>

        * bits/string.tcc(basic_string<>::_Rep::_S_create): Fixed
        allocated size

1999-06-24  Benjamin Kosnik  <bkoz@tintin.cygnus.com>
            Tom Tromey  <tromey@cygnus.com>
	
	* configure.in (use_glibc2): Eek, correct for non-glibc systems.
	Use AM_CONDITIONAL to get us out of this jam. . 
	* libio/Makefile.am: Same.
	* */Makefile: Regenerated.

1999-06-24  Benjamin Kosnik  <bkoz@tintin.cygnus.com>
            John Potter  <jpotter@eagle.lhup.edu>

	* stl/bits/stl_tree.h (insert_equal): Fix.
	* testsuite/23_containers/multiset.cc: New file.
	
1999-06-23  Benjamin Kosnik  <bkoz@cygnus.com>

	* configure.in (test for glibc2): Correct AC_TRY_COMPILE so that
	this works correctly on glibc-2 systems. This should allow
	simplified linking on these systems, and successful linking on Red
	Hat 6.0 systems.
	* configure, Makefile: Regenerate.
	
	* bits/std_cwctype.h: Add missing 'w' to _S_iswpunct_helper name. 
	
	* testsuite/ext: New directory.
	* testsuite/ext/headers.cc: New file.

1999-06-23  Vadim Egorov  <egorovv@1c.ru>

        * stl/ext/hash_set: include missing headers
        * stl/ext/hash_map: Same
        * stl/ext/slist: Same

1999-06-17  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* bits/std_cmath.h: comment out modf. Kills build on hpux10.20

1999-06-15  Benjamin Kosnik  <bkoz@cygnus.com>

	* src/Makefile.am (sources): Regenerate.
	* mkcheck: Add TESTS_FILE as a way of controlling what testcases
	are run.

1999-06-14  Benjamin Kosnik  <bkoz@cygnus.com>

	* src/string-inst.cc: Change _S_construct signature, to
	track requested allocation size versus valid input iterator range.
	* bits/basic_string.h: Here too.
	* bits/string.tcc: And here.

1999-06-12  Benjamin Kosnik  <bkoz@cygnus.com>

	* mkcheck (LOG_FILE): Correctly append errors. 

	* stl/bits/stl_iterator.h: Revert previous, delirious, change.

	* bits/basic_string.h: Change _Rep::_M_data to _Rep::_M_refdata,
	to clarify differences between basic_string::_M_data() calls and
	_Rep::_M_data() calls.
	* bits/std_string.h: Fix.
	Put in check for out_of_range in substr.
	* bits/string.tcc:  Fix for _S_find.

	* testsuite/21_strings/compare.cc: Add tests.
	* testsuite/21_strings/find.cc: New file.
	* testsuite/21_strings/substr: New file.
	* testsuite/21_strings/replace.cc: New file.
	
1999-06-11  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* bits/valarray_array.h: __restrict__ify pointers.

	* bits/std_valarray.h: Tweak.
	(valarray<T>::cshift, valarray<T>::shift): use __builtin_alloca.

	* bits/gslice_array.h: Tweak. Reflect changes in bits/gslice.h

	* bits/gslice.h: Tweak.
	(class gslice::_Indexer): new class.
	(gslice::gslice(const gslice&)): implement copy-ctor to support
	ref-counted index. 
	(gslice::operator=(const gslice&)): support ref-counted index.
	(gslice::_M_convert_to_index): delete.

	* src/valarray.cc: New file.
	(__gslice_to_index): turn a gslice into a valarray<size_t>
	(ctor gslice::_Indexer::_Indexer): implement.

	* src/Makefile.am (sources): add valarray.cc
	* src/Makefile.in: regenerate.

1999-06-08  Benjamin Kosnik  <bkoz@cygnus.com>

	* stl/bits/stl_iterator.h (__normal_iterator::const_iterator
	ctor): Put in a const_cast.

	* testsuite/21_strings/invariants.cc: New file.

	* testsuite/21_strings/insert.cc: Add exception handling bits.
	* testsuite/21_strings/ctor_copy_dtor.cc: Same.

	* src/wstring-inst.cc: Add c++config.h include.

	* bits/basic_string.h: Fix const operator[] for size == pos.
	Add _M_leak for rbegin, non-const.
	Add _M_leak for rend, non-const.
	Make member function at standards conformant.
	Add _S_terminal to _Rep for operator[] const, add this into
	c_str() as well.
	* bits/string.tcc: Add static member definition here,
	temporarily.
	
	* testsuite/21_strings/element_access.cc: Add tests.

1999-06-08  Vadim Egorov  <egorovv@1c.ru>

         * bits/fstream.tcc (_M_really_overflow): Fixed size of
         conversion buffer.

1999-06-08  Phil Edwards  <pedwards@ball.com>

        * bits/fstream.tcc (basic_filebuf::xsputn):  Fix off-by-one count
          caused when __testinit is true.
        * bits/ostream.tcc (basic_ostream::op<<(streambuf*)):  Write buffer
          using rdbuf()->sputn rather than _M_fnumput->put.

1999-06-08  Benjamin Kosnik  <bkoz@tintin.cygnus.com>

	* testsuite/23_containers/bitset_ctor.cc: New file.
	* stl/bits/std_bitset.h (__BITSET_WORDS): Fix integration bug.

1999-06-08  Phil Edwards  <pedwards@ball.com>

        * bits/fstream.tcc (basic_filebuf::underflow):  Fix, rename local vars.

1999-06-07  Benjamin Kosnik  <bkoz@tintin.cygnus.com>

	* testsuite/21_strings/element_access.cc: Finish off these tests.
	* testsuite/21_strings/insert.cc (test01): Uncomment.
	* testsuite/21_strings/ctor_copy_dtor.cc (test01): Finish off ctors.
	* bits/basic_string.h: Tweak, okay, fix for real this time.
	* bits/string.tcc: Same.
	* bits/char_traits.h: Tweak.

1999-06-07  Benjamin Kosnik  <bkoz@tintin.cygnus.com>

	* bits/std_cmath.h: Example of how to use the generated macro.
	* acconfig.h: Add macro for sinf here.
	* configure.in (LIBS): Add test for builtin math function sinf.
	* configure: Regenerated.
	
	* bits/basic_string.h: Fix _S_max_size.

1999-06-06  Benjamin Kosnik  <bkoz@tintin.cygnus.com>

	* bits/basic_string.h: Fixes for out-of-memory segv for large strings.
	Remove _S_construct signature for forward_iterator_tag and
	input_iterator_tag.
	Clean _M_fold.
	* src/string-inst.cc: Same, tweaks. 
	* bits/string.tcc: Same, tweaks.

	* testsuite/21_strings/ctor_copy_dtor.cc: Add/clarify tests.
	* mkcheck (LOG_FILE): Fix filebuf-[2,3].tst checks.
	* mknumeric_limits (LD_FLAGS): Add -nodefaultlibs -lc -lgcc as per
	Gaby.

	* src/locale.cc: Final separation for char/wchar_t bits.

1999-06-05  Phil Edwards  <pedwards@ball.com>

        * docs/index.html:  Added link to book upon request'n'agreement.
        * docs/23_containers/wrappers_h.txt:  Added.
        * docs/{23_containers,27_io}/howto.html:  Added sections.

	* bits/std_fstream.h: Tweak.
	
1999-06-05  Benjamin Kosnik  <bkoz@tintin.cygnus.com>

	* src/ios.cc: Same here.
	* bits/std_iosfwd.h: More wchar_t defines.

	* bits/basic_string.h: Tweaks. 
	* bits/string.tcc: Tweak. Fix _S_construct to check for max_size
	when doing error checking, as per LWG defect #83.
	
	* src/gen-c++config.cc: Fix comment.
	
	* testsuite/21_strings/ctor_copy_dtor.cc: New file, checks ctors,
	assignments, dtors.
	* testsuite/21_strings/element_access.cc: New file, checks for
	operator[], at(...).
	* testsuite/21_strings/insert.cc: New file, tests string::insert.
	* testsuite/21_strings/char_traits.cc: New file, tests
	for char_traits<char>.
	
	* bits/utility.h: Remove, again.
	* src/Makefile.am (std_headers): Remove utility.h.
	* src/Makefile.in (std_headers): Regenerate.

	Alfred Minarik <a8601248@unet.univie.ac.at>
	* bits/basic_string.h: Move __out_of_range and __length_error into
	namespace std.

1999-06-05  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* testsuite/26_numerics/modf_float.cc: New file.

	* bits/std_cmath.h (modf(float, float*)): Fix signature. Correct
	typo: use ::modff, not ::modf.

1999-06-03  Vadim Egorov  <egorovv@1c.ru>

        * bits/string.tcc (basic_string::_M_mutate): Fixed memory
        allocation error
	* testsuite/21_strings/capacity.cc (test01): Test.
	
1999-06-03  Phil Edwards  <pedwards@ball.com>

        * bits/fstream.tcc:  Re-order inits to stop warnings.  Comment/move
          unused variables to within #if 0 blocks to do the same.
        * bits/std_fstream.h:  Fix typos (one prevents compilation).

1999-06-03  Benjamin Kosnik <bkoz@pacifica.cygnus.com>

	* src/wstring-inst.cc: Fix.

1999-06-02  Benjamin Kosnik <bkoz@madcow.cygnus.com>

	* bits/char_traits.h: Add _G_USE_WCHAR_T macro guards.
	* stl/bits/stl_string_fwd.h: Same.
	* bits/locale_facets.h: Same.
	* bits/locale_facets.tcc: Same.
	* src/wstring-inst.cc: And here.
	
	* src/gen-c++config.cc: Comment _G_USE_WCHAR_T. Leading to
 	problems on HPUX 10.20.  
	* your-build-directory-here/bits/c++config.h: Just kidding, do it
 	here as a temporary hack till the compiler/host problems get
 	worked out.

	* bits/locale_facets.tcc (num_get::do_get): Change from ifdef
 	HAVE_STRTOLD to HAVE_STRTOLD && !(__hpux). Apparently, problems
 	converting "long double" to struct long_double. Probably should be
 	done with one macro (HAVE_STRTOLD) at configure time.

	* bits/std_cmath.h: Comment out pow(double, int) definition as
 	gives re-declaration under hpux10.20. Revert previous change, as
 	kills linux/x86, solaris 2.7, hpux builds. These should be done
 	using autoconf, see std_cctype.h and the solutions started in
 	configure.in (see config.h for the generated file.)

	* mknumeric_limits (LDFLAGS): Remove '-nodefaultlibs -lc', as
 	-nodefaultlibs prevents linking under HPUX 10.20 as __main is not
 	defined.

	* docs/index.html: Add some useful links.
	* docs/17_intro/contribute.html: Fix broken links.

1999-06-02  Benjamin Kosnik <bkoz@rhino.cygnus.com>

	* mkcheck (LOG_FILE): Add !/bin/bash instead of cygnus-style
	paths. The rest of the world should be able to run this script
	now.

	* src/Makefile.am ($(generated_headers)): Remove comment.
	* Makefile*: Regenerate.
	
	* bits/std_locale.h: Remove detritus.
	* bits/localefwd.h: Add <cctype> include to undefine the isspace
	macro.

1999-06-01  Benjamin Kosnik  <bkoz@tintin.cygnus.com>

	* src/gen-c++config.cc: New file. Making c++config.h at configure
	time by catting this file (nee bits/config.h) with the build
	directories config.h. This is not a complete or perfect solution
	but is better than what was in place previously. 
	* bits/c++config.h: Rename/move to above.
	* src/Makefile.am (headers): Remove c++config.h.
	(myinstallheaders). Add.
	* Makefile*: Regenerated.

	* bits/std_cwchar.h: Add include of c++config.h for HAVE_*
	definitions, so that wmemcmp, wcslen, wmemchr, etc are properly
	declared only if not present in the host's wchar.h.

	* bits/locale_facets.tcc (std): Change _G_USE_STRTO* to HAVE_STRTO*.
	
	* bits/std_cmath.h: Define out, for the moment. Linux has no
	__buitin_fsqrtl? Probably need some kind of configure trickery
	here as well.

	* src/Makefile.*: Regenerate.
	* bits/c++config.h: Add config.h include.

	* bits/std_cwchar.h: Remove remaining #error guard.
	
	* acconfig.h: Add bits for HAVE_LC_MESSAGES.

	* configure.in (LIBS): Replace previous effort for mbstate_t and
	strtold/strtof with this implementation.

1999 06-01  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* bits/std_cmath.h: Tweak. Add more functions. Use __builtin_xxx
	whenever possible.

1999-05-28  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/locale_facets.tcc (std): Eek: this left in. Autoconf bits
	for determining mbstate_t differences across various hosts not
	finished. 

1999-05-26  Benjamin Kosnik  <bkoz@nabi.net>

	* bits/locale_facets.tcc: Change to ifdef.

	* bits/std_sstream.h (stringbuf::setbuf): Remove dynamic_cast.
	* bits/std_fstream.h (filebuf::setbuf): Same.

	* bits/std_istream.h: Add ws declaration.
	* bits/istream.tcc: Stub out definition.
	
	* docs/index.html: Fix broken link for design.txt.

	* configure.in: Test for mbstate_t. If wchar.h doesn't have it,
	then set _G_NEED_MBSTATE_T.
	* configure: Regenerate.
	* bits/c++config.h: Move mbstate_t define.
	* bits/std_cwchar.h: To here.

1999-05-25  Ryszard Kabatek <kabatek@chemie.uni-halle.de>

        * bits/std_sstream.h:
          basic_stringbuf<>::basic_stringbuf: fix.
          basic_stringbuf<>::setbuf: 
          remove the temporary __string_type object,
          remove the unnecessary dynymic_cast in the return value,
          change the type of the returned value from __streambuf_type*
          to basic_stringbuf<_CharT, _Traits, _Alloc>*.

1999-05-25  Phil Edwards  <pedwards@ball.com>

	* bits/std_streambuf.h (streambuf::setbuf): Always return streambuf*. 

1999-04-25  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* bits/std_cmath.h: Tweak. Add float versions of the math functions
	in <math.h>.  <cmath> still incomplete and incorrekt.

1999-05-24  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* mknumeric_limits (LDFLAGS): set appropriate link flags.
	
1999-05-23  Phil Edwards  <pedwards@ball.com>

	* docs/17_intro/howto.html:  Added links to text docs,
	e.g., BUGS. 
	* docs/21_strings/howto.html:  Updated sections and links.
	* docs/21_strings/{gotw29a.txt,stringtok_h.txt}:  Added.
	* docs/faq/index.html:  Updated what-works for sixth
	snapshot. Also a number of "internal" links have been
	fixed, now that the web pages are the docs directory...
	* docs/faq/index.txt: Regenerated.
	
1999-05-21   Benjamin Kosnik  <bkoz@tintin.cygnus.com>

	* bits/basic_string.h: Add Nathan's documentation on the string class.

	* testsuite/27_io/ios_members_static.cc: New file, for testing
 	ios_base::sync_with_stdio.

1999-05-21   Benjamin Kosnik  <bkoz@tintin.cygnus.com>

	* bits/std_locale.h: Simplify includes.
	* bits/loccore.h: Delete.
	* bits/localefwd.h: Renamed, trimmed.
	* bits/locfacets.h: Delete.
	* bits/locale_facets.h: Rename, expanded.
	* bits/loccore.tcc: Deleted.
	* bits/locfacets.tcc: Deleted.
	* bits/locale_facets.tcc: Resultant merge.
	* bits/std_fstream.h: Modify include.
	* bits/ostream.tcc: Same.
	* bits/istream.tcc: Same.

	* src/locale-inst.cc: And here.
	* src/locale.cc: Ditto. 
	* src/Makefile.am: Updated.
	* src/Makefile.in: Rengenerated.

	* bits/std_istream.h: Move istream::sentry ctor definition.
	* bits/istream.tcc: Move istream::sentry ctor here.
	Add more detailed locale include here for ctype member functions.
	* bits/ostream.tcc (std): And here.

	* bits/sbuf_iter.h: Include std_streambuf.h

	* bits/locfacets.h: Start separating this into a localeimp.h file.
	* bits/loccore.h: Start separating this into a localefwd.h file.
	Add std_climits for CHAR_BIT.
	
	* bits/ios_base.h (ios_base::sync_with_stdio): Stub in.

	* bits/char_traits.h: Tweak.

	* bits/ios_base.h: Remove INT_MAX, use 1<<16.

	* bits/std_ostream.h: Remove c++config.h include.
	* bits/std_istream.h: Same.
	* bits/std_streambuf.h: Same.
	* bits/std_fstream.h: Same.
	* bits/std_sstream.h: And here.
	
	* bits/std_iosfwd.h: Add _G_RESOLVE_LIB_DEFECTS here for streampos.
	* bits/char_traits.h: Add include of std_cwchar.h for mbstate_t.
	* bits/fpos.h: Tweak, format.

	* std/ciso646: New file.
	* bits/std_ciso646.h: New file.
	* src/Makefile.am (std_headers): Add ciso646.
	(headers): Add bits/std_ciso646.h.
	* src/Makefile.in: Regenerate.
	* testsuite/17_intro/header_ciso646.cc: New file, disable
	equivalance tests.
	
	* bits/fpos.h: Remove libio.h include.
	* bits/basic_file.h: And here.
	* bits/std_ios.h: Put here.

	* src/ios.cc: Simplify includes, tweak.
        * bits/std_ios.h: Simplify include order. 
	* bits/ios_base.h: Modify ios_base::failure.

	* stl/bits/std_numeric.h: Change include from stl_iterator to
	std_iterator.
	
1999-05-19  Benjamin Kosnik  <bkoz@tintin.cygnus.com>

	* std/iostream: Remove static member __ioint.
	* bits/std_iostream.h: Put here.

	* stl/bits/std_numeric.h: Remove unneccessary std_iostream.h include.
	* stl/bits/stl_algobase.h: Same.
	* testsuite/27_io/iostream_objects.cc: Regression tests.
	* testsuite/27_io/hello.cc: Remove, subset of above.
	
1999-05-19  Phil Edwards  <pedwards@ball.com>
	
	* docs/index.html: Tweak, update.

1999-05-18  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* docs/17_intro/RELEASE-NOTES: remove outdated
	documentation about numeric_limits. Correct CXXINCLUDE setting
	documentation.

1999-05-18  Phil Edwards  <pedwards@ball.com>

        * docs/{17_intro,18_support,19_diagnostics,20_util,21_strings,
          22_locale,23_containers,24_iterators,25_algorithms,26_numerics,
          27_io}/howto.html:  Created, with some initial entries.
        * docs/faq/index.html:  Fixed some links.
        * docs/faq/index.txt:  Regenerated.

1999-05-18  Benjamin Kosnik  <bkoz@tintin.cygnus.com>

	* bits/c++config.h (__GLIBCPP__): Set version to 19990518.

	* docs/17_intro/RELEASE-NOTES: Update.
	* docs/index.html: Correct link to mailing list help page, update News.
	* docs/faq/index.html: Change fifth to sixth for snapshot.
	
	* src/Makefile.am (myinstallheaders): Bring over Gaby's changes to
 	install $(top_builddir)/bits/std_limits.h into
 	$(myincludepfx)/bits. This was mistakenly omitted from yesterday's
 	Makefile.am changes.
	* *Makefile*: Regenerate using automake.

	* mkcheck (LOG_FILE): Fix filebuf directory oddness.
	* testsuite/27_io/filebuf.cc: Same.

1999-05-18  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* docs/17_intro/CHECKLIST: update.
	* docs/17_intro/TODO: update.

1999-05-17  Phil Edwards  <pedwards@ball.com>

	* docs/{17_intro,18_support,19_diagnostics,20_util,21_strings,
	  22_locale,23_containers,24_iterators,25_algorithms,26_numerics,
	  27_io}/howto.html:  Created, with some initial entries.
	* docs/faq/index.html:  Fixed some links.
	* docs/faq/index.txt:  Regenerated.
	
1999-05-17  Benjamin Kosnik  <bkoz@unhappy.cygnus.com>

	* src/Makefile.am (myinstallheaders): Missed removing missing.h. 
	* Makefile.in*: Regenerate.

1999-05-17  Benjamin Kosnik  <bkoz@happy.cygnus.com>

	* bits/std_streambuf.h: Same.

	* bits/loccore.h (_Bad_use_facet): Remove bits warned about.
	* bits/locfacets.h (std): Same.
	* bits/sstream.tcc: Same.
	* testsuite/27_io/stringstream.cc: Tweak.

	* testsuite/27_io/filebuf.cc: Adjust.
	* testsuite/21_strings/capacity.cc (test01): Add more
	string::reserve tests.

	* bits/c++config.h: Remove broken CCTYPE.
	* bits/std_cctype.h: Tweak, remove de-macroization, enable
	sequestered topper implementation.	
	* bits/std_cwctype.h: Same.
	
	* bits/missing.h: Remove.
	* bits/std_locale.h: Remove missing.h include.
	
	* stl/bits/std_bitset.h (bitset::bitset(string): Tweak to compile.
	
	* src/Makefile.am (headers): Add bits/std_cwctype.h.
	INCLUDES: Add top_builddir. 
	* src/Makefile.in: Regenerate.

	* Makefile.am: Add check and check-install as new targets.
	* testsuite/make_check_libfree++: Move to. . .
	* mkcheck: Here.
	* configure.in: Tweak versions.
	* mknumeric_limits: Set paths correctly.
	
1999-05-17  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
	
	* src/Makefile.in (myinstallheaders): add rule to install
	std_limits.h. 
	
	* bits/slice.h (class slice): don't const-qualify data members
	since the copy and assignment operator is implicitly used. The
	valarray specification is definitively a bad one.
	
	* Makefile.in (generate-limits-sources): fix typo.
	
	* docs/text/TODO: update.
	* docs/text/CHECKLIST: update.

	* bits/gslice.h (gslice): fix bugglet.
	(gslice::gslice): set _M_index_size to 0 whenever given lengths
	(lj) of size zero.

	* src/Makefile.am (libstdc___la_SOURCES): add gen-num-limits.
	* src/Makefile.in (libstdc___la_SOURCES): keep in sync.
	[Note: **/Makefile.in should be generated from the corresponding
	Makefile.am.  The current situation is a litte chaotic.  ]

1999-05-16 Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* mknumeric_limits: tweak.

	* Makefile.in (all): add target generate-limits-sources.
	(generate-limits-sources): make a directory bits/ in top_builddir
	where the generated std_limits.h is put; generate limitsMEMBERs.cc
	directly under $(top_builddir)/src. Remains to put the appropriate
	rule for installing std_limits.h.
	
	* src/Makefile.in (headers): remove bits/std_limits.h to this list.
	(INCLUDES): add -I$(top_builddir) for bits/std_limits.h which is
	now generated at build-time in the build directory
	(libstdc___la_SOURCES): remove limitsMEMBERS.cc form this list
	* src/Makefile.am: reflect changes in src/Makefile.in

1999-05-12  Phil Edwards  <pedwards@ball.com>

	* docs/faq/index.html: Add more entries (5.4,5.5), finish
	all but one empty entry.  Add links for HOWTOs, but no files yet.
	(Corrected HOWTO links are for bkoz's new scheme.)
	* docs/faq/index.txt: Regenerated.
	
1999-05-12  Benjamin Kosnik  <bkoz@happy.cygnus.com>

	* testsuite/17_intro/headers.cc: New file.
	* stl/bits/std_queue.h: Change stl_bvector.h include path.
	* bits/std_cwctype.h: New file.
	
	* testsuite/27_io/filebuf.cc: Need to tweak directory structure.

1999-05-11  Benjamin Kosnik  <bkoz@loony.cygnus.com>

	* stl/bits/stl_config.h (__USE_MALLOC): Change underlying allocator.
	Check __USE_MALLOC before defining specializations containing
	__default_alloc_template.
	* src/stl-inst.cc: Here too.

	* bits/basic_string.h: Change.

	* testsuite/make_check_libfree++: More tweaks.
	* testsuite/21/capacity.cc: New file.
	
	* src/string.cc: Rename to be consistent with other inst files. 
	Rename to string-inst.cc.
	* src/string*.cc: Change include.
	* src/wstring.cc: Rename to wstring-inst.cc.
	* src/wstring*.cc: Ditto.
	* src/Makefile.in: Also here.
	* src/Makefile.am: Ditto.

	* src/traits.cc: Remove.
	* src/wtraits.cc: Same.

	Try a new way of organizing documentation, one with synchronicity
	between testsuites and docs subdirectories, and see who yelps.
	* docs/html: Remove, use chapter and subject specific directories
	instead of forcing things immediately into format of
	documentation.
	* docs/text: Same.
	* docs/image: Same.
	* docs/faq/text, docs/faq/html: Remove, put in the docs/faq
	directory and sort by filename and extension.
	* docs/17_intro, 18_support, 19_diagnostics, 20_util, 21_strings,
	22_locale, 23_containers, 24_iterators, 25_algorithms,
	26_numerics, 27_io: Add.
	* docs/17_intro/*: Populate with all the text files. . .
	* docs/index.html: Construct.
	
	* testsuite/*: Update with same names as the docs subdir.
	* testsuite/results: Where to stash conformance results for the
	different snapshots, so that progress/size/speed issues can be
	tracked over time.
	
1999-05-10  Benjamin Kosnik  <bkoz@loony.cygnus.com>
	
	* src/string.cc: Add _S_copy_chars instantiation, as well as
 	string::binary operators !=, ==, etc.

	* src/Makefile.am (CXXFLAGS): Remove -fvtable-thunks.
	* src/Makefile.in (CXXFLAGS): Same here.
	* testsuite/make_check_libfree++ (CXX_FLAG): And here.
	
1999-05-07  Benjamin Kosnik  <bkoz@cygnus.com>

	* src/string.cc:  Add missing member functions to instantiation list.

1999-05-07  Benjamin Kosnik  <bkoz@cygnus.com>

	* src/misc-inst.cc: Remove unused string instantiations.

	* bits/string.tcc: Tweak, fix.
	* bits/basic_string.h: Format. Fix reported error with c_str().

	* testsuite/make_check_libfree++: Tweak for shared builds.
	* testsuite/21/operations.cc: New file for testing c_str() etc.

1999-05-06  Benjamin Kosnik  <bkoz@cygnus.com>
            Ryszard Kabatek  <kabatek@chemie.uni-halle.de>

        * stl/bits/stl_vector.h: Fix the code of vector<> for usage with
	an iterator class.  Delineate pointer versus iterator differences
	in implementation.
	* 23/vector_capacity.cc: New file, tests for above.
	
1999-05-06 Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* mknumeric_limits: Fix typo. 'unsigned lont' should read
	'unsigned long'.
	* src/Makefile.am (libstdc___la_SOURCES): add limitsMEMBERS.cc,
	generated by mknumeric_limits to the list. Now std_limits.h is
	basically working. 
	* src/Makefile.in (generate-numeric-limits): new target to handle
	automatic generation of bits/std_limits.h and src/limitsMEMBERS.cc.
	(all): add target generate-numeric-limits.
	(libstdc___la_OBJECTS): add limitsMEMBERS.lo
	(libstdc___la_SOURCES): add limitsMEMBERS.cc

1999-05-05  Benjamin Kosnik  <bkoz@cygnus.com>

	Irix build issues.
	* bits/c++config.h (_G_USE_CTYPE_ISBIT): Defines new macro for
	mask values in ctype_base. Move hacks for _ISBit to locfacets.h.
	* bits/locfacts.h: Here.

1999-05-05  Benjamin Kosnik  <bkoz@cygnus.com>
	    Ulrich Drepper <drepper@cygnus.com> 

	Solaris build issues.
	* bits/c++config.h: Define new macros, _G_USE_STRTOF and
 	_G_USE_STRTOLD.
	
	* bits/locfacets.tcc (num_get::do_get): Tweak long double and
 	float overloads to use the above macros. Account for the lack of
 	strtold on some systems, and revert back to using sscanf.

1999-05-04  Ryszard Kabatek <kabatek@chemie.uni-halle.de>

        * bits/locfacets.tcc (num_get::do_get): Check the errno variable.
	Use strtoul/strtoull for unsigned types.  Check the ranges for
	short/unsigned short and if necessary for int/unsigned int.

1999-05-04  Benjamin Kosnik  <bkoz@cygnus.com>

	* src/gen-num-limits.cc (round_style): Need to use mknumericlimits
	to generate bits/std_limits.h now, as the SGI std_limits.h is
	being depricated. Not done, but should be done immediately: need
	to make sure this script is run as part of the configuration
	process, because without it "make" in a configured build directory
	will fail. Also tweaked: added a space for float_round_style, and
	used static_cast of zero to default-initialize, which should be ok
	according to the standard. (see 8.5 p5 and 20.1.3).
	* mknumeric_limits (OUT_C): Need this for x86 long
	double extensions.
	
	* bits/basic_file.h: Include libio.h, not libioP.h.
	* src/basic_file.cc: And add libioP.h include here, so that
	_IO_init, et. al are well-declared.

	* testsuite/make_check_libfree++ (LIB_PATH): Test installed
	headers, not source directory headers.

	* src/Makefile.am (headers): Add stl_range_errors.h, also adjust
	for ext/*.  Also add basic_file.h.
	* src/Makefile.in (headers): Same.
	
	* bits/std_string.h: Reduce dependencies for faster
	pre-processing. Move istream and ostream specific defines into
	istream.tcc and ostream.tcc respectively.
	* bits/string.tcc: And here.
	* bits/basic_string.h: Move getline inline out-of-line, and to
	istream.tcc.
	* bits/istream.tcc: Move string::getline and operator>> here.
	* bits/ostream.tcc: And here too.

	* bits/utility.h: Remove, as clashes with a standard header. Put
	__OUTOFRANGE and __LENGTHERROR macros into string.tcc for the time
	being, until this can be combined with SGI's approach.
	* bits/string.tcc: Add macros, as above.
	* bits/loccore.h: Add _Count_ones defines.
	* bits/std_string.h: And here too.
	* bits/std_locale.h: And here.
	* bits/std_ios.h: Take out include here.
	* src/Makefile.am (headers): Remove utility.h
	* src/Makefile.in (headers): Remove utility.h

	* stl/bits/*: Update to SGI STL 3.20.
	* stl/ext/pthread_alloc: Delete this file.
	
1999-05-04 Phil Edwards <pedwards@ball.com>

	* docs/faq/html/index.html: Add more entries
	* docs/faq/html/index.txt: regenerated.

1999-05-04 Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* src/gen-num-limits.cc (DO_DEFINE_MIN_MAX): fix typo.

1999-04-29  Benjamin Kosnik  <bkoz@haight.cygnus.com>

	* bits/locfacets.tcc (num_get::do_get): Re-implement, with input
	from Ulrich and Nathan. Remove extraneous string class usage,
	tweak, clean, simplify and consolidate with a eye towards removing
	duplcate code. Use strto[l, ll, f, d, ld] instead of sscanf.
	Not done: dealing with leading zeros, wchar_t work.
	* bits/locfacets.h: And here too.

	* doc: Remove.
	
1999-04-29  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* docs/: add a FAQ.
 	* docs/faq/: New directory.
	* docs/faq/html/: Likewise.
	* docs/faq/text/: Likewise.
	* docs/faq/html/index.html: New file.
	* docs/faq/html/index.txt: Likewise. Generated from 
	docs/faq/html/index.html by lynx.

1999-04-28  Benjamin Kosnik  <bkoz@happy.cygnus.com>
	    Ryszard Kabatek and Branko Cibej 

	* bits/locfacets.tcc: Modify.

1999-04-27  Benjamin Kosnik  <bkoz@happy.cygnus.com>

	* bits/sbuf_iter.h: Clean, fix istreambuf_iterator, make
	conformant to 14882, wrap non-standard extensions with
	_G_RESOLVE_LIB_DEFECTS, remove detritus and cruft, rennovate.
	* bits/locfacets.tcc (num_get::do_get(bool)): Return correct iterator.
	
	* testsuite/27/istringstream_formatted.cc: Add tests.
	
	* bits/locfacets.h: Remove cruft from _Format_cache, continue
	commenting, simplify.
	* bits/locfacets.tcc: Same.

	1999-04-27  Ryszard Kabatek  <kabatek@chemie.uni-halle.de>
        * bits/locfacets.tcc (num_get::do_get):
        Fix the sscanf format parameter 
        for long long 'll' (as in C9X) instead of 'l'.
        Fix the order of sscanf format parameters: "%dl" --> "%ld".
        Change the type of the local variable '__conv' from 'string'
        to 'const char*' and adapt the change.
	
1999-04-26  Benjamin Kosnik  <bkoz@happy.cygnus.com>

	* bits/locfacets.h: Document _Format_cache, and name data members
 	after the corresponding functions in numpunct. For instance:
 	_M_grsep -> _M_thousands_sep, and _M_decsep -> _M_decimal_point.
	Break apart _M_boolnames{2] into _M_truename and _M_falsename.
	* bits/locfacets.tcc: Same.

	* bits/locfacets.h (num_get::_M_extract): Don't allow groupings to
 	stop parsing--store for later analysis.
	* testsuite/27/istringstream_formatted.cc: Add cases.
	
1999-04-25  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* bits/valarray_meta.h: tweak.
	(_UnFunBase, _BinFunBase, _BinFunBase1, _BinFunBase2, _BinBase1,
	_BinFunBase2): rename typedef-name _Tp to _Vt to keep the compiler
	happy -- boggus warning.
	* bits/std_valarray.h: Fix.
	(valarray<T>::shift): Fix. Update comment.
	(valarray<T>::cshift): Fix. 

1999-04-23  Benjamin Kosnik  <bkoz@cygnus.com>
	
	* testsuite/27filebuf-2.txt: Delete.
	* testsuite/27/filebuf.cc: Put output files directly into the
	correct subdirectory (27).

        Alexandre Petit-Bianco <apbianco@cygnus.com>
	* testsuite/make_check_libfree++: Check generated (*.txt) file
	against stored results file (*.tst).

1999-04-22  Benjamin Kosnik  <bkoz@nabi.net>

	* bits/locfacets.tcc: Fix.

	* bits/fstream.tcc (filebuf::seekoff): Output current out pointer.
	(filebuf::overflow): Simplify.
	(filebuf::xsputn): Correctly handle indeterminate state.

	* testsuite/27/istringstream_formatted.cc: Tweak.
	* testsuite/27/filebuf.cc: Tweak.
	* testsuite/27/filebuf-3.tst: Correct: this is the canonical
	results file, please use this in the future to guarantee filebuf
	positioning accuracy.
	* testsuite/27/filebuf-2.tst: Same.
	
1999-04-21  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/fstream.tcc (filebuf::xsputn): Add.
	* bits/std_fstream.h: Declare.
	
	* src/basic_file.cc (__basic_file::open): Add O_CREAT to open
	calls using ios_base::trunc.

	* bits/sstream.tcc (streambuf::overflow): Fix crasher.
	
	* testsuite/make_check_libfree++ (LOG_FILE): Ugh. Another fix.
	* testsuite/27/27stringstream.cc: Same.
	* testsuite/27/27stringbuf.cc: More tweaks.
	* testsuite/27/27filebuf-2.txt: Remove.

	* testsuite/27/27filebuf-1.tst: Append, to force byte size over
	BUFSIZE so that overflows/underflow can be tested with default
	buffer setting.  
	* testsuite/27/27filebuf-1.tst: Add.

	* testsuite/*/*: Remove pre-pended chapter names, as they
	duplicate the chapter info contained in the enclosing directory
	anyway.
	
1999-04-20  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/streambuf.tcc (streambuf::xsputn): Re-implement to conform
	to sputc conditions.

	* bits/ios_base.h: Define here.
	* src/ios.cc (ios_base::_M_clear): Remove hack.
	* bits/basic_ios.h: Fix rdstate().

	* bits/sstream.tcc (streambuf::seekoff): Fix.
	* bits/fstream.tcc (filebuf::seekoff): Tweak comments.

	* testsuite/make_check_libfree++ (LOG_FILE): More c-c-c-changes.
	* testsuite/24/24iterator.cc: Add/Fixes for DEBUG_ASSERT.
	* testsuite/27/27stringstream.cc: Same. 
	* testsuite/27/27stringbuf.cc: Same.
	* testsuite/27/27istringstream_formatted.cc: Same.
	* testsuite/27/27filebuf.cc: Same.
	
	* bits/locfacets.h: Remove specializations for messages<char> and
	messages<wchar_t> ctors. Same for moneypunct. Not required, not used.
	* src/locale.cc: Remove definitions for above.
	* src/misc-inst.cc: Revert, take out iomanip.h include. 
	* bits/std_iomanip.h: Tweak, format.
	
1999-04-19  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/loccore.h: Format, move inline.
	* bits/locfacets.tcc: Same.
	* bits/locfacets.h: Same.

	Ulrich Drepper  <drepper@cygnus.com>
	* aclocal.m4: Re-generate.
	* configure, configure.in: Same.
	* m4/lc_messages.m4: New file.

1999-04-18  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/std_ostream.h: Fix typedef for wchar_t instantiations.
	* bits/sstream.tcc: Tweak.

	* std/iostream: Put __ioinit inside macro guards.
	
	* src/stlinst.cc: Delete and move to . . .
	* src/stl-inst.cc: New file, plus wrapping in namespace std.
	* src/Makefile.in: Change.
	* src/Makefile.am: Same.
	* src/misc-inst.cc: Add istringstream/ostringstream instantiations.

	* testsuite/make_check_libfree++: Efficiently format for minimal
	space. Enforce stricter execution tests by enabling
	-DDEBUG_ASSERT.
	
1999-04-16  Benjamin Kosnik  <bkoz@cygnus.com>

	* docs/text/RELEASE-NOTES: Fix include typo.

	* src/Makefile.am (headers): Add istream.tcc. 
	* src/Makefile.in (headers): Add istream.tcc. 

	* ltconfig, ltmain.sh, libtool: Update to libtool-1.2g.
	
1999-04-16  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/locfacets.tcc (num_get::do_get(long)): Finish roughing in.
	* bits/locfacets.h (num_get::_M_extract): New functin:
	consolidate logic for do_get(...) members.

	* bits/sbuf_iter.h (istreambuf_iterator::operator++()): Fix.
	* testsuite/27/27istringstream_formatted.cc: Add.

1999-04-16  Martin v. Loewis  <martin@mira.isdn.cs.tu-berlin.de>

	* src/basic_file.cc (__basic_file::open): Fix thinko in
	_G_HAVE_IO_FILE_OPEN bits.
	* bits/std_istream.h (sentry::sentry(istream, bool)): Fix isspace bug.
	* bits/std_cmath.h: Add stdlib.h include for ldiv_t.
        * src/complex.cc (FCT): Qualify all functions with global namespace.
        * src/locale.cc: Don't qualify memcpy and setlocale.
        * src/stdexcept.cc (__out_of_range): Qualify out_of_range with std::.
        (__length_error): Likewise, for length_error.
        * src/stlinst.cc: Qualify instantiations with std::.

1999-04-15   Benjamin Kosnik  <bkoz@cygnus.com>

	* C++STYLE: Add ChangeLog guidelines for member functions.

	* doc/* : Delete.  
	* BADNAMES, BUGS, C++STYLE, CHECKLIST, COPYING,
	DESIGN, HEADER_POLICY, PROBLEMS, RELEASE-NOTES, TODO: Moved into
	docs/text and made less strident.
	
	* bits/fstream.tcc: Change non-standard ctor to match Sun's sematics.
	* bits/std_fstream.h: Same.
	* src/ios.cc: Same.

	* bits/locfacets.h: Touch. 
	
1999-04-15  Ulrich Drepper  <drepper@cygnus.com>

	* math/cexp.c (cexp): Use NAN instead of nan("").
	Reported by joel reed <joelreed@yahoo.com>.

	* libio/libioP.h: Define _IO_seek_fpos_t and _IO_seek_off_t based on
	_G_IO_IO_FILE_VERSION.  Use these types in the prototypes.
	* libio/fileops.c: Use _IO_seek_fpos_t and _IO_seek_off_t types
	instead of #if cascades.
	* libio/genops.c: Likewise.
	* libio/ioseekoff.c: Likewise.
	* libio/ioseekpos.c: Likewise.
	* libio/strops.c: Likewise.
	Patch by Chip Salzenberg <chip@perlsupport.com>.

1999-04-15  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* docs: New directory.
	* docs/html: Likewise.
	* docs/text: Likewise.
	* docs/image: Likewise.

	* bits/std_cmath.h: Add new functions.
	(abs): overload for long and double.
	(div): overload for long.

	* bits/valarray_array.h: Fix.
	* bits/gslice.h: Adjust friend.
	* bits/slice_array.h: likewise.
	* bits/valarray_meta.h: likewise.

1999-04-13   Benjamin Kosnik  <bkoz@tintin.cygnus.com>

	* bits/locfacets.h: More changes, for num_get for insertion
	operators for integral types. Comment fields in _Format_cache.
	* bits/locfacets.tcc: And here too: add preliminary long version.
	* testsuite/27/27istringstream_formatted.cc: Add cases.

1999-04-13   Mark Elbrecht  <snowball3@usa.net>

	* configure.in: Add locale.h to AC_CHECK_HEADERS argument. Call
	AC_LC_MESSAGES macro.
	* aclocal.m4 (AC_LC_MESSAGES): New. Determines if a target
	supports LC_MESSAGES.
	* config.h.in: Add entry for HAVE_LC_MESSAGES.
	* src/locale.cc (locale::_S_normalize_category): Use the
	HAVE_LC_MESSAGES macro to check for LC_MESSAGES support instead of
	_G_NO_CLOCALE_HAS_MESSAGES.
	* aclocal.m4 (AM_PROG_LD): For DOS style paths, simplify test to
	'?:' from '?:\\' so any path beginning with a drive name matches.

1999-04-12   Mark Elbrecht  <snowball3@usa.net>

	* src/basic_file.cc(sys_open) [O_BINARY]: Declare __testb.

1999-04-12   Benjamin Kosnik  <bkoz@tintin.cygnus.com>

	* bits/locfacets.h: Tweak.
	* bits/locfacets.tcc(do_get): Clean/fix bool method.

	* testsuite/21/21nonmember.cc: Same.
	* testsuite/21/21compare.cc: Fix license.
	* testsuite/27/27istringstream_formatted.cc: New file.

1999-04-12  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* bits/valarray_meta.h: _BinFunBase1, _BinFunBase2, _BinBase1,
	_BinBase2: new template classes; put in there to work around a
	compiler limitation. The whole valarray architecture is now
	working.

1999-04-08  Benjamin Kosnik  <bkoz@haight.constant.com>

	* bits/locfacets.tcc: Fix, format.
	* bits/locfacets.h: Fix.
	* src/locale.cc: Same, plus format.

	* bits/basic_string.h: Re-add definition here.
	* src/string.cc: Take out.

1999-04-08  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* bits/std_valarray.h: tweak.
	* bits/valarray_array.h tweak. use _Expr.
	* bits/slice_array.h: likewise.
	* bits/gslice_array.h: likewise.
	* bits/mask_array.h: likewise.
	* bits/indirect_array.h: likewise.
	* bits/valarray_meta.h: tweak.
	_UnFunBase, _UnFunClos, _BinFunBase, _FunBase, _ValFunClos,
	_RefFunClos, _UnBase, _UnClos, _BinBase, _BinClos, _SClos, _GClos,
	_IClos: new template classes.
	_Meta: renamed to _Expr. Made template with args.
	_Constant: made template with two args.

1999-04-05  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* bits/valarray_array.h: tweak.

1999-04-06  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/basic_string.h: Whoops--fix blip.

1999-04-06  Benjamin Kosnik  <bkoz@cygnus.com>

	Update to SGI STL 3.13
	* bits/basic_string.h: Add __get_c_string definition.
	* stl/bits/stl_range_errors.h: New file.
	* stl/bits/std_bvector.h: Same.
	* stl/bits/*: Update.

1999-04-04 1999  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* bits/slice_array.h: tweak.
	* bits/gslice_array.h: tweak.
	* bits/mask_array.h: tweak.
	* bits/indirect_array.h: tweak.
	* bits/valarray_array.h: tweak.
	(__valarray_copy): replace copy with memcpy.
	* bits/std_valarray.h: use __valarray_copy whenever possible.
	use __valarray_fill instead of fill.

1999-04-02  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* src/gen-num-limits.cc: new file
	* mknumeric_limits: Ditto.

1999-03-30  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/locfacets.tcc: Do a stub version of num_get for short, int,
	and long types.
	* bits/locfacets.h: Add num_get::get methods overloaded for int
	and short, to resolve ambiguous overloads in istream insertion
	operators.

1999-03-30  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/std_istream.h: Fix.
	* bits/istream.tcc: Fix.

1999-03-30  Philip Martin  <pm@corris.dircon.co.uk>

	* testsuite/24/24iterator.cc: fix ++/-- tests

1999-03-29  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/std_ostream.h: Looks like this, actually: Fix up eh-isms.
	* bits/ostream.tcc: Same.

	* bits/std_istream.h: Bring over ostream changes, implement member
	functions. Baseline.
	* bits/istream.tcc: New file.

1999-03-26  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* bits/gslice.h (class gslice): fix friends template.

1999-03-23  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/std_ostream.h: Fix sentry objects, implement seekp, tellp,
	delete cruft, etc.
	* bits/ostream.tcc: Same.

	* bits/std_istream.h: Minor tweaks.

1999-03-18  Benjamin Kosnik  <bkoz@cygnus.com>

	* src/locale-inst.cc: Remove duplicate instantiations.
	* bits/locfacets.tcc: Tweak definitions of static member.

1999-03-18  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/std_fstream.h: Format: prepend "__" in front of
	non-standard typedefs.
	* bits/fstream.tcc: Match.
	* bits/std_streambuf.h: Format: prepend "__" in front of
	non-standard typedefs.

	* bits/sstream.tcc: Match.
	* bits/std_istream.h: Format.
	* src/locale-inst.cc: Add num_get instantiations.

	* bits/std_sstream.h: Fix crash in stringstreams. Remove member
	_M_sb, a basic_stringbuf object, and use the basic_ios pointer
	_M_streambuf instead. Make initializations sane. Fix
	allocation/deallocation of _M_streambuf.
	* bits/std_ostream.h: Fix initialization code.
	(ctor): Eliminate redundant this->init(), let base class initialize.
	(default ctor): New. Assume base classes already initialzed.
	* bits/std_istream.h: Parallel work to ostream.
	(ctor): Eliminate redundant this->init(), let base class initialize.
	(default ctor): New. Assume base classes already initialzed.
	Fix initialization of basic_iostream.

	* bits/std_fstream.h: While we're at it, make initializations sane
	here too. Now matches sstream.h.

	* bits/string.tcc: Fix crash in basic_string::compare.
	* bits/basic_string.h: And here.
	* bits/c++config.h: Add comment about _G_USE_EXCEPTIONS.

	* testsuite/make_check_libfree++: Check shared as well.
	* testsuite/27/27stringstream.cc: Add bits.
	* testsuite/27/27boolfmt.cc: Add bits.
	* testsuite/27/27octfmt.cc: Add bits.

1999-03-17  Benjamin Kosnik  <bkoz@happy.cygnus.com>

	* configure.in (USE_LONG_DOUBLE): signbitl link error.

	* bits/locfacets.h: Fix errors that cause build problems
	with current egcs (template parameters have class scope).
	* bits/locfacets.tcc: Same.
	* src/locale-inst.cc: Same, clean.
	* src/misc-inst.cc: Same, clean.

1999-03-17  Ryszard Kabatek  <kabatek@chemie.uni-halle.de>

	* stl/bits/std_memory.h:  Modify auto_ptr::reset to reflect the
	standard. Re-apply this previous patch.

1999-03-17  Philip Martin  <pm@corris.dircon.co.uk>

	* bits/basic_string.h: Use __normal_iterator<> for iterators.
	* bits/std_sstream.h: Support __normal_iterator<> iterators.
	* bits/string.tcc: Ditto.
	* src/misc-inst.cc: Ditto.
	* src/locale-inst.cc: Ditto.
	* stl/bits/stl_iterator.h: Add __normal_iterator<>.
	* stl/bits/stl_vector.h: Use __normal_iterator<> for iterators.
	* testsuite/24/24iterator.cc: Add test cases for basic_string and
	vector iterators.

1999-03-16  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/locfacets.tcc: Remove macro hack.
	* bits/locfacets.h: Tweaks.
	* src/misc-inst.cc: Weed out locale-related instantiations.
	* src/locale-inst.cc: Same.

	* RELEASE-NOTES: Make more changes.
	* bits/c++config.h: Bump version number.

	* testsuite/make_check_libfree++: Collect diagnostics.

	* bits/std_ostream.h: Fix ostream initialization/destruction
	problem, related to dtor cleanup and new cached facets, agggggggh.
	* bits/ostream.tcc: Tweak.
	* bits/locfacets.h: Remove all friends of iostream classes.
	* bits/ios_base.h: Same.
	* bits/streambuf.tcc: Tweak.
	* bits/std_streambuf.h: Tweak.
	* bits/std_fstream.h: Tweak.
	* bits/fstream.tcc: Tweak.
	* src/stdstreams.cc: Tweak.
	* src/ios.cc: Close streams.

	* math/Makefile.in: Add missing files for shared link errors.
	* math/Makefile.am: Same.

1999-03-15  Benjamin Kosnik  <bkoz@cygnus.com>

	* src/locale-inst.cc: More wchar_t instantiations.
	* src/misc-inst.cc: Missed a few bits.
	* testsuite/make_check_libfree++: Add static and shared runs.
	* src/ios.cc: Add clarity to ios_base::Init::~Init().

1999-03-15  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/std_ostream.h: Format, expunge, simplify. Add cached
	facets. Resolve link errors.
	* bits/ostream.tcc: Same.
	* src/misc-inst.cc: Add ostream, wostream instantiations.
	* src/Makefile.am: Add missing bits for stdstreams.cc.
	* src/Makefile.in: Same.
	* bits/std_iosfwd.h: Format.
	* bits/locfacets.h (num_put): Add basic_ostream as a friend to
	num_put so that cached _M_fnumput pointer can be deleted in
	basic_ostream's dtor. Now everybody plays nice.

1999-03-12  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* bits/gslice.h (class gslice): Make friends valarray,
	gslice_array and _GliceExpression.

1999-03-11  Benjamin Kosnik  <bkoz@cygnus.com>

	* RELEASE-NOTES: Update.
	* src/ios.cc: Use do proper init.
	* bits/std_streambuf.h: Tweak.
	* bits/std_iostream.h: Take out static member.
	* std/iostream: Put here.
	* bits/std_ostream.h: Non-default ctor shouldn't smash _M_streambuf.
	* bits/std_istream.h: Ditto.
	* bits/basic_ios.h: Format.
	* bits/ostream.tcc(write): Fix.
	* bits/fstream.tcc: Fix stdstreams ctor to do a proper
	initialization of the fstream class.
	* src/stdstreams.cc: I'm baaaaaaaack.

1999-03-10  Benjamin Kosnik  <bkoz@rhino.cygnus.com>

	* bits/ios_base.h: Correct comments. Add ios_base::init()
	functionality. Format, tweak, expunge, clean, bathe, and hang to dry.
	* src/misc-inst.cc: Add instantiations here.
	* src/ios.cc: Clean.
	* bits/std_iostream.h: Add wrappers, global ios_base::Init object.
	* src/stdstreams.cc: Delete this file, as now unnecessary.
	* bits/fstream.tcc: Add missing initialization bits for ctor.
	* src/Makefile.am (libstdc___la_SOURCES): Delete here as well.
	* src/Makefile.in (libstdc___la_OBJECTS): And here.

	* bits/streambuf.tcc: Tweak.
	* bits/sstream.tcc: Here too.

	* bits/fstream.tcc: And change definition as well.
	* bits/std_fstream.h: Change ctor.
	* src/basic_file.cc (sys_open): Add call that opens a specific fileno.
	* bits/basic_file.h: Add declarations.

	* testsuite/27/27hello.cc: New file.

	* bits/std_ostream.h: Move flush() inline.
	* bits/ostream.tcc: From here.

	* bits/char_traits.h: Add include of fpos.h for streamoff/streampos.
	* bits/std_ios.h: Change include libio to only when necessary.
	* bits/fpos.h: Like here.
	* ios_base.h: And here.

	* bits/locfacets.h: Change _Iostate to _Ios_Iostate.
	* bits/locfacets.tcc: Same.
	* bits/std_locale.h: Include std_ios.h not std_iosfwd.h.
	* bits/std_iosfwd.h: Move _Ios_Iostate to ios_base.h

1999-03-09  Benjamin Kosnik  <bkoz@rhino.cygnus.com>

	* bits/basic_ios.h: Change _M_ctype to _M_fctype.

	* bits/std_streambuf.h: Clean, tweak.
	* bits/std_fstream.h: Same.
	* bits/std_sstream.h: Same.
	* bits/streambuf.tcc: Move most member functions out-of-line.
	* bits/fstream.tcc: Same.
	* bits/streambuf.tcc: Same.

	* bits/basic_file.h(filepos_cur): Set correctly.
	(filepos_beg): Same.
	(seekpos): Change to __c_streampos.
	* src/basic_file.cc (std): Change to __c_streampos.

	* testsuite/27/27filebuf.cc: Round one is finished.
	* testsuite/27/27filebuf-2.tst: New file, final output should match.
	* testsuite/27/27filebuf-3.tst: Same.

1999-03-08  Benjamin Kosnik  <bkoz@rhino.cygnus.com>

	* bits/basic_file.h: Fix typo, add comments about what to expect
	from the various member functions in __basic_file.

	* bits/std_fstream.h: Re-do sync/underflow to work
	together. Change from sys_read to xsgetn and from sys_write to
	xsputn. As it should have been from the beginning. . .

1999-03-06  Benjamin Kosnik  <bkoz@haight.constant.com>

	* bits/c++config.h (__GLIBCPP__): Add versioning macro.

	* bits/basic_file.h(file_beg): New function.
	(file_cur): Ditto.

	* testsuite/27/27filebuf.cc: Test in, out, in | out.
	* bits/std_fstream.h: More _M_mode refinements.
	(synch): Add bits for out mode only.
	* bits/std_streambuf.h(xsputn): Correct for filebufs.
	* bits/std_sstream.h: Ditto.

1999-03-03  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/std_fstream.h: Fix _M_mode AND with ios_base::openmode.
	* testsuite/27/27filebuf.cc: Modify.
	* bits/c++config.h: Fix.

1999-03-02  Benjamin Kosnik  <bkoz@tintin.cygnus.com>

	* bits/c++config.h: New macro, _G_RESOLVE_LIB_DEFECTS, used to put
	code in place that diverges from the final standard, but has been
	brought up on the library mailing list.

	* bits/std_fstream.h(underflow): Position all three internal
	buffer pointers at the same initial position. Re-implement with
	basic_filebuf abstraction.
	(overflow): Ditto.
	(seekoff): Ditto.
	(seekpos): Ditto.
	* bits/std_sstream.h: Move _M_mode down into base class
	basic_streambuf.
	* bits/sstream.tcc: Ditto.
	* bits/std_streambuf.h: Ditto.

	* testsuite/27/27filebuf.cc: Tweak.

1999-02-27  Benjamin Kosnik  <bkoz@slap-happy.cygnus.com>

	* bits/std_sstream.h: Ditto.
	* bits/std_fstream.h: Fix blip.

1999-02-26  Benjamin Kosnik  <bkoz@happy.cygnus.com>

	* C++STYLE: Add cases.
	* bits/std_fstream.h: Format.
	* bits/std_streambuf.h: Ditto.
	* bits/std_sstream.h: Ditto.

	* src/basic_file.cc(sys_seek): Fix stack delirium, by keeping
	return type for _IO_file_seek and __basic_file::seek the same size.
	* bits/basic_file.h: Ditto.

1999-02-26  Benjamin Kosnik  <bkoz@happy.cygnus.com>

	* bits/fstream.tcc: Add include guards.
	* src/misc-inst.cc: Add instantiations for shared libes.
	* src/locale-inst.cc: Add instantiaions for use_facet.
	* bits/loccore.h: Remove specialization foward decls for
	use_facet<ctype>: perhaps add the whole lot of them later on.
	* bits/std_fstream.h: Fix.
	* bits/locfacets.h: Ditto.
	* src/stdstreams.cc: Disable wide streams for now.

	* src/Makefile.am (CXXFLAGS): Change up.
	* src/Makefile.in (CXXFLAGS): Ditto.

1999-02-25  Benjamin Kosnik  <bkoz@happy.cygnus.com>

	* src/basic_file.cc: Change to ios_base::seekdir from int.
	* bits/basic_file.h: Ditto.
	* bits/locfacets.h : Fix blip with new guard macros.

1999-02-25  Benjamin Kosnik  <bkoz@cygnus.com>

	* stl/bits/stl_config.h (__STL_USE_STD_ALLOCATORS): Minor tweaking.
	* bits/c++config.h: Clean. Remove _G_NO_STREAMBUF_ITERATORS and
	_G_USE_NAMESPACE.
	* amm1/locale: Remove unused defines.
	* generic/locale: Ditto.
	* src/ios.cc: Ditto.
	* src/locale.cc: Ditto.
	* src/locale-inst.cc: Ditto.
	* src/localename.cc: Ditto.
	* src/stdstreams.cc: And here.

	* bits/c++config.h (_G_USE_WCHAR_T): Fix.
	* bits/loccore.h: Simplify, clean, add wchar_t guards.
	* bits/loccore.tcc: Ditto.
	* bits/locfacets.h: Ditto.
	* src/locale-inst.cc: Ditto.
	* bits/locfacets.tcc: Add do_put long long here.

1999-02-24  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/std_streambuf.h: Add cached ctype facet, _M_ctype.
	* bits/basic_ios.h: Clean. Replace _M_strbuf with
	_M_streambuf. Use cached _M_cvt in basic_streambuf.
	* bits/std_istream.h: Replace _M_strbuf with _M_streambuf.
	* bits/std_fstream.h: Tweak.

	* bits/char_traits.h: Remove fpos definitions from here. . .
	* bits/fpos.h: New file, put them here. Eventually, this may allow
	the severing of char_traits and fpos dependencies.
	* src/Makefile.in: Add fpos.h.
	* src/Makefile.am: Ditto.
	* bits/std_string.h: Add fpos.h include here.
	* bits/std_ios.h: And here.

	* bits/std_streambuf.h: Change _M_init to _M_initialized.
	* bits/ios_base.h: Remove cstdio include.
	* bits/std_ios.h: ... Place here.

1999-02-23  Benjamin Kosnik  <bkoz@loony.cygnus.com>

	* src/Makefile.in (CXXFLAGS): Re-add -fvtable-thunks.
	* src/Makefile.am (CXXFLAGS): Re-add -fvtable-thunks.

	* bits/basic_file.h: Comment, adjust arguments.
	* src/basic_file.cc: Ditto.

	* bits/std_fstream.h(seekoff): Error is of fpos type, not integral
	type: check and convert accordingly. Re-interpet "resultant stream
	position" to indicate external byte sequence location, not internal
	buffer info.

1999-02-22  Benjamin Kosnik  <bkoz@loony.cygnus.com>

	* mkcshadow: And change copyright here.
	* src/Makefile.am (CXXFLAGS): Add -g -O2. Add new header
	dependencies for stl_pthread_alloc.h, pthread_allocimpl.h,
	stl_thread.h, and stl_iterator_base.h.
	* src/Makefile.in (CXXFLAGS): Ditto.
	* stl/backward/pthread_alloc.h: Remove.

1999-02-19  Benjamin Kosnik  <bkoz@loony.cygnus.com>

	* bits/std_streambuf.h (sungetc): Use standard defs for putback
	position.
	* bits/std_fstream.h (pbackfail): Correct.
	(sungetc): Test.
	(seekoff): Implement.
	(seekpos): Re-do.
	* testsuite/27/27filebuf.cc: Add test cases.

1999-02-18  Benjamin Kosnik  <bkoz@loony.cygnus.com>

	* bits/std_fstream.h: Go with basic_file's interfaces for dealing
	with the external buffers, and stop mucking around with setting
	and re-setting the external buf's pointers. Aka, clarity and
	simplicity rule the day.
	* src/locale.cc: Use memcpy in codecvt::do_in and codecvt::do_out.
	Remove partial result and support code.

1999-02-18  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in: Add hypot, hypotf, atan2f, expf, and copysignf to
	list of function which have to be replaced.
	Remove expf from list of functions to test for.
	Define USE_LONG_DOUBLE in case the libm has partial support for long
	doubles.
	* Makefile.in: Regenerated.
	* config.h.in: Likewise.
	* configure: Likewise.
	* libio/Makefile.am (LIBIO_SRCS): Add missing backslash.
	* libio/Makefile.in: Regenerated.
	* src/Makefile.in: Regenerated.
	* string/Makefile.in: Regenerated.
	* math/Makefile.am (EXTRA_DIST): Add hypot.c, hypotf.c, hypotl.c,
	atan2f.c, expf.c, and $(EXTRA_yes).
	(EXTRA_yes): Add signbitl.c mycabsl.c.
	(libmath_la_LIBADD): Add $(EXTRA_$(USE_LONG_DOUBLE)).
	(libmath_la_SOURCES): remove long double versions.
	* math/Makefile.in: Regnerated.
	* math/atan2f.c: New file.
	* math/copysignf.c: New file.
	* math/expf.c: New file.
	* math/hypot.c: New file.
	* math/hypotf.c: New file.
	* math/hypotl.c: New file.
	* math/cargf.c: Use correct function and macro names.
	* math/ccos.c: Likewise.
	* math/ccosh.c: Likewise.
	* math/ccoshf.c: Likewise.
	* math/ccoshl.c: Likewise.
	* math/cexp.c: Likewise.
	* math/cexpf.c: Likewise.
	* math/cexpl.c: Likewise.
	* math/clog.c: Likewise.
	* math/clog10.c: Likewise.
	* math/clog10f.c: Likewise.
	* math/clog10l.c: Likewise.
	* math/clogf.c: Likewise.
	* math/clogl.c: Likewise.
	* math/copysignf.c: Likewise.
	* math/csin.c: Likewise.
	* math/csinf.c: Likewise.
	* math/csinh.c: Likewise.
	* math/csinhf.c: Likewise.
	* math/csinhl.c: Likewise.
	* math/csinl.c: Likewise.
	* math/csqrt.c: Likewise.
	* math/csqrtf.c: Likewise.
	* math/csqrtl.c: Likewise.
	* math/ctan.c: Likewise.
	* math/ctanf.c: Likewise.
	* math/ctanh.c: Likewise.
	* math/ctanhf.c: Likewise.
	* math/ctanhl.c: Likewise.
	* math/ctanl.c: Likewise.

1999-02-17  Benjamin Kosnik  <bkoz@cygnus.com>

	* testsuite/27/27filebuf.cc: Add cases.
	* testsuite/27/27filebuf-1.txt: Remove inadvertent garbage.
	* bits/std_streambuf.h: Simplify, always have one return statement.
	* bits/std_fstream.h: Tweak comments in underflow.

1999-02-17  Ulrich Drepper  <drepper@cygnus.com>

	* ltmain.sh: Update from libtool 1.2d and fix Solaris problems.
	* ltconfig: Likewise.

1999-02-16  Christophe Pierret  <cpierret@businessobjects.com>

	* src/locale.cc: Fix assert.

1999-02-16  Benjamin Kosnik  <bkoz@cygnus.com>

	FIXME: Still need some kind of solution for undefined math symbols.
	* src/Makefile.in (locale-inst.lo): Compile with
	-fimplicit-templates to fix Solaris link problem.
	* src/Makefile.am: Ditto.
	* libio/Makefile.in: Add stdfiles.c so that _IO_list_all is defined.
	* libio/Makefile.am: Ditto.
	* src/locale.cc: Provide some kind of def for _S_tolower.
	* bits/locfacets.h: Fix declarations of ctype<wchar_t> to
	match ctype<char> for _S_tolower, _S_toupper, _S_table.

1999-02-10  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/loccore.tcc: Move member-template ctor inline...
	* bits/loccore.h: ...here.
	* src/locale-inst.cc: Add instantiation here.

	* testsuite/27/27stringstream.cc: Tweak.

	* bits/ostream.tcc: Include sbuf_iter.h.

	* bits/ostream.tcc: Convert *this to ostreambuf_iterator before
	passing to num_put, as num_put's first argument is an interator,
	not basic_ostream.

	* testsuite/make_check_libfree++: New file, runs through the
	existing test files in the testsuite directory and makes sure
	they link.

1999-02-10  Brendan Kehoe  <brendan@cygnus.com>

	* testsuite/21/21compare.cc: Fix typo.
	* src/locale.cc (ctype<wchar_t>::_S_{toupper,tolower,table}):
	Don't try to provide non-linux versions, since it's impossible to
	initialize their const references with the integer 0, no matter
	how we try to cast it.

1999-02-10  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/std_locale.h: Move std_vector.h dependency.
	* bits/std_ios.h: ...from here.
	* bits/std_string.h: ...and here.
	* src/locale.cc: ..to here.
	* bits/loccore.h: Ditto, add vector forward declaration,
	make locale::_Impl data members pointers not containers.
	* bits/loccore.tcc: Move out-of-line for now.
	* bits/locfacets.h: Move vector dependency from here...
	* bits/locfacets.tcc: ...to here.
	* src/localename.cc: ..and here.
	* src/locale-inst.cc: Add include of locfacets.tcc here.

	* stl/bits/stl_string_fwd.h: Make __get_c_string non-static.
	* bits/basic_string.h: Can't use sizeof on an incomplete type.
	* bits/string.tcc: Tweak.
	* src/string.cc: And add __get_c_string def here.

	* bits/std_fstream.h: Yeah, comment the fill_n idea out as impractical.

	* src/stlinst.cc: Add include of stl_config.h.

1999-02-09  Benjamin Kosnik  <bkoz@cygnus.com>

	* stl/bits/std_bitset.h: Update to SGI STL 3.12.
	* stl/bits/stl_config.h: Tweak, update.
	* stl/bits/std_stdexcept.h: Ditto, change stl_exception to
	std_exception.
	* stl/bits/std_memory.h: Reconstructed auto_ptr, Ditto.
	* stl/bits/std_functional.h: Ditto.

	* stl/bits/stl_string.h: New file, SGI's string
	implementation. For reference only, corresponding to string in
	3.12 source.
	* stl/bits/stl_char_traits.h: As above.

	* stl/bits/pthread_allocimpl.h: New file corresponding to
	pthread_alloc.
	* stl/bits/stl_pthread_alloc.h: New file corresponding to
	pthread_alloc.h
	* stl/bits/stl_threads.h: New file.

	Note that SGI STL 3.12's file iterator.h is not used.
	* stl/bits/std_iterator.h: Ditto.
	* stl/bits/stl_iterator.h: Drop in replace.
	* stl/bits/stl_iterator_base.h: New file, drop in replace.

	* stl/bits/stl_queue.h, stl_rope.h, stl_set.h, stl_stack.h,
	stl_string_fwd.h, stl_tempbuf.h, stl_tree.h, stl_vector.h,
	stl_pair.h, stl_multimap.h, stl_multiset.h, stl_list.h,
	stl_hashtable.h, stl_hash_set.h, stl_hash_map.h, stl_function.h,
	stl_deque.h, stl_alloc.h, stl_algo.h, stl_algobase.h, ropeimpl.h:
	Drop-in replace (ie, stop changing __SGI_STL_* to _CPP_BITS_* for
	preprocessor guards, but fixup include paths and names according
	to new directory layout).

1999-02-05  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/std_fstream.h: Remove _M_open data member.
	* bits/fstream.tcc: Ditto.

	* src/locale.cc: Tweak.

	* bits/std_sstream.h: Simplify.

	* bits/std_streambuf.h: Simplify.
	(sputc): Use correct definition of "write area."

	* bits/std_fstream.h: Fix uflow.
	* src/basic_file.cc: Tweak.
	* testsuite/27/27filebuf.cc: Add tests.
	* testsuite/27/27filebuf-3.txt: Rename to *-2.txt.

1999-02-02  Ryszard Kabatek  <kabatek@chemie.uni-halle.de>

	* bits/ios_base.h: Make protected.

1999-02-01  Ryszard Kabatek  <kabatek@chemie.uni-halle.de>

	* bits/ios_base.h: Changes in the class ios_base:
	Rename _M_exceptions member to _M_exceptions_data.
	Make the member functions rdstate(), clear(), exceptions()
	and exceptions(iostate) protected and add the "_M_" prefix.
	* src/ios.cc: Ditto.
	* bits/basic_ios.h: Adapt the changes from ios_base.

1999-01-29  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/std_fstream.h: Remove _M_flags, _M_equilibrate  as unnecessary.
	* bits/fstream.tcc: Ditto.

	* bits/std_fstream.h (underflow): Resize deallocates memory and
	resets pointers in the internal cache according to new _M_buf. . dooh!
	* src/locale.cc: Mas changes with codecvt::do_in, do_out.

1999-01-29  Ryszard Kabatek  <kabatek@chemie.uni-halle.de>

	* stl/bits/std_memory.h:  Modify auto_ptr::reset to reflect the
	standard.

1999-01-28  Benjamin Kosnik  <bkoz@cygnus.com>

	* src/locale.cc (codecvt::do_in): Finer-grained tuning to take
	into account partial returns.
	(codecvt::do_out): Likewise.

	* bits/char_traits.h: Change streamsize to be a signed type, as
	required by 27.4.1 Types p 2. (Changing to _IO_ssize_t.)
	* bits/std_streambuf.h: Make
	in_avail() and showmanyc() have streamsize as return types, so
	that showmanyc()'s return of eof won't underflow in_avail's return
	value and give a bogus result.
	* src/misc-inst.cc: And more changes. . .

	* bits/std_streambuf.h (basic_streambuf): Add _M_buf_unified to keep
	track of joint in/out pointers into the internal buffer.
	(sbumpc): Add check for _M_buf_unified.
	(sputbackc): Ditto.
	(sungetc): Ditto.

	* testsuite/27/27filebuf.cc: Add cases.
	* testsuite/27/27stringbuf.cc: Add showmanyc case.

	* bits/std_fstream.h (close): Fix logic error.
	(open): Initialize internal pointers based on _M_buf and _M_buf_size.
	(showmanyc): Add underflow component, to match the standard.

	* bits/fstream.tcc: Ditto.

1999-01-27  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/basic_file.h: Match vtables w/ _IO_FILE_plus.
	* src/basic_file.cc: Ditto.
	* src/Makefile.in: Add -fvtable-thunks to CXXFLAGS: preferred
	format for dealing with _IO_file in libio.

1999-01-27  Ulrich Drepper  <drepper@cygnus.com>

	* src/basic_file.cc: Include fcntl.h.

1999-01-27  Benjamin Kosnik  <bkoz@cygnus.com>

	* libio/Makefile.in: Add fileops.lo, genops.lo to objects to debug
	libio calls.
	* bits/std_streambuf.h: Redefine read posion.

	* bits/std_fstream.h: Temporary hack to get vtables working again.
	* bits/basic_file.h: Revert.
	* src/basic_file.cc: Ditto.
	* testsuite/27/27filebuf.cc: Tweak.

1999-01-26  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/basic_file.h: Add showmanyc, underflow. .
	* src/basic_file.cc: Ditto.

	* bits/std_fstream.h (showmanyc): Add bits to ping libio to see if more
	chars can be read.

	* testsuite/27/27filebuf.cc: Add testcases.
	* src/basic_file.cc: Add O_CREAT to open calls with
	ios_base::trunc as part of the open mode.

1999-01-26  Ryszard Kabatek  <kabatek@chemie.uni-halle.de>

	* bits/basic_ios.h: fix basic_ios::exceptions(iostate)

1999-01-25  Benjamin Kosnik  <bkoz@nabi.net>

	* src/ios.cc (clear): Correct typo.
	* bits/ios_base.h: Tweak spacing.

1999-01-25  Ryszard Kabatek  <kabatek@chemie.uni-halle.de>

	* bits/basic_ios.h: fix basic_ios::fail()

1999-01-25  Benjamin Kosnik  <bkoz@loony.cygnus.com>

	* bits/basic_file.h: Include libioP.h from libio instead of here.
	* bits/iolibio.h: Remove.
	* bits/libio.h: Remove.

1999-01-22  Benjamin Kosnik  <bkoz@lunatic.cygnus.com>

	* bits/std_fstream.h: Tweak cvt-> in call for newer egcs compilers.

1999-01-22  Ulrich Drepper  <drepper@cygnus.com>

	* Makefile.am (SUBDIRS): Add libio.
	* configure.in: Add rule to test for glibc2.

	* src/Makefile.am (INCLUDES): Add -I to libio subdir.
	(libstdc___la_LIBADD): Add libio.la.

1999-01-21  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/basic_file.h: Make new abstraction for underlying C library
	FILE, named __basic_file.
	* src/basic_file.cc: New file.
	* bits/os_raw.h: Delete.
	* src/os_raw.cc: Delete.
	* src/Makefile.in: Tweak.
	* src/Makefile.am: Tweak.
	* bits/iolibio.h: Add this here, for the time being.
	* bits/libioP.h: Ditto.

	* bits/ios_base.h: Delete unused defines.
	* src/locale.cc (codecvt<char, char, mbstate_t>::do_in): Use
	strcpy to copy between the two buffers.

	* testsuite/27/27stringbuf.cc: Change license, fix in_avail tests.
	* testsuite/27/27filebuf.cc: New file.
	* testsuite/27/27filebuf-1.txt: Data file for above test.
	* testsuite/27/27filebuf-2.txt: Ditto.

	* bits/std_streambuf.h (uflow): Re-implement default.
	* bits/std_fstream.h: Set _M_buf_size based on cstdio's BUFSIZ.
	Re-implement virtual functions.
	* bits/fstream.tcc: Delete unused mf's.

1998-12-31  Benjamin Kosnik  <bkoz@lunatic.cygnus.com>

	* bits/fstream.tcc: Add fstream ctor for cin/cout/etc.
	* bits/std_fstream.h: Ditto.
	* src/stdstreams.cc: Ditto.

	* math/cpowl.c: Fix header typo with last change.

1998-12-31  Benjamin Kosnik  <bkoz@loony.cygnus.com>

	* COPYING: New file (GPL v 2).
	* LICENSE.STD: Remove.
	* ./*: Change license.

1998-12-30  Benjamin Kosnik  <bkoz@haight.constant.com>

	* bits/std_streambuf.h (std): Remove static on _M_init.
	* bits/streambuf.tcc (std): Ditto.

	* bits/std_fstream.h: Add changes as discussed with Nathan, including
	state_type and codecvt_type members, the allocation of an internal
	buffer, the streamlined codecvt calls, etc.

1998-12-21  Benjamin Kosnik  <bkoz@haight.constant.com>

	* bits/std_sstream.h: Tweak.
	* bits/fstream.tcc: Remove unused stubs.
	* bits/std_fstream.h: Tweak.

1998-12-17  Benjamin Kosnik  <bkoz@tintin.cygnus.com>

	* bits/std_streambuf.h: Move _IO_file_flags into basic_filebuf.
	Remove unused _IO_* members, possibly put into filebuf, which may
	need them.
	* bits/std_fstream.h: Add _M_flag.
	* bits/sbuf_iter.h: Tweak.

	* bits/std_cstdio.h: Add SEEK_SET, SEEK_END, SEEK_CUR.
	* bits/ios_base.h: Use.

	* src/stdstreams.cc: Modify to reflect standard ctors for
	filebuf.
	* src/misc-inst.cc: Ditto.

	* bits/os_raw.h: Wrap in std namespace. Model parameters on
	underlying C library calls instead of the underlying unix
	filesystem.
	* src/os_raw.cc (_S_os_open): Use fopen, and compute a mode
	string as per p.659.
	(_S_os_close): Model on fopen.
	(_S_os_read): Model on fread.
	(_S_os_write): Model on fwrite.
	(_S_os_seek): Model on fseek.

	* bits/ios_base.h: Tweak.
	* bits/std_iosfwd.h: Wrap libio.h include with extern "C".
	* bits/std_sstream.h: Tweak.
	* bits/sstream.tcc: Remove old, uncalled code.
	* bits/std_fstream.h: Major reconstruction.
	* bits/fstream.tcc: Disable for the time being.

1998-12-11  Benjamin Kosnik  <bkoz@haight.constant.com>

	* bits/basic_string.h: Fix insert method.
	* stl/bits/stl_iterator.h: Remove previous hack.
	* bits/std_streambuf.h (sbumpc): Correct increment/return oddness.
	* bits/std_sstream.h: Fix more regressions.
	* testsuite/27/27stringbuf.C: Add (almost) complete tests.

1998-12-09 Benjamin Kosnik  <bkoz@loony.cygnus.com>

	* bits/basic_string.h: Tweak.

	* stl/bits/stl_iterator.h: Specialize iterator_traits for int so
	that string::append can be instantiated. HACK--checkin
	basic_string::iterator class.

1998-12-07  Benjamin Kosnik  <bkoz@haight.constant.com>

	* bits/std_sstream.h: Tweak.
	* bits/sstream.tcc: Tweak ctors.

	FIXME invalid friend defs. . WHERE ARE THEY??

	* bits/sbuf_iter.h (istreambuf_iterator::equal): Change to new
	names for basic_streambuf data members.

	* bits/std_streambuf.h: Add getloc() initialization bits.
	basic_streambuf(): Initialize with global locale data.
	imbue(): Set _M_init.

	* bits/std_streambuf.h(seekoff, seekpos): Complete with invalid
	stream pos == pos_type(off_type(-1)).
	in_avail(): Complete default implementation.
	snextc, sbumpc, sputbackc, sungetc, sputc, setg, xsputn,
	underflow, uflow, xsgetn, showmany, sync: Ditto.

	* bits/std_streambuf.h: _M_snextc_helper(): Remove.

	* bits/streambuf.tcc (sputbackc): Temporarily remove, need to
	re-populate with in-line member functions that are too big.  Add
	initialization for _M_init.

1998-12-03  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/sstream.tcc: Convert _Allocator to _Alloc.  Add typedefs
	for basic_string and basic_streambuf. Scope _IO_buf_* pointers to
	streambuf_type.

	* src/stdstreams.cc (std): Disable wchar_t instantiations.

	* bits/c++config.h (_G_DEPRICATED): Add.
	(_G_USE_WCHAR_T): Add.
	* bits/std_streambuf.h: Radical reconstruction of basic_streambuf.
	Take out _Streambuf_base. Put _IO_FILE data member in basic_filebuf.
	* bits/streambuf.tcc (sputbackc): Remove ctor anti-def, Tweak.
	* bits/std_fstream.h: Add comment for implementation.
	* src/streambuf.cc: Remove.
	* src/Makefile.in: Remove streambuf.lo.
	* src/misc-inst.cc: Tweak.

1998-12-02  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/std_sstream.h: Add const_cast to rdbuf returns.
	* testsuite/27stringstream.C: Modify.

1998-11-25  Benjamin Kosnik  <bkoz@haight.constant.com>

	* src/Makefile.in (libstdc___la_OBJECTS): Add streambuf.lo.
	(libstdc___la_SOURCES): Ditto.

	* bits/streambuf.tcc: Tweak.

	* src/streambuf.cc: New file, add out-of-line definitions for
	_Streambuf_base.

	* src/misc-inst.cc: Remove _Streambuf_base instantiations.
	Comment out wchar_t versions of the buffer instantiations, for now.

	* bits/std_streambuf.h: Wrap libio.h include with extern "C".
	Remove template wrapper around _Streambuf_base.
	Move IO_* data members into _Streambuf_base.
	Move _Streambuf_base members into streambuf.tcc.

	* bits/c++config.h (_G_USE_LIBIO): Enable.

1998-11-02  Nathan Myers <ncm@cantrip.org>

	* CHECKLIST: downgrade iterator implementations
	* DESIGN: fill out notes about unimplemented features

1998-10-31  Nathan Myers <ncm@cantrip.org>

	* CHECKLIST: itemized list of all interfaces, and status of each.

1998-10-30  Nathan Myers  <ncm@cantrip.org>

	* RELEASE-NOTES: add notes about optional includes, linking, running
	* src/Makefile.am: handle header installs properly
	* src/Makefile.in: regenerate from new src/Makefile.am

1998-10-30  Benjamin Kosnik  <bkoz@loony.cygnus.com>

	* bits/basic_string.h: Revert npos pending ciso646.
	* src/Makefile.am: Revert CXX flags for now.
	* src/Makefile.in: Ditto.

1998-10-30  Brendan Kehoe  <brendan@cygnus.com>

	* bits/std_sstream.h: Re-order ctors to put base before member
	inits.

1998-10-30  Ryszard Kabatek  <kabatek@chemie.uni-halle.de>

	* stl/bits/std_memory.h: Fix typo.

1998-10-30  Nathan Myers <ncm@cantrip.org>

	* src/string[A-Z]+.cc: change back to include "string.cc".
	* src/Makefile.am: revert filename changes.  We need a different
	way to keep filenames in std/ from confusing Make.
	* bits/basic_string.h: define _S_max_size right, return it from
	string::max_size(); churn definition of npos again.
	* bits/string.tcc: fix _S_frob_size to avoid uint overflow.
	* bits/ios.cc: remove #ifdef on ios_base locale member initialization
	* BUGS: clear cruft.
	* C++STYLE: Touchup for release.
	* CHECKLIST: Touchup for release.
	* DESIGN: New file.
	* LICENSE.STD: Add requirement to retain copyrights and to provide
	the license with any copies.
	* README: Update for release.
	* TODO: Minor touchup for release.
	* RELEASE-NOTES: prepare for release

1998-10-29  Ulrich Drepper  <drepper@cygnus.com>

	* src/string[A-Z]+.cc: Include stdstring.cc, not string.cc.

	* src/Makefile.am (CXXFLAGS): Define _GNU_SOURCE.

	* src/Makefile.am (CXXLINK): New variable.  Make sure we don't use
	CXX to generate the shared object.

	* src/Makefile.am (headers): Remove duplicated char_traits.h.

1998-10-29  Brendan Kehoe  <brendan@cygnus.com>

	* bits/basic_string.h (basic_string<>::max_size): Subtract 1, not
	2, from npos, solving infinite loop problems.

1998-10-29 18:41  Ulrich Drepper  <drepper@cygnus.com>

	* src/Makefile.am: Add rules to install headers.

1998-10-29  Nathan Myers <ncm@cantrip.org>

	* bits/std_ostream.h: Remove #ifdef on operator<< for long double
	* bits/ostream.tcc:   Remove #ifdef on operator<< for long double
	* shadow/libio.h:
	* shadow/unistd.h:
	* shadow/bits/wrap_libio.h:
	* shadow/bits/wrap_unistd.h: New files.

1998-10-29  Brendan Kehoe  <brendan@cygnus.com>

	* bits/ostream.tcc (operator<<): Wrap with #ifdef
	_G_HAVE_LONG_DOUBLE_IO, to match bits/std_ostream.h.

1998-10-29  Ulrich Drepper  <drepper@cygnus.com>

	* src/Makefile.am: Add temporarily rules to make sure misc-inst.cc
	is not compiled with -fno-implicit-templates in effect.

	* src/Makefile.am (EXTRA_SOURCES): Add string.cc and wstring.cc here.
	(libstdc___la_SOURCES): Add all the string*.cc and wstring*.cc files.
	* src/stringADDCS.cc: Wrapper around string.cc to define individual
	function.
	* src/stringADDPS.cc: Likewise.
	* src/stringADDSC.cc: Likewise.
	* src/stringADDSP.cc: Likewise.
	* src/stringADDSS.cc: Likewise.
	* src/stringBIST.cc: Likewise.
	* src/stringBOST.cc: Likewise.
	* src/stringCHTR.cc: Likewise.
	* src/stringEQPS.cc: Likewise.
	* src/stringEQSP.cc: Likewise.
	* src/stringEQSS.cc: Likewise.
	* src/stringEXTRA.cc: Likewise.
	* src/stringGEPS.cc: Likewise.
	* src/stringGESP.cc: Likewise.
	* src/stringGESS.cc: Likewise.
	* src/stringGETLI.cc: Likewise.
	* src/stringGTPS.cc: Likewise.
	* src/stringGTSP.cc: Likewise.
	* src/stringGTSS.cc: Likewise.
	* src/stringINSER.cc: Likewise.
	* src/stringLEPS.cc: Likewise.
	* src/stringLESP.cc: Likewise.
	* src/stringLESS.cc: Likewise.
	* src/stringLTPS.cc: Likewise.
	* src/stringLTSP.cc: Likewise.
	* src/stringLTSS.cc: Likewise.
	* src/stringMAIN.cc: Likewise.
	* src/stringNEPS.cc: Likewise.
	* src/stringNESP.cc: Likewise.
	* src/stringNESS.cc: Likewise.
	* src/stringSCOPY.cc: Likewise.
	* src/wstringADDCS.cc: Wrapper around wstring.cc to define individual
	functions.
	* src/wstringADDPS.cc: Likewise.
	* src/wstringADDSC.cc: Likewise.
	* src/wstringADDSP.cc: Likewise.
	* src/wstringADDSS.cc: Likewise.
	* src/wstringBIST.cc: Likewise.
	* src/wstringBOST.cc: Likewise.
	* src/wstringCHTR.cc: Likewise.
	* src/wstringEQPS.cc: Likewise.
	* src/wstringEQSP.cc: Likewise.
	* src/wstringEQSS.cc: Likewise.
	* src/wstringEXTRA.cc: Likewise.
	* src/wstringGEPS.cc: Likewise.
	* src/wstringGESP.cc: Likewise.
	* src/wstringGESS.cc: Likewise.
	* src/wstringGETLI.cc: Likewise.
	* src/wstringGTPS.cc: Likewise.
	* src/wstringGTSP.cc: Likewise.
	* src/wstringGTSS.cc: Likewise.
	* src/wstringINSER.cc: Likewise.
	* src/wstringLEPS.cc: Likewise.
	* src/wstringLESP.cc: Likewise.
	* src/wstringLESS.cc: Likewise.
	* src/wstringLTPS.cc: Likewise.
	* src/wstringLTSP.cc: Likewise.
	* src/wstringLTSS.cc: Likewise.
	* src/wstringMAIN.cc: Likewise.
	* src/wstringNEPS.cc: Likewise.
	* src/wstringNESP.cc: Likewise.
	* src/wstringNESS.cc: Likewise.
	* src/wstringSCOPY.cc: Likewise.
	* src/string.cc: Remove now unneeded #defines now.

1998-10-29 Nathan Myers <ncm@cantrip.org>

	* bits/locfacets.tcc: Define num_put::put(... const void*), improve
	integer formatting.
	* bits/ostream.tcc: Delete cruft, rewrite various op<< as members,
	add definitions for double, long double, const void*.
	* bits/std_ostream.h: Move op<<'s back into class ostream,
	define some in-line.
	* bits/string.tcc: fix unnecessary-copying bug in op[], typos in
	string construction from input iterators that Brendan reported.


1998-10-28  Brendan Kehoe  <brendan@cygnus.com>

	* stl/bits/stl_pair.h (op!=, op>, p<=, op>=): Add missing definitions.

	* bits/valarray_meta.h (class _Constant): Move declaration to the
	top, so the rest of the file can grok it.
	(_ApplyBinaryFunction::operator[]): Add missing parenthesis.

	* bits/std_sstream.h (basic_ostringstream::str): Fix typo of extra
	semicolon.
	(basic_stringstream::str, both instances): Likewise.

1998-10-28 Nathan Myers <ncm@cantrip.org>

	* bits/locfacets.h: fix num_put<>::falsename()
	* bits/locfacets.tcc: fix _Format_cache<>::_M_populate bool name init
	* testsuite/27/27octfmt.C, testsuite/27/27octfmt.C: new tests
	* bits/locfacets.tcc: touch up _S_group_digits.
	* src/misc-inst.cc: adjust _S_group_digits insts to match.

1998-10-27 Nathan Myers <ncm@cantrip.org>

	* stl/bits/stl_config.h: Turn off long long support, for now.
	* src/locale-inst.cc: Instantiate num_put<> only for
	ostreambuf_iterator, num_get only for istreambuf_iterator.
	* src/misc-inst.cc: Delete duplicate locale-related instantiations,
	add lots of new instantiations for num_put support function templates;
	remove junk about __match_parallel for ostreambuf_iterator.

1998-10-27 Nathan Myers <ncm@cantrip.org>

	* bits/locfacets.tcc: Make num_put's digit grouping work.
	* bits/string.tcc: More uglification.
	* src/ios.cc: initialize format cache right

1998-10-26 Nathan Myers <ncm@cantrip.org>

	* bits/basic_string.h: Uglify more names.
	* bits/fstream.tcc: Rewrite some filebut output handling.
	* bits/ios_base.h: Cosmetic.
	* bits/locfacets.h: Changes to _Format_cache for support of num_put.
	Also, specialize its default ctor for optimal default case.
	#ifdef out "long long" prototypes for now.
	* bits/locfacets.tcc: Do complete, optimized num_put<>::do_put
	implementation for integer types.  (Still needs optimized
	std::copy() applied to ostreambuf_iterator to be optimal.)
	* bits/ostream.tcc: Write operator<< for long, bool types.
	Make other operators<< non-members, per spec.  (Many still
	not implemented.)  Identify those that fail to create a sentry.
	* bits/sbuf_iter: Cosmetic.
	* bits/std_fstream.h: Add some filebuf members.
	* bits/std_locale.h: Include <limits> for use in bits/locfacets.h
	* bits/std_ostream.h: Make member operators<< global, per spec.
	(Should do the same in std_istream.h.)
	* bits/std_string.h: Include <limits> for use in bits/locfacets.h
	* bits/string.tcc: Uglify names
	* shadow/bits/std_cstdlib.h: Optimize std::div and std::ldiv.
	* src/ios.cc: Specialize _Format_cache<> for char and wchar_t,
	for optimal default behavior.

1998-10-26  Benjamin Kosnik  <bkoz@loony.cygnus.com>

	* src/Makefile.in (libstdc___la_SOURCES): Add misc-inst.cc again.

1998-10-21 Nathan Myers <ncm@cantrip.org>

	* src/locale.cc: make ctype operations actually work for glibc
	* CHECKLIST: add a comprehensive (i.e. huge) implementation
	checklist of stdlib facilities.  Not filled in yet.

1998-10-20 Nathan Myers <ncm@cantrip.org>

	* bits/string.tcc: fix patching NULs on string ends.

1998-10-19 Nathan Myers <ncm@cantrip.org>

	* bits/std_iosfwd.h: eliminate "basic_" prefix on streambuf
	iterator forward declarations
	* bits/sbuf_iter.h: eliminate default template argument definitions
	on streambuf iterators (rely on <iosfwd> decls).
	* TODO: add note about lazy facet construction
	* bits/basic_ios.h: hit operator void* again.  This should be the
	last time we need to touch it.
	* bits/basic_ios.h: copyfmt now returns *this.
	* bits/basic_string.h: fix npos again.  npos cannot be defined as zero.
	* bits/basic_string.h: put back overloaded constructors; adjust
	behavior for default allocator on copy constructor.
	* bits/char_traits.h: make not_eof return correct type.
	* bits/loccore.h: remove call to bits/std_stdexcept.h; subincludes
	cannot be in non-standard headers or we get include loops (bad)
	* bits/loccore.h: delete ifdef'd out workarounds for old compiler bugs.
	* bits/loccore.h: add apparatus to support lazy construction of
	facets.
	* bits/locfacets.tcc: Uglify names in __match_parallel decl.
	* bits/std_ios.h: add include of <typeinfo> to get bad_cast for
	locale use_facet<> failure.
	* bits/std_locale.h: same.
	* bits/std_string.h: same.
	* bits/std_stdexcept.h: change exception member __msg from a
	reference to a regular object.
	* bits/string.tcc: add pasting a NUL on the end of strings after
	each operation. We had already left room for it, but previously
	plugged it only on a call to c_str(), but the WG changed the
	requirement when I wasn't looking.  (Can't leave them alone for
	a second without they break something else.)
	* bits/valarray_meta.h: add Gaby's changes from 981018.
	* src/locale.cc: add new type _Bad_use_facet to be thrown on
	failure of use_facet<>().
	* src/stdexcept.cc: remove pragma, remove bkoz's #if 0,
	comment out leftover member definitions

1998-10-16  Ulrich Drepper  <drepper@cygnus.com>

	* string/Makefile.am: Revert last change.
	* math/Makefile.am: Likewise.

1998-10-15  Benjamin Kosnik  <bkoz@haight.constant.com>

	* bits/std_sstream.h: Fix typo.

1998-10-15  Benjamin Kosnik  <bkoz@haight.constant.com>

	* src/Makefile.am (libstdc___la_SOURCES): Add misc-inst.cc.

	* bits/std_sstream.h: Add typedefs, member definitions. Clean.
	* bits/std_stdexcept.h: Remove.

1998-10-15  Benjamin Kosnik  <bkoz@haight.constant.com>

	* src/misc-inst.cc: Tweak again.

	* bits/std_sstream.h: Move out-of-line definitions to sstream.tcc.
	* bits/sstream.tcc: New file.

1998-10-15  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in: Test for machine/param.h, sys/machine.h and fp.h.
	Don't run AC_C_BIGENDIAN if machine/param.h or sys/machine.h are
	available.

	* math/mathconf.h: Include sys/machine.h, machine/param.h and fp.h
	if available.
	(INFINITE_P): Use IS_INF macro if available.

1998-10-15  Ulrich Drepper  <drepper@cygnus.com>

	* math/Makefile.am (EXTRA_LTLIBRARIES): Renamed from
	noinst_LTLIBRARIES.
	* string/Makefile.am: Likewise.

1998-10-15  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in (AC_CHECK_FUNCS): Add finite, qfinite, fpclass, and
	qfpclass.
	(AC_CHECK_HEADERS): Add machine/endian.h.  If no header specifying
	endianess is available run AC_C_BIGENDIAN.

	* math/clog10l.c: Add ugly hack around bug in Irix 6.2 header until
	fixincludes is fixed.
	* math/clogl.c: Likewise.
	* math/csqrtl.c: Likewise.
	* math/mycabsl.c: Likewise.

	* math/mathconf.h: Include machine/endian.h if possible.  If no
	header describing endianess is available rely on WORDS_BIGENDIAN
	macro.
	(FINITE_P, FINITEF_P, FINITEL_P): Use finite functino if available.
	(INFINITE_P, INFINITEF_P, INFINITEL_P): Use fpclass function if
	available.

	* src/complex.cc (polar): Don't use sincos on OSF machines.

1998-10-09  Benjamin Kosnik  <bkoz@loony.cygnus.com>

	* src/locale-inst.cc: Don't instantiate time_get for
	ostreambuf_iterators as time_get::do_get_weekday and
	time_get::do_get_monthname use __match_parallel, which is illegal
	for ostreambuf_iterators to use, as they don't have operator== or
	operator!=.
	* bits/std_stdexcept.h: Add dtor definitions.
	Use stl/bits/std_stdexcept.h instead of this file?
	* bits/sbuf_iter.h : Tweak.
	* src/misc-inst.cc: Tweak.

1998-10-09  Benjamin Kosnik  <bkoz@haight.constant.com>

	* bits/std_stdexcept.h: New file.
	* src/stdexcept.cc: Define the following:
	logic_error::what()
	runtime_error::what()

	* src/misc-inst.cc: New file.
	* src/Makefile.in (libstdc___la_SOURCES): Add misc-inst.cc.
	(libstdc___la_OBJECTS): Add misc-inst.lo.

	* bits/basic_string.h: Disable non-standard ctor declarations.
	* bits/string.tcc: Disable definitions as well.
	* src/string.cc: Disable <ios> dependencies.
	* bits/sbuf_iter.h (std): Add default to template parameter for
	ostreambuf_iterator and istreambuf_iterator.
	* bits/std_iosfwd.h: Change istreambuf_iterator to
	basic_istreambuf_iterator. Likewise for ostreambuf.
	* bits/locfacets.tcc (__match_parallel): Fix typo.
	* src/ios.cc (imbue): Remove the _G_HAVE_LOCALE guards around
	ios_base::imbue.
	* bits/std_streambuf.h: Define _Streambuf_base::getloc().
	* bits/std_istream.h: Define the following:
	get (basic_streambuf<char_type,_Traits>& __sb, char_type __delim)
	get (char_type* __s, streamsize __n, char_type __delim);
	getline (char_type* __s, streamsize __n, char_type __delim)
	* bits/loccore.h : FIXME friend template code for use_facet.
	Add std_stdexcept.h include so that range_error will be defined.
	Add explicit conversion to string for range_error throws. (HACK?)

1998-10-8  Ulrich Drepper  <drepepr@cygnus.com>

	* configure.in: Check for sincos, sincosf, and sincosl.
	* src/complex.cc (polar): Use sincos if available.

	* bits/c++config.h: Fix hack to get LONG_LONG* definitions on Linux.
	* stl/bits/std_limits.h: Include bits/c++config.h.  HACK!!!

	* math/clog10.c: Fix typo (FP_INIFITE_P -> INFINITE_P).

	* math/cpow.c: Use c_log, not clog.
	* math/cpowf.c: Likewise.
	* math/cpowl.c: Likewise.

	* math/cexp.c: Remove unused fpclassify calls.  Use FINITE_P instead
	of isfinite call.

	* math/mathconf.h (FINITE_P, FINITEF_P, FINITEL_P): Define using
	isfinite macro if it is available.
	(INFINITE_P, INFINITEF_P, INFINITEL_P): Define using isinf macro.

	* math/ccosf.c: Use appropriate test macros for this type.
	* math/ccoshf.c: Likewise.
	* math/ccoshl.c: Likewise.
	* math/ccosl.c: Likewise.
	* math/cexpf.c: Likewise.
	* math/cexpl.c: Likewise.
	* math/clog10f.c: Likewise.
	* math/clog10l.c: Likewise.
	* math/clogf.c: Likewise.
	* math/clogl.c: Likewise.
	* math/csinf.c: Likewise.
	* math/csinhf.c: Likewise.
	* math/csinhl.c: Likewise.
	* math/csinl.c: Likewise.
	* math/csqrtf.c: Likewise.
	* math/csqrtl.c: Likewise.
	* math/ctanf.c: Likewise.
	* math/ctanhf.c: Likewise.
	* math/ctanhl.c: Likewise.
	* math/ctanl.c: Likewise.

1998-10-06  Benjamin Kosnik  <bkoz@bliss.nabi.net>

	* bits/basic_ios.h: Fix previous change.

1998-10-06  Benjamin Kosnik  <bkoz@bliss.nabi.net>

	* bits/basic_ios.h: Add const_cast<basic_ios&>
	(operator void*): As per 5.2.9 p 2, make sure static_cast is
	well-formed.
	* bits/char_traits.h: No _CharT for specialization, change to 0.
	* bits/basic_string.h: As per 9.4.2 p4, initialize with
	constant-initializer.
	* bits/locfacets.tcc: Add template parameter to initialization list.

1998-10-02  Benjamin Kosnik  <bkoz@loony.cygnus.com>

	* bits/basic_string.h: Should just be <, not <=.

1998-10-01  Benjamin Kosnik  <bkoz@bliss.nabi.net>

	* bits/string.tcc (compare): Fix for strings that are similar, but
	not the same length.

1998-09-04  Brendan Kehoe  <brendan@cygnus.com>

	* bits/c++config.h: For __linux__, define _GNU_SOURCE.  This is
	required for us to get LONG_LONG_{MIN,MAX} out of gcc's limits.h.
	We can't check for __GLIBC__ here, since this header can be read
	before any system one (that would lead to features.h) being used.

	* stl/bits/stl_config.h (__STL_LONG_LONG): Re-enabled

	* stl/bits/std_limits.h [__STL_LONG_LONG]: Fix usage to use
	LONG_LONG_MIN, LONG_LONG_MAX, and ULONG_LONG_MAX.

	* stl/bits/stl_config.h: Don't do __STL_LONG_LONG, it uses
	LONGLONG_{MIN,MAX} which I can't find the origin of.

1998-09-03  Brendan Kehoe  <brendan@cygnus.com>

	* stl/bits/stl_iterator.h: Add extern decl of cin for now; where
	should this come from, if not iostream.h?
	(class istream_iterator): Make the new operator!= a friend also.

	* stl/bits/stl_config.h: Define __STL_HAS_WCHAR_T,
	__STL_MEMBER_TEMPLATE_CLASSES, and __STL_LONG_LONG.  Don't include
	_G_config.h like the egcs one does.

1998-09-01  Brendan Kehoe  <brendan@cygnus.com>

	* bits/string.tcc: Call `_M_destroy' instead of `destroy'.

	* bits/valarray_meta.h: Throughout, rename _Expr typedefs to be
	_Expr1 (or _Expr_def if it's taken), and change definitions.
	Avoids redecl of the template parm.

	* bits/string.tcc (basic_string copy ctor): Fix typo in declaration.
	(operator>>): Initialize __ERROR with ios_base::goodbit, not 0.

	* bits/std_streambuf.h (_POSIX_SOURCE): Only define if it's not
	already done.

	* src/locale-inst.cc: New file, **TOTAL HACK**.  There has GOT to
	be a better way to do this.

	* src/stlinst.cc: New file.

	* BUGS: New file, with various discovered bugs that need to be
	fixed.

	* Makefile.in, math/Makefile.in, string/Makefile.in,
	src/Makefile.in: Reran automake.

	Workarounds, these may not all be the final fixes:

	* bits/basic_ios.h (class basic_ios): Make _M_strbuf be protected,
	not private, for basic_istream::get() in std_istream.h to be able
	to use it.
	(basic_ios::operator void*): Don't use static_cast for the false
	case.
	(basic_ios::copyfmt): Fix `rhs.except' to be `rhs.exceptions ()'.
	This appears to have been in sep94, but didn't get corrected
	afterwards.

	* bits/basic_string.h (npos): Don't init here.
	* bits/string.tcc: Instead, do initialization here, to -1 instead
	of the size_type destructor.

	* src/traits.cc, src/wtraits.cc: New files.
	* bits/char_traits.h: For char_traits<char> and
	char_traits<wchar_t>, declare static, but define over in the src
	files.

	* bits/gslice.h: Comment out forward decls of _Array, valarray,
	gslice_array, and _GsliceExpression.

	* bits/std_cstdio.h [__sparc__ && __svr4__]: #undef all of
	clearerr, feof, ferror, getc, getchar, putc, putchar, stdin,
	stdout, and stderr.  Note we do get unresolved refs to stdin, but
	that'll get fixed by the "true" solution.

	* bits/std_ios.h: Include <bits/std_streambuf.h> to get the
	definition of basic_streambuf.h, which is used in basic_ios.h to
	call pubimbue.

	* bits/std_streambuf.h: Don't include libio.h for now.
	(class basic_streambuf): Define missing methods pubimbue and
	getloc.

	* src/Makefile.am (libstdc___la_SOURCES): Add stdexcept.cc,
	ios.cc, os_raw.cc, stdstreams.cc, locale.cc, localename.cc,
	locale-inst.cc, stlinst.cc, traits.cc, wtraits.cc.

	* src/ios.cc: Instantiate basic_ios<char> and basic_ios<wchar_t>.

	* src/locale.cc: Come up with munged versions of _S_toupper,
	_S_tolower, and _S_table instead of the glibc-specific ones, so
	they're at least defined, if not necessarily usable.  The glibc
	ones on any other system will yield unresolved refs to
	__ctype_{b,toupper,tolower}.

	* src/string.cc: Define all of ADDCS, ADDPS, et al.  Add
	basic_ios, basic_istream, basic_ostream.  Don't do char_traits
	anymore cuz of the explicit specialization in char_traits.h.
	Also add _S_string_copy, but this doesn't fix it -- cf the BUGS
	file for the details.

	* stl/bits/stl_algobase.h (equal): Fix to do `! (x==y)'.
	* stl/bits/stl_iterator.h (__distance): Likewise.

	* stl/bits/stl_iterator.h: As with 8/18 set, define missing op!=,
	op>, op<=, and op>= for reverse_iterator.  Also add op!= for
	istream_iterator.

1998-08-26  Brendan Kehoe  <brendan@cygnus.com>

	* bits/string.tcc (basic_string::compare (const char*)): Fix to
	return 0, not 1.

1998-08-25  Brendan Kehoe  <brendan@cygnus.com>

	This should really be fixed with __asm__ directives renaming the
	symbol, but keeping the function.
	* math/clogf.c (c_logf): Renamed from `clogf'.
	* math/clogl.c (c_logl): Renamed from `clogl'.
	* math/complex-stub.h (c_logf, c_logl): Change decls.

	* bits/locfacets.h (class _Numeric_get): For friend decls, rename
	_CharT and _InIter parms, since they duplicate the enclosing ones.

1998-08-19  Brendan Kehoe  <brendan@cygnus.com>

	Deal with conflict of the iostreams `clog' and our internal
	complex number `clog'.
	* src/complex.cc: Call `c_log' instead of `clog'.
	* math/clog.c (c_log):: Renamed from clog.
	* math/complex-stub.h (c_log): Renamed from clog decl.

	* bits/locfacets.h (class _Numeric_get): Tweak fwd decls of the
	get/put classes.
	(num_put::put): #if 0 long long version, since we don't declare or
	define the long long version of do_put.

1998-08-18 Nathan Myers <ncm@cantrip.org>

	* bits/basic_string.h: add basic_string<>::push_back(), fix return
	type of get_allocator (thanks to Ryszard Kabatek).
	* bits/char_traits.h: make init order of fpos<> members
	match decl order.
	* bits/ios_base.h: fix decls of ios_base bitmask & enum types, add
	flags _S_fd_in etc. for special filebuf ctor.
	* bits/locfacets.h: make _Numeric_get and _Format_cache public
	to work around problems in friend declarations.
	* bits/locfacets.tcc: qualify _S_get_cache in num_get<>::get(..bool&),
	fix random type errors & typos
	* bits/std_fstream.h: major refitting to bypass libio (for now),
	instrument to use bits/fstream.tcc template definitions
	* bits/std_iosfwd.h: mess with wrappers
	* bits/std_istream.h: remove meaningless comment
	* bits/std_ostream.h: instrument to work with ostream.tcc.
	* bits/std_streambuf.h: instrument to work with streambuf.tcc
	* bits/fstream.tcc: template defs for <fstream>
	* bits/ostream.tcc: template defs for <ostream>
	* bits/streambuf.tcc: template defs for <streambuf>
	* bits/os_raw.h: thin OS interface wrapper, to bypass libio (for now).
	* Delete .cc files, replace with bits/*.tcc
	src/fstream.cc
	src/istream.cc
	src/ostream.cc
	src/streambuf.cc
	* Add files:
	src/os_raw.cc: thin interface to OS, to bypass libio (for now).
	src/stdstreams.cc: cout, cin, etc. definitions
	(these still need work: must be init'd before user statics.)


1998-08-18  Brendan Kehoe  <brendan@cygnus.com>

	Sent to SGI before checkin:
	* stl/bits/stl_vector.h (operator!=, operator>, operator<=,
	operator>=): Define.
	* stl/bits/stl_bvector.h (vector<bool>::flip): Define method.
	* stl/bits/stl_deque.h (operator!=, operator>, operator<=,
	operator>=): Define.
	(operator==, operator<): Add inline.
	* stl/bits/stl_map.h (operator!=, operator<, operator<=,
	operator>=): Define.
	* stl/bits/stl_multimap.h (operator!=, operator<, operator<=,
	operator>=): Define.
	* stl/bits/stl_list.h (operator!=, operator<, operator<=,
	operator>=): Define.
	* stl/bits/stl_set.h (operator!=, operator<, operator<=,
	operator>=): Define.
	* stl/bits/stl_multiset.h (operator!=, operator<, operator<=,
	operator>=): Define.

	* bits/std_valarray.h (_Shift_left, _Shift_right): Inherit from
	unary_function.

1998-08-15 Nathan Myers <ncm@cantrip.org>

	* bits/ios_base.h: change nominal bitmask and enum types to real enums
	* bits/locfacets.h: make _Format_cache bool names usable by num_get
	* bits/locfacets.tcc: make num_get<>::get(... bool&) use _Format_cache
	* bits/std_fstream.h: minor cleanups: ctors delegate to open()
	* bits/std_iosfwd.h: more bitmask changes, for ios_base::iostate
	* bits/std_sstream.h: formatting cleanups

1998-08-14 Nathan Myers <ncm@cantrip.org>

	* bits/locfacets.tcc: implement num_get<>::do_get(..., bool&)
	* bits/locfacets.tcc: implement time_get<>::do_get_weekday
	* bits/locfacets.tcc: implement time_get<>::do_get_monthname
	* bits/locfacets.h:   fix missing argument in do_get_monthname
	(this is a bug in the standard, ref. 36 in my list.)
	* bits/locfacets.h: make month and day name caches mutable
	* bits/locfacets.tcc: various typos in get() functions
	* bits/sbuf_iter.h: fix omission in istreambuf_iterator::op++().
	* bits/std_streambuf.h: fix typo in sgetn (Brendan)

1998-08-12 Nathan Myers <ncm@cantrip.org>
	* move streambuf iterators to bits/sbuf_iter.h
	* optimize streambuf iterators
	* begin generalizing streambuf
	* begin implementing num_get<>::get (starting with bool)
	* patch stl/bits/stl_config.h so that relops operators are
	contained properly, out of the way.

1998-07-24 Nathan Myers <ncm@cantrip.org>
	* Fold in SGI 3.11 changes (uglified names, some algorithm
	  improvements, very minor bug fixes.)
	* Uglify names elsewhere to match (s/_T/_Tp/).
	* Begin work on optimized streambuf
	* Put complex.cc in namespace std:: (thanks Martin)

1998-07-17 Nathan Myers <ncm@cantrip.org>

	* bits/char_traits.h: add _Char_traits_match template.
	* bits/string.tcc: fix bugs in various find_last* members.
	* bits/basic_string.h: redeclare member _S_find.
	* stl/bits/stl_iterator.h: change member names in nonstandard
	  templates bidirectional_reverse_iterator and
	  random_access_reverse_iterator to match expected changes
	  in upstream source.
	* src/string.cc: fix definitions of stream operators.

1998-07-14 16:06  Ulrich Drepper  <drepper@cygnus.com>

	* Makefile.am (SUBDIRS): Add string.

	* configure.in: Test for long double functions separately.  Test for
	ISO C 89 float functions.  Test for endian.h and sys/isa_defs.h.
	Generate string/Makefile.

	* bits/c++config.h: Define mbstate_t for Solaris.

	* bits/char_traits.h: Remove unused #if.

	* bits/std_cwchar.h: Declare wide char string functions.

	* m4/stringfcts.m4: New file.

	* math/complex-stub.h: Declare nan.
	* math/nan.c: New file.

	* math/mathconf.h: Hack around missing endian.h file.
	Handle missing NAN definition.
	Handle missing float math functions.

	* src/Makefile.am (libstdc___la_LIBADD): Add libstring.la.
	(libstdc___la_LDFLAGS): Set version information.

	* src/complexl.cc: Don't compile any code if no long double functions
	are available.

	* string/Makefile.am: New file.
	* string/dummy.c: New file.
	* string/wmemchr.c: New file.
	* string/wmemcmp.c: New file.
	* string/wmemcpy.c: New file.
	* string/wmemmove.c: New file.
	* string/wmemset.c: New file.

1998-07-14 10:45  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in: Make it work.
	* install-sh: New file.
	* missing: New file.
	* mkinstalldirs: New file.
	* m4/mathfcts.m4: New file.
	* math/Makefile.am: New file.

	* bits/std_complex.h (conj): Mark specializations as inline.

	* math/carg.c: New file.
	* math/cargf.c: New file.
	* math/cargl.c: New file.
	* math/mycabs.c: New file.
	* math/mycabsf.c: New file.
	* math/mycabsl.c: New file.
	* math/signbit.c: New file.
	* math/signbitf.c: New file.
	* math/signbitl.c: New file.

	* math/ccos.c: Avoid ISO C 9x functionality.
	* math/ccosf.c: Likewise.
	* math/ccosh.c: Likewise.
	* math/ccoshf.c: Likewise.
	* math/ccoshl.c: Likewise.
	* math/ccosl.c: Likewise.
	* math/cexp.c: Likewise.
	* math/cexpf.c: Likewise.
	* math/cexpl.c: Likewise.
	* math/clog.c: Likewise.
	* math/clog10.c: Likewise.
	* math/clog10f.c: Likewise.
	* math/clog10l.c: Likewise.
	* math/clogf.c: Likewise.
	* math/clogl.c: Likewise.
	* math/cpow.c: Likewise.
	* math/cpowf.c: Likewise.
	* math/cpowl.c: Likewise.
	* math/csin.c: Likewise.
	* math/csinf.c: Likewise.
	* math/csinh.c: Likewise.
	* math/csinhf.c: Likewise.
	* math/csinhl.c: Likewise.
	* math/csinl.c: Likewise.
	* math/csqrt.c: Likewise.
	* math/csqrtf.c: Likewise.
	* math/csqrtl.c: Likewise.
	* math/ctan.c: Likewise.
	* math/ctanf.c: Likewise.
	* math/ctanh.c: Likewise.
	* math/ctanhf.c: Likewise.
	* math/ctanhl.c: Likewise.
	* math/ctanl.c: Likewise.

	* math/complex-stub.h: New file.

	* math/mathconf.h: New file.

	* src/Makefile.am: New file.

	* src/complex.cc: Use mathconf.h instead of complex.h.
	Don't use cabs, always use __mycabs.

1998-02-13  Brendan Kehoe  <brendan@cygnus.com>

	* iterator (class reverse_iterator): Do some tweaks to be in sync
	w/ the FDIS.
