1998-12-31 Benjamin Kosnik * bits/fstream.tcc: Add fstream ctor for cin/cout/etc. * bits/std_fstream.h: Ditto. * src/stdstreams.cc: Ditto. * math/cpowl.c: Fix header typo with last change. 1998-12-31 Benjamin Kosnik * COPYING: New file (GPL v 2). * LICENSE.STD: Remove. * ./*: Change license. 1998-12-30 Benjamin Kosnik * bits/std_streambuf.h (std): Remove static on _M_init. * bits/streambuf.tcc (std): Ditto. * bits/std_fstream.h: Add changes as discussed with Nathan, including state_type and codecvt_type members, the allocation of an internal buffer, the streamlined codecvt calls, etc. 1998-12-21 Benjamin Kosnik * bits/std_sstream.h: Tweak. * bits/fstream.tcc: Remove unused stubs. * bits/std_fstream.h: Tweak. 1998-12-17 Benjamin Kosnik * bits/std_streambuf.h: Move _IO_file_flags into basic_filebuf. Remove unused _IO_* members, possibly put into filebuf, which may need them. * bits/std_fstream.h: Add _M_flag. * bits/sbuf_iter.h: Tweak. * bits/std_cstdio.h: Add SEEK_SET, SEEK_END, SEEK_CUR. * bits/ios_base.h: Use. * src/stdstreams.cc: Modify to reflect standard ctors for filebuf. * src/misc-inst.cc: Ditto. * bits/os_raw.h: Wrap in std namespace. Model parameters on underlying C library calls instead of the underlying unix filesystem. * src/os_raw.cc (_S_os_open): Use fopen, and compute a mode string as per p.659. (_S_os_close): Model on fopen. (_S_os_read): Model on fread. (_S_os_write): Model on fwrite. (_S_os_seek): Model on fseek. * bits/ios_base.h: Tweak. * bits/std_iosfwd.h: Wrap libio.h include with extern "C". * bits/std_sstream.h: Tweak. * bits/sstream.tcc: Remove old, uncalled code. * bits/std_fstream.h: Major reconstruction. * bits/fstream.tcc: Disable for the time being. 1998-12-11 Benjamin Kosnik * bits/basic_string.h: Fix insert method. * stl/bits/stl_iterator.h: Remove previous hack. * bits/std_streambuf.h (sbumpc): Correct increment/return oddness. * bits/std_sstream.h: Fix more regressions. * testsuite/27/27stringbuf.C: Add (almost) complete tests. 1998-12-09 Benjamin Kosnik * bits/basic_string.h: Tweak. * stl/bits/stl_iterator.h: Specialize iterator_traits for int so that string::append can be instantiated. HACK--checkin basic_string::iterator class. 1998-12-07 Benjamin Kosnik * bits/std_sstream.h: Tweak. * bits/sstream.tcc: Tweak ctors. FIXME invalid friend defs. . WHERE ARE THEY?? * bits/sbuf_iter.h (istreambuf_iterator::equal): Change to new names for basic_streambuf data members. * bits/std_streambuf.h: Add getloc() initialization bits. basic_streambuf(): Initialize with global locale data. imbue(): Set _M_init. * bits/std_streambuf.h(seekoff, seekpos): Complete with invalid stream pos == pos_type(off_type(-1)). in_avail(): Complete default implementation. snextc, sbumpc, sputbackc, sungetc, sputc, setg, xsputn, underflow, uflow, xsgetn, showmany, sync: Ditto. * bits/std_streambuf.h: _M_snextc_helper(): Remove. * bits/streambuf.tcc (sputbackc): Temporarily remove, need to re-populate with in-line member functions that are too big. Add initialization for _M_init. 1998-12-03 Benjamin Kosnik * bits/sstream.tcc: Convert _Allocator to _Alloc. Add typedefs for basic_string and basic_streambuf. Scope _IO_buf_* pointers to streambuf_type. * src/stdstreams.cc (std): Disable wchar_t instantiations. * bits/c++config.h (_G_DEPRICATED): Add. (_G_USE_WCHAR_T): Add. * bits/std_streambuf.h: Radical reconstruction of basic_streambuf. Take out _Streambuf_base. Put _IO_FILE data member in basic_filebuf. * bits/streambuf.tcc (sputbackc): Remove ctor anti-def, Tweak. * bits/std_fstream.h: Add comment for implementation. * src/streambuf.cc: Remove. * src/Makefile.in: Remove streambuf.lo. * src/misc-inst.cc: Tweak. 1998-12-02 Benjamin Kosnik * bits/std_sstream.h: Add const_cast to rdbuf returns. * testsuite/27stringstream.C: Modify. 1998-11-25 Benjamin Kosnik * src/Makefile.in (libstdc___la_OBJECTS): Add streambuf.lo. (libstdc___la_SOURCES): Ditto. * bits/streambuf.tcc: Tweak. * src/streambuf.cc: New file, add out-of-line definitions for _Streambuf_base. * src/misc-inst.cc: Remove _Streambuf_base instantiations. Comment out wchar_t versions of the buffer instantiations, for now. * bits/std_streambuf.h: Wrap libio.h include with extern "C". Remove template wrapper around _Streambuf_base. Move IO_* data members into _Streambuf_base. Move _Streambuf_base members into streambuf.tcc. * bits/c++config.h (_G_USE_LIBIO): Enable. 1998-11-02 Nathan Myers * CHECKLIST: downgrade iterator implementations * DESIGN: fill out notes about unimplemented features 1998-10-31 Nathan Myers * CHECKLIST: itemized list of all interfaces, and status of each. 1998-10-30 Nathan Myers * RELEASE-NOTES: add notes about optional includes, linking, running * src/Makefile.am: handle header installs properly * src/Makefile.in: regenerate from new src/Makefile.am 1998-10-30 Benjamin Kosnik * bits/basic_string.h: Revert npos pending ciso646. * src/Makefile.am: Revert CXX flags for now. * src/Makefile.in: Ditto. 1998-10-30 Brendan Kehoe * bits/std_sstream.h: Re-order ctors to put base before member inits. 1998-10-30 Ryszard Kabatek * stl/bits/std_memory.h: Fix typo. 1998-10-30 Nathan Myers * src/string[A-Z]+.cc: change back to include "string.cc". * src/Makefile.am: revert filename changes. We need a different way to keep filenames in std/ from confusing Make. * bits/basic_string.h: define _S_max_size right, return it from string::max_size(); churn definition of npos again. * bits/string.tcc: fix _S_frob_size to avoid uint overflow. * bits/ios.cc: remove #ifdef on ios_base locale member initialization * BUGS: clear cruft. * C++STYLE: Touchup for release. * CHECKLIST: Touchup for release. * DESIGN: New file. * LICENSE.STD: Add requirement to retain copyrights and to provide the license with any copies. * README: Update for release. * TODO: Minor touchup for release. * RELEASE-NOTES: prepare for release 1998-10-29 Ulrich Drepper * src/string[A-Z]+.cc: Include stdstring.cc, not string.cc. * src/Makefile.am (CXXFLAGS): Define _GNU_SOURCE. * src/Makefile.am (CXXLINK): New variable. Make sure we don't use CXX to generate the shared object. * src/Makefile.am (headers): Remove duplicated char_traits.h. 1998-10-29 Brendan Kehoe * bits/basic_string.h (basic_string<>::max_size): Subtract 1, not 2, from npos, solving infinite loop problems. 1998-10-29 18:41 Ulrich Drepper * src/Makefile.am: Add rules to install headers. 1998-10-29 Nathan Myers * bits/std_ostream.h: Remove #ifdef on operator<< for long double * bits/ostream.tcc: Remove #ifdef on operator<< for long double * shadow/libio.h: * shadow/unistd.h: * shadow/bits/wrap_libio.h: * shadow/bits/wrap_unistd.h: New files. 1998-10-29 Brendan Kehoe * bits/ostream.tcc (operator<<): Wrap with #ifdef _G_HAVE_LONG_DOUBLE_IO, to match bits/std_ostream.h. 1998-10-29 Ulrich Drepper * src/Makefile.am: Add temporarily rules to make sure misc-inst.cc is not compiled with -fno-implicit-templates in effect. * src/Makefile.am (EXTRA_SOURCES): Add string.cc and wstring.cc here. (libstdc___la_SOURCES): Add all the string*.cc and wstring*.cc files. * src/stringADDCS.cc: Wrapper around string.cc to define individual function. * src/stringADDPS.cc: Likewise. * src/stringADDSC.cc: Likewise. * src/stringADDSP.cc: Likewise. * src/stringADDSS.cc: Likewise. * src/stringBIST.cc: Likewise. * src/stringBOST.cc: Likewise. * src/stringCHTR.cc: Likewise. * src/stringEQPS.cc: Likewise. * src/stringEQSP.cc: Likewise. * src/stringEQSS.cc: Likewise. * src/stringEXTRA.cc: Likewise. * src/stringGEPS.cc: Likewise. * src/stringGESP.cc: Likewise. * src/stringGESS.cc: Likewise. * src/stringGETLI.cc: Likewise. * src/stringGTPS.cc: Likewise. * src/stringGTSP.cc: Likewise. * src/stringGTSS.cc: Likewise. * src/stringINSER.cc: Likewise. * src/stringLEPS.cc: Likewise. * src/stringLESP.cc: Likewise. * src/stringLESS.cc: Likewise. * src/stringLTPS.cc: Likewise. * src/stringLTSP.cc: Likewise. * src/stringLTSS.cc: Likewise. * src/stringMAIN.cc: Likewise. * src/stringNEPS.cc: Likewise. * src/stringNESP.cc: Likewise. * src/stringNESS.cc: Likewise. * src/stringSCOPY.cc: Likewise. * src/wstringADDCS.cc: Wrapper around wstring.cc to define individual functions. * src/wstringADDPS.cc: Likewise. * src/wstringADDSC.cc: Likewise. * src/wstringADDSP.cc: Likewise. * src/wstringADDSS.cc: Likewise. * src/wstringBIST.cc: Likewise. * src/wstringBOST.cc: Likewise. * src/wstringCHTR.cc: Likewise. * src/wstringEQPS.cc: Likewise. * src/wstringEQSP.cc: Likewise. * src/wstringEQSS.cc: Likewise. * src/wstringEXTRA.cc: Likewise. * src/wstringGEPS.cc: Likewise. * src/wstringGESP.cc: Likewise. * src/wstringGESS.cc: Likewise. * src/wstringGETLI.cc: Likewise. * src/wstringGTPS.cc: Likewise. * src/wstringGTSP.cc: Likewise. * src/wstringGTSS.cc: Likewise. * src/wstringINSER.cc: Likewise. * src/wstringLEPS.cc: Likewise. * src/wstringLESP.cc: Likewise. * src/wstringLESS.cc: Likewise. * src/wstringLTPS.cc: Likewise. * src/wstringLTSP.cc: Likewise. * src/wstringLTSS.cc: Likewise. * src/wstringMAIN.cc: Likewise. * src/wstringNEPS.cc: Likewise. * src/wstringNESP.cc: Likewise. * src/wstringNESS.cc: Likewise. * src/wstringSCOPY.cc: Likewise. * src/string.cc: Remove now unneeded #defines now. 1998-10-29 Nathan Myers * bits/locfacets.tcc: Define num_put::put(... const void*), improve integer formatting. * bits/ostream.tcc: Delete cruft, rewrite various op<< as members, add definitions for double, long double, const void*. * bits/std_ostream.h: Move op<<'s back into class ostream, define some in-line. * bits/string.tcc: fix unnecessary-copying bug in op[], typos in string construction from input iterators that Brendan reported. 1998-10-28 Brendan Kehoe * stl/bits/stl_pair.h (op!=, op>, p<=, op>=): Add missing definitions. * bits/valarray_meta.h (class _Constant): Move declaration to the top, so the rest of the file can grok it. (_ApplyBinaryFunction::operator[]): Add missing parenthesis. * bits/std_sstream.h (basic_ostringstream::str): Fix typo of extra semicolon. (basic_stringstream::str, both instances): Likewise. 1998-10-28 Nathan Myers * bits/locfacets.h: fix num_put<>::falsename() * bits/locfacets.tcc: fix _Format_cache<>::_M_populate bool name init * testsuite/27/27octfmt.C, testsuite/27/27octfmt.C: new tests * bits/locfacets.tcc: touch up _S_group_digits. * src/misc-inst.cc: adjust _S_group_digits insts to match. 1998-10-27 Nathan Myers * stl/bits/stl_config.h: Turn off long long support, for now. * src/locale-inst.cc: Instantiate num_put<> only for ostreambuf_iterator, num_get only for istreambuf_iterator. * src/misc-inst.cc: Delete duplicate locale-related instantiations, add lots of new instantiations for num_put support function templates; remove junk about __match_parallel for ostreambuf_iterator. 1998-10-27 Nathan Myers * bits/locfacets.tcc: Make num_put's digit grouping work. * bits/string.tcc: More uglification. * src/ios.cc: initialize format cache right 1998-10-26 Nathan Myers * bits/basic_string.h: Uglify more names. * bits/fstream.tcc: Rewrite some filebut output handling. * bits/ios_base.h: Cosmetic. * bits/locfacets.h: Changes to _Format_cache for support of num_put. Also, specialize its default ctor for optimal default case. #ifdef out "long long" prototypes for now. * bits/locfacets.tcc: Do complete, optimized num_put<>::do_put implementation for integer types. (Still needs optimized std::copy() applied to ostreambuf_iterator to be optimal.) * bits/ostream.tcc: Write operator<< for long, bool types. Make other operators<< non-members, per spec. (Many still not implemented.) Identify those that fail to create a sentry. * bits/sbuf_iter: Cosmetic. * bits/std_fstream.h: Add some filebuf members. * bits/std_locale.h: Include for use in bits/locfacets.h * bits/std_ostream.h: Make member operators<< global, per spec. (Should do the same in std_istream.h.) * bits/std_string.h: Include for use in bits/locfacets.h * bits/string.tcc: Uglify names * shadow/bits/std_cstdlib.h: Optimize std::div and std::ldiv. * src/ios.cc: Specialize _Format_cache<> for char and wchar_t, for optimal default behavior. 1998-10-26 Benjamin Kosnik * src/Makefile.in (libstdc___la_SOURCES): Add misc-inst.cc again. 1998-10-21 Nathan Myers * src/locale.cc: make ctype operations actually work for glibc * CHECKLIST: add a comprehensive (i.e. huge) implementation checklist of stdlib facilities. Not filled in yet. 1998-10-20 Nathan Myers * bits/string.tcc: fix patching NULs on string ends. 1998-10-19 Nathan Myers * bits/std_iosfwd.h: eliminate "basic_" prefix on streambuf iterator forward declarations * bits/sbuf_iter.h: eliminate default template argument definitions on streambuf iterators (rely on decls). * TODO: add note about lazy facet construction * bits/basic_ios.h: hit operator void* again. This should be the last time we need to touch it. * bits/basic_ios.h: copyfmt now returns *this. * bits/basic_string.h: fix npos again. npos cannot be defined as zero. * bits/basic_string.h: put back overloaded constructors; adjust behavior for default allocator on copy constructor. * bits/char_traits.h: make not_eof return correct type. * bits/loccore.h: remove call to bits/std_stdexcept.h; subincludes cannot be in non-standard headers or we get include loops (bad) * bits/loccore.h: delete ifdef'd out workarounds for old compiler bugs. * bits/loccore.h: add apparatus to support lazy construction of facets. * bits/locfacets.tcc: Uglify names in __match_parallel decl. * bits/std_ios.h: add include of to get bad_cast for locale use_facet<> failure. * bits/std_locale.h: same. * bits/std_string.h: same. * bits/std_stdexcept.h: change exception member __msg from a reference to a regular object. * bits/string.tcc: add pasting a NUL on the end of strings after each operation. We had already left room for it, but previously plugged it only on a call to c_str(), but the WG changed the requirement when I wasn't looking. (Can't leave them alone for a second without they break something else.) * bits/valarray_meta.h: add Gaby's changes from 981018. * src/locale.cc: add new type _Bad_use_facet to be thrown on failure of use_facet<>(). * src/stdexcept.cc: remove pragma, remove bkoz's #if 0, comment out leftover member definitions 1998-10-16 Ulrich Drepper * string/Makefile.am: Revert last change. * math/Makefile.am: Likewise. 1998-10-15 Benjamin Kosnik * bits/std_sstream.h: Fix typo. 1998-10-15 Benjamin Kosnik * src/Makefile.am (libstdc___la_SOURCES): Add misc-inst.cc. * bits/std_sstream.h: Add typedefs, member definitions. Clean. * bits/std_stdexcept.h: Remove. 1998-10-15 Benjamin Kosnik * src/misc-inst.cc: Tweak again. * bits/std_sstream.h: Move out-of-line definitions to sstream.tcc. * bits/sstream.tcc: New file. 1998-10-15 Ulrich Drepper * configure.in: Test for machine/param.h, sys/machine.h and fp.h. Don't run AC_C_BIGENDIAN if machine/param.h or sys/machine.h are available. * math/mathconf.h: Include sys/machine.h, machine/param.h and fp.h if available. (INFINITE_P): Use IS_INF macro if available. 1998-10-15 Ulrich Drepper * math/Makefile.am (EXTRA_LTLIBRARIES): Renamed from noinst_LTLIBRARIES. * string/Makefile.am: Likewise. 1998-10-15 Ulrich Drepper * configure.in (AC_CHECK_FUNCS): Add finite, qfinite, fpclass, and qfpclass. (AC_CHECK_HEADERS): Add machine/endian.h. If no header specifying endianess is available run AC_C_BIGENDIAN. * math/clog10l.c: Add ugly hack around bug in Irix 6.2 header until fixincludes is fixed. * math/clogl.c: Likewise. * math/csqrtl.c: Likewise. * math/mycabsl.c: Likewise. * math/mathconf.h: Include machine/endian.h if possible. If no header describing endianess is available rely on WORDS_BIGENDIAN macro. (FINITE_P, FINITEF_P, FINITEL_P): Use finite functino if available. (INFINITE_P, INFINITEF_P, INFINITEL_P): Use fpclass function if available. * src/complex.cc (polar): Don't use sincos on OSF machines. 1998-10-09 Benjamin Kosnik * src/locale-inst.cc: Don't instantiate time_get for ostreambuf_iterators as time_get::do_get_weekday and time_get::do_get_monthname use __match_parallel, which is illegal for ostreambuf_iterators to use, as they don't have operator== or operator!=. * bits/std_stdexcept.h: Add dtor definitions. Use stl/bits/std_stdexcept.h instead of this file? * bits/sbuf_iter.h : Tweak. * src/misc-inst.cc: Tweak. 1998-10-09 Benjamin Kosnik * bits/std_stdexcept.h: New file. * src/stdexcept.cc: Define the following: logic_error::what() runtime_error::what() * src/misc-inst.cc: New file. * src/Makefile.in (libstdc___la_SOURCES): Add misc-inst.cc. (libstdc___la_OBJECTS): Add misc-inst.lo. * bits/basic_string.h: Disable non-standard ctor declarations. * bits/string.tcc: Disable definitions as well. * src/string.cc: Disable dependencies. * bits/sbuf_iter.h (std): Add default to template parameter for ostreambuf_iterator and istreambuf_iterator. * bits/std_iosfwd.h: Change istreambuf_iterator to basic_istreambuf_iterator. Likewise for ostreambuf. * bits/locfacets.tcc (__match_parallel): Fix typo. * src/ios.cc (imbue): Remove the _G_HAVE_LOCALE guards around ios_base::imbue. * bits/std_streambuf.h: Define _Streambuf_base::getloc(). * bits/std_istream.h: Define the following: get (basic_streambuf& __sb, char_type __delim) get (char_type* __s, streamsize __n, char_type __delim); getline (char_type* __s, streamsize __n, char_type __delim) * bits/loccore.h : FIXME friend template code for use_facet. Add std_stdexcept.h include so that range_error will be defined. Add explicit conversion to string for range_error throws. (HACK?) 1998-10-8 Ulrich Drepper * configure.in: Check for sincos, sincosf, and sincosl. * src/complex.cc (polar): Use sincos if available. * bits/c++config.h: Fix hack to get LONG_LONG* definitions on Linux. * stl/bits/std_limits.h: Include bits/c++config.h. HACK!!! * math/clog10.c: Fix typo (FP_INIFITE_P -> INFINITE_P). * math/cpow.c: Use c_log, not clog. * math/cpowf.c: Likewise. * math/cpowl.c: Likewise. * math/cexp.c: Remove unused fpclassify calls. Use FINITE_P instead of isfinite call. * math/mathconf.h (FINITE_P, FINITEF_P, FINITEL_P): Define using isfinite macro if it is available. (INFINITE_P, INFINITEF_P, INFINITEL_P): Define using isinf macro. * math/ccosf.c: Use appropriate test macros for this type. * math/ccoshf.c: Likewise. * math/ccoshl.c: Likewise. * math/ccosl.c: Likewise. * math/cexpf.c: Likewise. * math/cexpl.c: Likewise. * math/clog10f.c: Likewise. * math/clog10l.c: Likewise. * math/clogf.c: Likewise. * math/clogl.c: Likewise. * math/csinf.c: Likewise. * math/csinhf.c: Likewise. * math/csinhl.c: Likewise. * math/csinl.c: Likewise. * math/csqrtf.c: Likewise. * math/csqrtl.c: Likewise. * math/ctanf.c: Likewise. * math/ctanhf.c: Likewise. * math/ctanhl.c: Likewise. * math/ctanl.c: Likewise. 1998-10-06 Benjamin Kosnik * bits/basic_ios.h: Fix previous change. 1998-10-06 Benjamin Kosnik * bits/basic_ios.h: Add const_cast (operator void*): As per 5.2.9 p 2, make sure static_cast is well-formed. * bits/char_traits.h: No _CharT for specialization, change to 0. * bits/basic_string.h: As per 9.4.2 p4, initialize with constant-initializer. * bits/locfacets.tcc: Add template parameter to initialization list. 1998-10-02 Benjamin Kosnik * bits/basic_string.h: Should just be <, not <=. 1998-10-01 Benjamin Kosnik * bits/string.tcc (compare): Fix for strings that are similar, but not the same length. 1998-09-04 Brendan Kehoe * bits/c++config.h: For __linux__, define _GNU_SOURCE. This is required for us to get LONG_LONG_{MIN,MAX} out of gcc's limits.h. We can't check for __GLIBC__ here, since this header can be read before any system one (that would lead to features.h) being used. * stl/bits/stl_config.h (__STL_LONG_LONG): Re-enabled * stl/bits/std_limits.h [__STL_LONG_LONG]: Fix usage to use LONG_LONG_MIN, LONG_LONG_MAX, and ULONG_LONG_MAX. * stl/bits/stl_config.h: Don't do __STL_LONG_LONG, it uses LONGLONG_{MIN,MAX} which I can't find the origin of. 1998-09-03 Brendan Kehoe * stl/bits/stl_iterator.h: Add extern decl of cin for now; where should this come from, if not iostream.h? (class istream_iterator): Make the new operator!= a friend also. * stl/bits/stl_config.h: Define __STL_HAS_WCHAR_T, __STL_MEMBER_TEMPLATE_CLASSES, and __STL_LONG_LONG. Don't include _G_config.h like the egcs one does. 1998-09-01 Brendan Kehoe * bits/string.tcc: Call `_M_destroy' instead of `destroy'. * bits/valarray_meta.h: Throughout, rename _Expr typedefs to be _Expr1 (or _Expr_def if it's taken), and change definitions. Avoids redecl of the template parm. * bits/string.tcc (basic_string copy ctor): Fix typo in declaration. (operator>>): Initialize __ERROR with ios_base::goodbit, not 0. * bits/std_streambuf.h (_POSIX_SOURCE): Only define if it's not already done. * src/locale-inst.cc: New file, **TOTAL HACK**. There has GOT to be a better way to do this. * src/stlinst.cc: New file. * BUGS: New file, with various discovered bugs that need to be fixed. * Makefile.in, math/Makefile.in, string/Makefile.in, src/Makefile.in: Reran automake. Workarounds, these may not all be the final fixes: * bits/basic_ios.h (class basic_ios): Make _M_strbuf be protected, not private, for basic_istream::get() in std_istream.h to be able to use it. (basic_ios::operator void*): Don't use static_cast for the false case. (basic_ios::copyfmt): Fix `rhs.except' to be `rhs.exceptions ()'. This appears to have been in sep94, but didn't get corrected afterwards. * bits/basic_string.h (npos): Don't init here. * bits/string.tcc: Instead, do initialization here, to -1 instead of the size_type destructor. * src/traits.cc, src/wtraits.cc: New files. * bits/char_traits.h: For char_traits and char_traits, declare static, but define over in the src files. * bits/gslice.h: Comment out forward decls of _Array, valarray, gslice_array, and _GsliceExpression. * bits/std_cstdio.h [__sparc__ && __svr4__]: #undef all of clearerr, feof, ferror, getc, getchar, putc, putchar, stdin, stdout, and stderr. Note we do get unresolved refs to stdin, but that'll get fixed by the "true" solution. * bits/std_ios.h: Include to get the definition of basic_streambuf.h, which is used in basic_ios.h to call pubimbue. * bits/std_streambuf.h: Don't include libio.h for now. (class basic_streambuf): Define missing methods pubimbue and getloc. * src/Makefile.am (libstdc___la_SOURCES): Add stdexcept.cc, ios.cc, os_raw.cc, stdstreams.cc, locale.cc, localename.cc, locale-inst.cc, stlinst.cc, traits.cc, wtraits.cc. * src/ios.cc: Instantiate basic_ios and basic_ios. * src/locale.cc: Come up with munged versions of _S_toupper, _S_tolower, and _S_table instead of the glibc-specific ones, so they're at least defined, if not necessarily usable. The glibc ones on any other system will yield unresolved refs to __ctype_{b,toupper,tolower}. * src/string.cc: Define all of ADDCS, ADDPS, et al. Add basic_ios, basic_istream, basic_ostream. Don't do char_traits anymore cuz of the explicit specialization in char_traits.h. Also add _S_string_copy, but this doesn't fix it -- cf the BUGS file for the details. * stl/bits/stl_algobase.h (equal): Fix to do `! (x==y)'. * stl/bits/stl_iterator.h (__distance): Likewise. * stl/bits/stl_iterator.h: As with 8/18 set, define missing op!=, op>, op<=, and op>= for reverse_iterator. Also add op!= for istream_iterator. 1998-08-26 Brendan Kehoe * bits/string.tcc (basic_string::compare (const char*)): Fix to return 0, not 1. 1998-08-25 Brendan Kehoe This should really be fixed with __asm__ directives renaming the symbol, but keeping the function. * math/clogf.c (c_logf): Renamed from `clogf'. * math/clogl.c (c_logl): Renamed from `clogl'. * math/complex-stub.h (c_logf, c_logl): Change decls. * bits/locfacets.h (class _Numeric_get): For friend decls, rename _CharT and _InIter parms, since they duplicate the enclosing ones. 1998-08-19 Brendan Kehoe Deal with conflict of the iostreams `clog' and our internal complex number `clog'. * src/complex.cc: Call `c_log' instead of `clog'. * math/clog.c (c_log):: Renamed from clog. * math/complex-stub.h (c_log): Renamed from clog decl. * bits/locfacets.h (class _Numeric_get): Tweak fwd decls of the get/put classes. (num_put::put): #if 0 long long version, since we don't declare or define the long long version of do_put. 1998-08-18 Nathan Myers * bits/basic_string.h: add basic_string<>::push_back(), fix return type of get_allocator (thanks to Ryszard Kabatek). * bits/char_traits.h: make init order of fpos<> members match decl order. * bits/ios_base.h: fix decls of ios_base bitmask & enum types, add flags _S_fd_in etc. for special filebuf ctor. * bits/locfacets.h: make _Numeric_get and _Format_cache public to work around problems in friend declarations. * bits/locfacets.tcc: qualify _S_get_cache in num_get<>::get(..bool&), fix random type errors & typos * bits/std_fstream.h: major refitting to bypass libio (for now), instrument to use bits/fstream.tcc template definitions * bits/std_iosfwd.h: mess with wrappers * bits/std_istream.h: remove meaningless comment * bits/std_ostream.h: instrument to work with ostream.tcc. * bits/std_streambuf.h: instrument to work with streambuf.tcc * bits/fstream.tcc: template defs for * bits/ostream.tcc: template defs for * bits/streambuf.tcc: template defs for * bits/os_raw.h: thin OS interface wrapper, to bypass libio (for now). * Delete .cc files, replace with bits/*.tcc src/fstream.cc src/istream.cc src/ostream.cc src/streambuf.cc * Add files: src/os_raw.cc: thin interface to OS, to bypass libio (for now). src/stdstreams.cc: cout, cin, etc. definitions (these still need work: must be init'd before user statics.) 1998-08-18 Brendan Kehoe Sent to SGI before checkin: * stl/bits/stl_vector.h (operator!=, operator>, operator<=, operator>=): Define. * stl/bits/stl_bvector.h (vector::flip): Define method. * stl/bits/stl_deque.h (operator!=, operator>, operator<=, operator>=): Define. (operator==, operator<): Add inline. * stl/bits/stl_map.h (operator!=, operator<, operator<=, operator>=): Define. * stl/bits/stl_multimap.h (operator!=, operator<, operator<=, operator>=): Define. * stl/bits/stl_list.h (operator!=, operator<, operator<=, operator>=): Define. * stl/bits/stl_set.h (operator!=, operator<, operator<=, operator>=): Define. * stl/bits/stl_multiset.h (operator!=, operator<, operator<=, operator>=): Define. * bits/std_valarray.h (_Shift_left, _Shift_right): Inherit from unary_function. 1998-08-15 Nathan Myers * bits/ios_base.h: change nominal bitmask and enum types to real enums * bits/locfacets.h: make _Format_cache bool names usable by num_get * bits/locfacets.tcc: make num_get<>::get(... bool&) use _Format_cache * bits/std_fstream.h: minor cleanups: ctors delegate to open() * bits/std_iosfwd.h: more bitmask changes, for ios_base::iostate * bits/std_sstream.h: formatting cleanups 1998-08-14 Nathan Myers * bits/locfacets.tcc: implement num_get<>::do_get(..., bool&) * bits/locfacets.tcc: implement time_get<>::do_get_weekday * bits/locfacets.tcc: implement time_get<>::do_get_monthname * bits/locfacets.h: fix missing argument in do_get_monthname (this is a bug in the standard, ref. 36 in my list.) * bits/locfacets.h: make month and day name caches mutable * bits/locfacets.tcc: various typos in get() functions * bits/sbuf_iter.h: fix omission in istreambuf_iterator::op++(). * bits/std_streambuf.h: fix typo in sgetn (Brendan) 1998-08-12 Nathan Myers * move streambuf iterators to bits/sbuf_iter.h * optimize streambuf iterators * begin generalizing streambuf * begin implementing num_get<>::get (starting with bool) * patch stl/bits/stl_config.h so that relops operators are contained properly, out of the way. 1998-07-24 Nathan Myers * Fold in SGI 3.11 changes (uglified names, some algorithm improvements, very minor bug fixes.) * Uglify names elsewhere to match (s/_T/_Tp/). * Begin work on optimized streambuf * Put complex.cc in namespace std:: (thanks Martin) 1998-07-17 Nathan Myers * bits/char_traits.h: add _Char_traits_match template. * bits/string.tcc: fix bugs in various find_last* members. * bits/basic_string.h: redeclare member _S_find. * stl/bits/stl_iterator.h: change member names in nonstandard templates bidirectional_reverse_iterator and random_access_reverse_iterator to match expected changes in upstream source. * src/string.cc: fix definitions of stream operators. 1998-07-14 16:06 Ulrich Drepper * Makefile.am (SUBDIRS): Add string. * configure.in: Test for long double functions separately. Test for ISO C 89 float functions. Test for endian.h and sys/isa_defs.h. Generate string/Makefile. * bits/c++config.h: Define mbstate_t for Solaris. * bits/char_traits.h: Remove unused #if. * bits/std_cwchar.h: Declare wide char string functions. * m4/stringfcts.m4: New file. * math/complex-stub.h: Declare nan. * math/nan.c: New file. * math/mathconf.h: Hack around missing endian.h file. Handle missing NAN definition. Handle missing float math functions. * src/Makefile.am (libstdc___la_LIBADD): Add libstring.la. (libstdc___la_LDFLAGS): Set version information. * src/complexl.cc: Don't compile any code if no long double functions are available. * string/Makefile.am: New file. * string/dummy.c: New file. * string/wmemchr.c: New file. * string/wmemcmp.c: New file. * string/wmemcpy.c: New file. * string/wmemmove.c: New file. * string/wmemset.c: New file. 1998-07-14 10:45 Ulrich Drepper * configure.in: Make it work. * install-sh: New file. * missing: New file. * mkinstalldirs: New file. * m4/mathfcts.m4: New file. * math/Makefile.am: New file. * bits/std_complex.h (conj): Mark specializations as inline. * math/carg.c: New file. * math/cargf.c: New file. * math/cargl.c: New file. * math/mycabs.c: New file. * math/mycabsf.c: New file. * math/mycabsl.c: New file. * math/signbit.c: New file. * math/signbitf.c: New file. * math/signbitl.c: New file. * math/ccos.c: Avoid ISO C 9x functionality. * math/ccosf.c: Likewise. * math/ccosh.c: Likewise. * math/ccoshf.c: Likewise. * math/ccoshl.c: Likewise. * math/ccosl.c: Likewise. * math/cexp.c: Likewise. * math/cexpf.c: Likewise. * math/cexpl.c: Likewise. * math/clog.c: Likewise. * math/clog10.c: Likewise. * math/clog10f.c: Likewise. * math/clog10l.c: Likewise. * math/clogf.c: Likewise. * math/clogl.c: Likewise. * math/cpow.c: Likewise. * math/cpowf.c: Likewise. * math/cpowl.c: Likewise. * math/csin.c: Likewise. * math/csinf.c: Likewise. * math/csinh.c: Likewise. * math/csinhf.c: Likewise. * math/csinhl.c: Likewise. * math/csinl.c: Likewise. * math/csqrt.c: Likewise. * math/csqrtf.c: Likewise. * math/csqrtl.c: Likewise. * math/ctan.c: Likewise. * math/ctanf.c: Likewise. * math/ctanh.c: Likewise. * math/ctanhf.c: Likewise. * math/ctanhl.c: Likewise. * math/ctanl.c: Likewise. * math/complex-stub.h: New file. * math/mathconf.h: New file. * src/Makefile.am: New file. * src/complex.cc: Use mathconf.h instead of complex.h. Don't use cabs, always use __mycabs. 1998-02-13 Brendan Kehoe * iterator (class reverse_iterator): Do some tweaks to be in sync w/ the FDIS.