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.
	
1999-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.

