Benjamin Kosnik
5cdd50a591
stdio_filebuf.h: New file.
...
2002-04-30 Benjamin Kosnik <bkoz@redhat.com>
* include/ext/stdio_filebuf.h: New file.
* include/ext/enc_filebuf.h: New file.
* config/io/basic_file_stdio.h (__basic_file::sys_open): Add fd ctor.
* config/io/basic_file_stdio.cc: Same.
* include/bits/fstream.tcc (filebuf::_M_allocate_internal_buffer):
Remove _M_unbuf hacks.
(filebuf::_M_destroy_internal_buffer): Same.
(filebuf::filebuf(cfile, openmode, int_type): Remove definition.
(filebuf::fd): Remove.
* include/std/std_fstream.h (filebuf::_M_unbuf): Remove.
(filebuf::filebuf(__c_file*, openmode, int_type)): Remove.
(filebuf::fd): Remove.
* src/ios.cc (ios_base::_S_ios_create): Change to use specialized
filebufs.
(ios_base::_S_ios_destroy): Same.
* src/misc-inst.cc (file_filebuf<char>): Add instantiation.
* include/Makefile.am (ext_headers): Add ext_filebuf.h,
stdio_filebuf.h. * include/Makefile.in: Regenerate.
From-SVN: r52961
2002-04-30 19:04:43 +00:00
Benjamin Kosnik
5c352a47a6
re PR libstdc++/5280 (Problems with named locales and iostreams (gnulocale))
...
2002-04-29 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/5280
* include/bits/fstream.tcc (basic_filebuf::_M_underflow_common):
Check for eof.
* include/bits/streambuf_iterator.h: Match stream_iterator.h.
(istreambuf_iterator::operator++): Invalidate on eof.
(istreambuf_iterator::operator++(int)): Same.
(istreambuf_iterator::operator*): Same.
From-SVN: r52933
2002-04-30 07:22:11 +00:00
Benjamin Kosnik
d02475fdae
re PR libstdc++/5280 (Problems with named locales and iostreams (gnulocale))
...
2002-04-28 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/5280
* config/io/basic_file_stdio.h (__basic_file::sys_getc): Return int.
(__basic_file::sys_ungetc): Take int.
* config/io/basic_file_stdio.cc (__basic_file::sys_ungetc): Same.
* include/bits/fstream.tcc (basic_filebuf::_M_underflow_common):
Use sys_getc for unbuffered input.
* testsuite/27_io/narrow_stream_objects.cc (test06): New.
* src/ios.cc (_M_grow_words): Adjust error checking.
* testsuite/27_io/ios_base_storage.cc: Same.
From-SVN: r52879
2002-04-29 07:00:50 +00:00
Loren J. Rittle
9385d9cb0d
std_fstream.h (basic_filebuf::sync): Hoist unconditional flush on lower-layer handle to here...
...
* include/std/std_fstream.h (basic_filebuf::sync): Hoist
unconditional flush on lower-layer handle to here...
* include/bits/fstream.tcc (basic_filebuf::_M_really_overflow):
...from here. Optimize remaining _M_file.sync() call pattern.
* testsuite/27_io/narrow_stream_objects.cc (test04): New test.
(test05): Likewise.
From-SVN: r52699
2002-04-24 00:33:28 +00:00
Jason Merrill
736020b4a7
fstream.tcc (basic_filebuf::seekoff): Fix for output-only filebufs.
...
* include/bits/fstream.tcc (basic_filebuf::seekoff): Fix for
output-only filebufs.
* include/std/std_fstream.h (basic_filebuf::_M_set_indeterminate):
Likewise.
(basic_filebuf::_M_set_determinate): Likewise.
From-SVN: r52685
2002-04-23 17:56:10 -04:00
Jason Merrill
74c263af80
re PR libstdc++/6414 (g++ 3.1 tellg() regression within last week)
...
PR libstdc++/6414
* include/bits/fstream.tcc (basic_filebuf::seekoff): Adjust return
value properly in the trivial case.
* testsuite/27_io/istream_seeks.cc (test04): Make sure that
tellg() returns the right value after a read.
From-SVN: r52679
2002-04-23 17:01:22 -04:00
Jason Merrill
5066927d9e
re PR libstdc++/4150 (catastrophic performance decrease in C++ code)
...
PR libstdc++/4150
* include/std/std_streambuf.h (basic_streambuf::_M_set_indeterminate):
Move to filebuf.
(basic_streambuf::_M_set_determinate): Likewise.
(basic_streambuf::_M_is_indeterminate): Likewise.
* include/bits/std_fstream.h (basic_filebuf::_M_filepos): New
non-static data member.
(basic_filebuf::_M_underflow_common): New non-static member function.
(basic_filebuf::_M_underflow, _M_uflow): Call it.
(basic_filebuf::sync): Avoid useless seeking.
(basic_filebuf::_M_set_indeterminate): Move here from streambuf.
Set _M_filepos.
(basic_filebuf::_M_set_determinate): Likewise.
(basic_filebuf::_M_is_indeterminate): Likewise.
* include/bits/fstream.tcc (basic_filebuf::_M_really_overflow): Seek
back to _M_out_beg if necessary.
(basic_filebuf::seekoff): Likewise.
(basic_filebuf::_M_underflow_common): Generalization of old
underflow(). Don't seek back to _M_in_beg.
* src/ios.cc: Lose _GLIBCPP_AVOID_FSEEK stuff.
* config/os/solaris/solaris2.?/bits/os_defines.h: Likewise.
* config/os/bsd/freebsd/bits/os_defines.h: Likewise.
* config/os/mingw32/bits/os_defines.h: Likewise.
* testsuite/27_io/filebuf_virtuals.cc (test05): Don't overspecify
ungetc test.
From-SVN: r52634
2002-04-22 16:28:05 -04:00
Benjamin Kosnik
d3a193e36c
re PR libstdc++/4164 (33 Memory Leak when using iostream)
...
2002-04-15 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/4164
Valgrind fixes.
* config/io/basic_file_stdio.cc (__basic_file::~__basic_file):
Call close.
(__basic_file::close): Call fflush. Correct return if fclose ok.
(__basic_file::is_open): Make const.
Change __c_file_type to __c_file.
* config/io/basic_file_stdio.h: Change __c_file_type to __c_file.
(__basic_file::is_open): Make const.
* config/io/c_io_stdio.h: Change __c_file_type to __c_file.
* include/std/std_fstream.h (filebuf::_M_allocate_file): Remove.
(filebuf::_M_unbuf): Add.
(filebuf::_M_file): Change to non-pointer.
(filebuf::_M_allocate_pback_buffer): Remove.
* include/bits/fstream.tcc (filebuf::_M_allocate_file): Remove.
(filebuf::_M_allocate_internal_buffer): Use _M_unbuf.
Change initialization list for _M_file change.
(filebuf::_M_allocate_pback_buffer): Remove.
Change _M_file usage to reflect non-pointer data member.
* config/locale/generic/c_locale.cc
(locale::facet::_S_create_c_locale): Add parameter.
* config/locale/generic/collate_members.cc: Change
_M_compare_helper to _M_compare.
Change _M_transform_helper to _M_transform.
* config/locale/generic/monetary_members.cc: Changeup data types.
Add dtors.
* config/locale/generic/numeric_members.cc: Add dtors.
* config/locale/generic/time_members.cc: Add dtors.
* config/locale/gnu/c_locale.cc: Add parameter.
* config/locale/gnu/collate_members.cc:Change
_M_compare_helper to _M_compare.
Change _M_transform_helper to _M_transform.
* config/locale/gnu/ctype_members.cc: Better error checking.
* config/os/gnu-linux/bits/ctype_noninline.h: Better error checking.
* config/locale/gnu/messages_members.cc: Tweak comment.
* config/locale/gnu/monetary_members.cc: Change data types.
Add dtors.
* config/locale/gnu/numeric_members.cc: Add dtors, better error
checking.
* config/locale/gnu/time_members.cc: Same.
* config/locale/ieee_1003.1-2001/c_locale.cc
(locale::facet::_S_create_c_locale): Add parameter.
* config/locale/ieee_1003.1-2001/c_locale.h: Correct typedef.
* config/locale/ieee_1003.1-2001/codecvt_specializations.h: Remove
bogus ctor.
* include/bits/locale_facets.h (moneypunct): Use string literals.
Don't define dtor.
(numpunct): Same.
(__timepunct): Same.
(locale::_Impl::_M_facets): Change from vector to array.
(locale::_Impl::_M_names): Change from array of strings to array
of string literals.
(locale::facet::_S_create_c_locale): Add parameter.
(locale::locale::_S_num_facets): Move to...
(locale::_Impl::_M_facets_size): Here.
* include/bits/locale_facets.tcc: Fixups for _M_facets, _M_name
changes.
* include/bits/localefwd.h: (locale:🆔 :_M_id): Add member function.
(locale::_Impl::_Impl(facet**, size_t, bool)): Add.
(locale::_Impl::_Impl(string, size_t)): Change to
(locale::_Impl::_Impl(const char*, size_t)): This.
* include/bits/streambuf.tcc (streambuf::_S_pback_size): Define.
* include/std/std_streambuf.h (streambuf::_M_pback_size): Change to
(streambuf::_S_pback_size): This.
* src/globals.cc: Add pre-allocations for "C" facets.
* src/locale-inst.cc: Remove vector instantiations.
* src/locale.cc: Remove vector include. Fixups for _M_names,
_M_facets changes.
* src/localename.cc: Same.
* include/bits/stl_vector.h: Fix odd formatting.
* include/bits/basic_string.tcc: Tweak comment.
* libsupc++/new: Make sure parameters are uglified.
* libsupc++/typeinfo: Same.
* testsuite/22_locale/num_get_members_char.cc: Fixup.
* testsuite/22_locale/num_get_members_wchar_t.cc: Same.
* testsuite/27_io/filebuf_members.cc: Same.
From-SVN: r52345
2002-04-16 00:45:36 +00:00
Richard Henderson
b773723097
fstream.tcc (basic_filebuf<>::open): Fix & ordering.
...
* include/bits/fstream.tcc (basic_filebuf<>::open): Fix & ordering.
* include/bits/ostream.tcc (basic_ostream<>::operator<<(long)): Same.
(basic_ostream<>::operator<<(long long)): Same.
From-SVN: r52198
2002-04-11 22:42:23 -07:00
Benjamin Kosnik
dcf5a5dec8
sstream.tcc: Clean up bit ops.
...
2002-04-09 Benjamin Kosnik <bkoz@redhat.com>
Richard Henderson <rth@redhat.com>
* include/bits/sstream.tcc: Clean up bit ops.
* include/bits/fstream.tcc: Same.
Co-Authored-By: Richard Henderson <rth@redhat.com>
From-SVN: r52070
2002-04-09 08:48:33 +00:00
Benjamin Kosnik
b988dfc58f
fstream.tcc (filebuf::seekpos): Fix.
...
2002-04-08 Benjamin Kosnik <bkoz@redhat.com>
libstdc++/5180
* include/bits/fstream.tcc (filebuf::seekpos): Fix.
* include/std/std_fstream.h: Clean.
* include/bits/ostream.tcc: Remove extraneous variables.
* include/bits/sstream.tcc (stringbuf::seekoff): Be strict about
open modes and which modes.
(stringbuf::seekpos): Same.
* testsuite/27_io/stringbuf_virtuals.cc: New tests.
From-SVN: r52057
2002-04-09 06:14:32 +00:00
Benjamin Kosnik
3b79452813
locale_facets.tcc: Add pragma GCC system_header.
...
2002-02-16 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/locale_facets.tcc: Add pragma GCC system_header.
* include/bits/fstream.tcc: Same.
* include/bits/sstream.tcc: Same.
* include/bits/ostream.tcc: Same.
* include/bits/istream.tcc: Same.
* include/bits/streambuf.tcc: Same.
* include/bits/basic_ios.tcc: Same.
* include/bits/basic_string.tcc: Same.
From-SVN: r49809
2002-02-16 19:33:43 +00:00
Benjamin Kosnik
a32e3c097e
Tune for size.
...
2002-02-15 Benjamin Kosnik <bkoz@redhat.com>
Tune for size.
* src/string-inst.cc (string::_Rep::_S_terminal): Remove redundant
explicit instantiation.
(string::_Rep::_S_max_size): Same.
* include/bits/basic_string.tcc: Add extern explicit
instantiations for string, wstring.
* include/bits/basic_ios.tcc: Add extern explicit instantiations
for ios, wios.
* include/bits/streambuf.tcc: Same, for streambuf, wstreambuf.
* include/bits/istream.tcc: Same, for istream, wistream.
* include/bits/ostream.tcc: Same for ostream, wostream, iostream,
wiostream.
* include/bits/sstream.tcc: Same, for stringbuf, wstringbuf,
istringstream, wistringstream, ostringstream, wostringstream,
stringstream, wstringstream.
* include/bits/fstream.tcc: Same, for filebuf, wfilebuf, ifstream,
wifstream, ofstream, wofstream, fstream, wfstream.
* src/misc-inst.cc: Correct comments.
Add iomanip instantiations for wide streams.
* include/std/std_iomanip.h: Same.
* include/bits/locale_facets.tcc: Same.
* include/std/std_streambuf.h: Correct
_GLIBCPP_FULLY_COMPLIANT_HEADERS guard.
* include/std/std_sstream.h: Same.
* include/std/std_ostream.h: Same.
* include/std/std_istream.h: Same.
* include/std/std_fstream.h: Same.
* include/std/std_streambuf.h: Add definitions for private copy
ctor and assignment operator.
* include/std/std_istream.h: Remove declared but undefined copy
ctor and assignment operator. This is taken care of in ios_base,
so adding it in the derived class as well is superfluous.
* include/std/std_ostream.h: Same.
* include/bits/basic_ios.h (basic_ios::clear): Don't inline.
* include/bits/basic_ios.tcc (basic_ios::clear): Move definition here.
From-SVN: r49798
2002-02-16 00:19:13 +00:00
Benjamin Kosnik
e7d7a7a734
2002-02-08 Benjamin Kosnik <bkoz@redhat.com>
...
* include/bits/locale_facets.h
(numpunct<_CharT>::_M_initialize_numpunct): Remove definition.
(__timepunct<_CharT>::_M_initialize_timepunct): Same.
(__timepunct<_CharT>::_M_put_helper): Same.
(moneypunct<_CharT, _Intl>::_M_initialize_moneypunct): Same.
* include/bits/fstream.tcc (filebuf::underflow): Remove
__codecvt_type typedef.
(filebuf::_M_convert_to_external): Same.
From-SVN: r49614
2002-02-08 12:59:49 +00:00
Benjamin Kosnik
07814743cf
std_fstream.h (filebuf::__file_type): Change to __basic_file<char>.
...
2002-02-07 Benjamin Kosnik <bkoz@redhat.com>
libstdc++/5286
libstdc++/3860
* include/std/std_fstream.h (filebuf::__file_type): Change to
__basic_file<char>.
(filebuf::_M_convert_to_external): Declare.
* include/bits/fstream.tcc (filebuf::_M_convert_to_external): Define
codecvt bits for wide streams.
(filebuf::_M_really_overflow): Use it.
(filebuf::underflow): Use codecvt.
* config/locale/codecvt_specializations_ieee_1003.1-200x.h:
(codecvt<__enc_traits>::do_out): Deal with partial.
(codecvt<__enc_traits>::do_encoding): Return something useful.
* src/codecvt.cc (codecvt<wchar_t>::do_encoding): Return sizeof
wchar_t.
* testsuite/22_locale/codecvt_members_unicode_char.cc (test01):
Change expected encoding output.
(test02): Same.
* testsuite/22_locale/codecvt_members_wchar_t_char.cc (test01): Same.
(test02): Same.
From-SVN: r49601
2002-02-08 01:34:41 +00:00
Benjamin Kosnik
6f48900c2b
codecvt_specializations_ieee_1003.1-200x.h: Initialize all data members in copy ctor.
...
2002-01-31 Benjamin Kosnik <bkoz@redhat.com>
* config/locale/codecvt_specializations_ieee_1003.1-200x.h:
Initialize all data members in copy ctor. Make ctors explicit.
(__enc_traits::__enc_traits()): Default ctor does nothing.
(__enc_traits::_M_init): Guard against multiple iconv_opens.
* include/std/std_sstream.h (basic_stringbuf): Make data members
protected.
* include/std/std_fstream.h (basic_filebuf): Same.
* include/std/std_streambuf.h: Tweak.
* include/bits/streambuf.tcc: Same.
* include/bits/sstream.tcc: Same.
* include/bits/fstream.tcc: Same.
From-SVN: r49387
2002-02-01 03:20:39 +00:00
Benjamin Kosnik
e67051746f
fstream.tcc (filebuf::close()): Fix close for input streams.
...
2002-01-25 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/fstream.tcc (filebuf::close()): Fix close for input
streams.
(filebuf::_M_really_overflow): Match indeterminate and sync calls.
* testsuite/27_io/filebuf.cc: Compile only.
* testsuite/27_io/filebuf_members.cc: Move tests to here.
* testsuite/27_io/filebuf_virtuals.cc: And here.
Revert sungetc, sync changes for expected values.
* testsuite/27_io/filebuf-*: Move to...
* testsuite/27_io/filebuf_virtuals-*: ...here.
* testsuite/27_io/istream.cc: Compile only, activate.
* testsuite/27_io/ostream.cc: Same.
* testsuite/27_io/iostream.cc: New.
* testsuite/27_io/iostream_members.cc: New.
From-SVN: r49236
2002-01-26 01:55:09 +00:00
Benjamin Kosnik
9fbcb61abb
[multiple changes]
...
2002-01-08 Benjamin Kosnik <bkoz@redhat.com>
libstdc++/2913
libstdc++/4879
* include/bits/fstream.tcc (filebuf::_M_really_overflow): Test
return value of _M_file->sync().
(filebuf::showmanyc): Check for is_open.
* include/std/fstream (filebuf::sync): Tweak.
* testsuite/27_io/filebuf.cc: Tweak.
2002-01-08 John Fardo <jfardo@laurelnetworks.com>
Brad Garcia <garsh@attbi.com>
* testsuite/27_io/filebuf_members.cc: Add test.
From-SVN: r48654
2002-01-08 19:57:01 +00:00
Phil Edwards
e9c46bb75e
basic_file.h (__basic_file::fd): New function.
...
2001-12-17 Phil Edwards <pme@gcc.gnu.org>
* include/bits/basic_file.h (__basic_file::fd): New function.
* config/io/basic_file_stdio.h (__basic_file::fd): Define.
* include/bits/std_fstream.h (basic_filebuf::fd): New function.
* include/bits/fstream.tcc (basic_filebuf::fd): Define.
* testsuite/27_io/filebuf_members.cc (test_02): New test.
From-SVN: r48107
2001-12-17 17:08:57 +00:00
Benjamin Kosnik
99e9125d77
fstream.tcc (filebuf::showmanyc): Simplify.
...
2001-10-29 Benjamin Kosnik <bkoz@redhat.com>
libstdc++/3647
* include/bits/fstream.tcc (filebuf::showmanyc): Simplify.
* testsuite/27_io/filebuf.cc (test07): New test.
(test03): Modify showmanyc test.
From-SVN: r46610
2001-10-29 19:29:29 +00:00
Phil Edwards
31bfa17776
backport: basic_string.h: Qualify symbols with 'template'.
...
2001-07-19 Phil Edwards <pme@sources.redhat.com>
Mark Mitchell <mark@codesourcery.com>
Merge from cp-parser-branch.
* include/bits/basic_string.h: Qualify symbols with 'template'.
* include/bits/basic_string.tcc: Likewise.
* include/bits/fstream.tcc: Likewise.
* include/bits/istream.tcc: Likewise.
* include/bits/sstream.tcc: Likewise.
* include/bits/std_istream.h: Likewise.
* include/bits/stl_iterator.h: Likewise.
* include/bits/streambuf.tcc: Likewise.
* src/gen-num-limits.cc: Add 'template<>' to specializations.
* src/locale.cc: Likewise.
Co-Authored-By: Mark Mitchell <mark@codesourcery.com>
From-SVN: r44167
2001-07-20 00:09:31 +00:00
Loren J. Rittle
ddf1e65262
porting.texi: Add documentation about libstdc++-v3-specific macros that are currently...
...
libstdc++/2071
* porting.texi: Add documentation about libstdc++-v3-specific
macros that are currently included in os_defines.h files.
* config/basic_file_stdio.h (sys_getc): New method.
(sys_ungetc): New method.
* include/bits/basic_file.h: (sys_getc): New method signature.
(sys_ungetc): New method signature.
* include/bits/fstream.tcc (underflow): Add conditional code
paths which avoid using short seeks on streams (especially
useful when the stream might be interactive or a pipe). At
the moment, this alternate path only avoids seeking when the
``buffer size'' of underflow() is 1 since the C standard only
guarantees buffer space for one ungetc (this technique could
be extended since *-*-solaris* supports buffering for 4 calls
to ungetc and *-*-*bsd* supports buffering limited only by
memory resources). Also, _GLIBCPP_AVOID_FSEEK must be defined
in a port's os_defines.h file for this alternate path to even
be considered. As a bonus, the idiom of using getc/ungetc
requires no system calls whereas fseek maps to one or two
system call(s) on many platforms.
* config/os/bsd/freebsd/bits/os_defines.h (_GLIBCPP_AVOID_FSEEK):
Define it.
* config/os/solaris/solaris2.5/bits/os_defines.h
(_GLIBCPP_AVOID_FSEEK): Likewise.
* config/os/solaris/solaris2.6/bits/os_defines.h
(_GLIBCPP_AVOID_FSEEK): Likewise.
* config/os/solaris/solaris2.7/bits/os_defines.h
(_GLIBCPP_AVOID_FSEEK): Likewise.
From-SVN: r43278
2001-06-12 23:09:09 +00:00
Benjamin Kosnik
990101f973
mkcheck.in (static_fail): Remove S_FLAG decoration on output.
...
2001-05-21 Benjamin Kosnik <bkoz@redhat.com>
* mkcheck.in (static_fail): Remove S_FLAG decoration on output.
* include/bits/std_sstream.h (stringbuf::setbuf): Require both
arguments to be non-null.
* include/bits/fstream.tcc (filebuf::_M_allocate_buffers): Only
try allocations if allocated size is greater than zero.
(filebuf::_M_filebuf_init): Change to
(filebuf::_M_allocate_file): Which is what it does now.
(filebuf::_M_allocate_bufers): Change to
(filebuf::_M_allocate_internal_buffer): This, and create
(filebuf::_M_allocate_pback_buffer): New.
(filebuf::_M_destroy_internal_buffer): New.
(filebuf::_M_buf_allocated): New data member.
(filebuf::setbuf): Use new logic, allow use of external buffer.
* testsuite/27_io/stringbuf_virtuals.cc: New file.
* testsuite/27_io/filebuf_virtuals.cc: New file.
From-SVN: r42458
2001-05-22 18:48:19 +00:00
Benjamin Kosnik
39003c9902
std_fstream.h (basic_filebuf): Change signature.
...
2001-05-07 Benjamin Kosnik <bkoz@redhat.com>
libstdc++/2523
* include/bits/std_fstream.h (basic_filebuf): Change signature.
* include/bits/fstream.tcc (basic_filebuf): Change bool argument
to int_type, pass in buffer size info.
* include/bits/std_streambuf.h (_M_is_indeterminate): Check for
unbuffered situation.
(underflow): Remove codecvt bits for the time being.
* include/bits/istream.tcc (istream::sentry): Avoid sputbackc call.
* include/bits/locale_facets.tcc (_M_extract): Cache dereference
values from iterators, clean.
* src/locale.cc: Ditto.
* include/bits/sbuf_iter.h: Format.
* src/ios.cc: Explicitly pass in buffer sizes at creation time.
* testsuite/27_io/narrow_stream_objects.cc: Add tests.
* testsuite/27_io/filebuf.cc: Tweaks.
* testsuite/27_io/filebuf_members.cc: Tweaks.
From-SVN: r41908
2001-05-08 03:07:56 +00:00
Benjamin Kosnik
127644626f
fstream.tcc: Add bool parameter to filebuf ctor.
...
2001-04-03 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/fstream.tcc: Add bool parameter to filebuf ctor.
* include/bits/ios_base.h(ios_base::Init): Remove _M_cout, _M_cin,
_M_cerr, _M_wcout, _M_wcin, _M_wcerr.
(ios_base::Init::_S_ios_create): New.
(ios_base::Init::_S_ios_destroy): New.
* include/bits/std_fstream.h: Change ctor args.
* src/ios.cc (ios_base::Init::Init): Use _S_ios_create.
(ios_base::Init::~Init): Use _S_ios_destroy.
(ios_base::sync_with_stdio): Use new members.
* testsuite/27_io/filebuf_members.cc: Fix calling conventions for
filebuf ctor.
From-SVN: r41072
2001-04-04 01:02:26 +00:00
Benjamin Kosnik
5fa9abc3e9
basic_file.h (get_fileno): Remove.
...
2001-03-26 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/basic_file.h (get_fileno): Remove.
(_M_fileno): Remove.
(_M_cfile_created): Add.
(basic_file::basic_file(__c_file_type*, openmode): Add.
(basic_file::basic_file(int, const char*, openmode): Remove.
* include/bits/fstream.tcc (basic_fstream::basic_filebuf(int __fd,
const char*, ios_base::openmode): Don't allocate
internal buffers. Turn off internal buffers.
(basic_filebuf::overflow): Remove test for null buffer.
(basic_filebuf::_M_really_overflow): Same. Allow unbuffered use.
* include/bits/streambuf.cc: Tweak.
* include/bits/std_ostream.h: Tweak.
* config/basic_file_libio.h: Same.
* config/basic_file_stdio.h: Same.
* src/ios.cc (ios_base::Init::Init()): Unbuffer stdout by default.
* testsuite/27_io/filebuf_members.cc: Tweaks.
* testsuite/27_io/ios_base_members_static.cc: Tweaks.
From-SVN: r40863
2001-03-27 03:48:17 +00:00
Benjamin Kosnik
69302d8b5e
std_streambuf.h: Remove cached locale facets.
...
2001-03-14 Benjamin Kosnik <bkoz@redhat.com>
libstdc++/2020
* include/bits/std_streambuf.h: Remove cached locale facets.
(basic_streambuf::_M_buf_fctype): Remove.
(basic_streambuf::~basic_streambuf): Remove here.
(basic_streambuf::basic_streambuf): Same.
(basic_streambuf::imbue): Same.
* include/bits/fstream.tcc (filebuf::imbue): Remove _M_buf_fctype.
* include/bits/std_fstream.h (basic_filebuf::_M_fcvt): Remove.
(basic_filebuf::~basic_filebuf()): Remove here.
* include/bits/fstream.tcc (basic_filebuf::basic_filebuf): Same.
(basic_filebuf::imbue): Same.
* include/bits/localefwd.h (_Count_ones): Remove.
(locale::_S_num_categories): Just use 6, since this doesn't
actually change, ever.
* include/bits/locale_facets.tcc (has_facet): Simplify.
(use_facet): Same.
* testsuite/27_io/filebuf.cc (test06): Add tests.
From-SVN: r40472
2001-03-14 20:46:34 +00:00
Phil Edwards
d53d7f6e61
algo.h: Use std not __STD.
...
2001-03-04 Phil Edwards <pme@sources.redhat.com>
http://gcc.gnu.org/ml/libstdc++/2001-03/msg00015.html
* include/backward/algo.h: Use std not __STD. Remove unneeded
macros and "never happens" code. Adjust to C++STYLE guidelines.
* include/backward/algobase.h: Likewise.
* include/backward/alloc.h: Likewise.
* include/backward/bvector.h: Likewise.
* include/backward/deque.h: Likewise.
* include/backward/function.h: Likewise.
* include/backward/hash_map.h: Likewise.
* include/backward/hash_set.h: Likewise.
* include/backward/hashtable.h: Likewise.
* include/backward/heap.h: Likewise.
* include/backward/iterator.h: Likewise.
* include/backward/list.h: Likewise.
* include/backward/map.h: Likewise.
* include/backward/multimap.h: Likewise.
* include/backward/multiset.h: Likewise.
* include/backward/pair.h: Likewise.
* include/backward/rope.h: Likewise.
* include/backward/set.h: Likewise.
* include/backward/slist.h: Likewise.
* include/backward/stack.h: Likewise.
* include/backward/strstream: Likewise.
* include/backward/tempbuf.h: Likewise.
* include/backward/tree.h: Likewise.
* include/backward/vector.h: Likewise.
* include/bits/basic_ios.h: Likewise.
* include/bits/basic_ios.tcc: Likewise.
* include/bits/basic_string.h: Likewise.
* include/bits/c++config: Likewise.
* include/bits/concept_checks.h: Likewise.
* include/bits/fpos.h: Likewise.
* include/bits/fstream.tcc: Likewise.
* include/bits/functexcept.h: Likewise.
* include/bits/ios_base.h: Likewise.
* include/bits/istream.tcc: Likewise.
* include/bits/mask_array.h: Likewise.
* include/bits/ostream.tcc: Likewise.
* include/bits/pthread_allocimpl.h: Likewise.
* include/bits/sbuf_iter.h: Likewise.
* include/bits/slice.h: Likewise.
* include/bits/slice_array.h: Likewise.
* include/bits/sstream.tcc: Likewise.
* include/bits/std_bitset.h: Likewise.
* include/bits/std_fstream.h: Likewise.
* include/bits/std_iomanip.h: Likewise.
* include/bits/std_ios.h: Likewise.
* include/bits/std_istream.h: Likewise.
* include/bits/std_iterator.h: Likewise.
* include/bits/std_memory.h: Likewise.
* include/bits/std_ostream.h: Likewise.
* include/bits/std_sstream.h: Likewise.
* include/bits/std_streambuf.h: Likewise.
* include/bits/std_string.h: Likewise.
* include/bits/std_valarray.h: Likewise.
* include/bits/stl_algo.h: Likewise.
* include/bits/stl_algobase.h: Likewise.
* include/bits/stl_alloc.h: Likewise.
* include/bits/stl_construct.h: Likewise.
* include/bits/stl_deque.h: Likewise.
* include/bits/stl_function.h: Likewise.
* include/bits/stl_heap.h: Likewise.
* include/bits/stl_iterator.h: Likewise.
* include/bits/stl_iterator_base.h: Likewise.
* include/bits/stl_list.h: Likewise.
* include/bits/stl_map.h: Likewise.
* include/bits/stl_multimap.h: Likewise.
* include/bits/stl_multiset.h: Likewise.
* include/bits/stl_numeric.h: Likewise.
* include/bits/stl_pair.h: Likewise.
* include/bits/stl_pthread_alloc.h: Likewise.
* include/bits/stl_queue.h: Likewise.
* include/bits/stl_raw_storage_iter.h: Likewise.
* include/bits/stl_relops.h: Likewise.
* include/bits/stl_set.h: Likewise.
* include/bits/stl_stack.h: Likewise.
* include/bits/stl_tempbuf.h: Likewise.
* include/bits/stl_threads.h: Likewise.
* include/bits/stl_tree.h: Likewise.
* include/bits/stl_uninitialized.h: Likewise.
* include/bits/stl_vector.h: Likewise.
* include/bits/streambuf.tcc: Likewise.
* include/bits/type_traits.h: Likewise.
* include/bits/valarray_meta.h: Likewise.
* include/ext/bvector: Likewise.
* include/ext/hash_map: Likewise.
* include/ext/hash_set: Likewise.
* include/ext/ropeimpl.h: Likewise.
* include/ext/slist: Likewise.
* include/ext/stl_bvector.h: Likewise.
* include/ext/stl_hash_fun.h: Likewise.
* include/ext/stl_hashtable.h: Likewise.
* include/ext/stl_rope.h: Likewise.
* src/complex_io.cc: Likewise.
* src/ios.cc: Likewise.
* src/locale-inst.cc: Likewise.
* src/locale.cc: Likewise.
* src/localename.cc: Likewise.
* src/misc-inst.cc: Likewise.
* src/stdexcept.cc: Likewise.
* src/stl-inst.cc: Likewise.
* src/strstream.cc: Likewise.
* src/valarray-inst.cc: Likewise.
From-SVN: r40239
2001-03-04 21:34:02 +00:00
Benjamin Kosnik
8ac2677fbb
codecvt.h: Use __builtin_alloca.
...
2001-02-23 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/codecvt.h: Use __builtin_alloca.
* include/bits/ostream.tcc: Same.
* include/bits/fstream.tcc: Same.
From-SVN: r40007
2001-02-23 19:22:04 +00:00
Benjamin Kosnik
6259cad9af
tests_flags.in (CXXFLAGS): Add -rpath to gcc build dir.
...
2001-02-22 Benjamin Kosnik <bkoz@redhat.com>
* tests_flags.in (CXXFLAGS): Add -rpath to gcc build dir.
* include/bits/codecvt.h: Use alloca instead of __extension__ for
the time being.
* include/bits/ostream.tcc: Same.
* include/bits/std_ostream.h: Same.
* include/bits/fstream.tcc: Same.
* include/bits/locale_facets.tcc: Add typename.
* include/bits/c++config (_GLIBCPP_FULLY_COMPLIANT_HEADERS): Enable.
From-SVN: r39991
2001-02-23 07:12:03 +00:00
Greg Bumgardner
f5d3e93f97
std_ostream.h: Replaced usage of _Traits::_S_eos() with _CharT() as per section 17.2.2.1.3.
...
2001-02-16 Greg Bumgardner <bumgard@roguewave.com>
libstdc++/1734
* include/bits/std_ostream.h: Replaced usage of
_Traits::_S_eos() with _CharT() as per section 17.2.2.1.3.
* include/bits/char_traits.h: Removed non-standard
methods that cannot be used elsewhere.
libstdc++/1885
* include/bits/basic_ios.h: Uncommented #include of
bits/basic_ios.tcc
libstdc++/1897
* include/bits/codecvt.h: See next...
* include/bits/fstream.tcc: See next...
* include/bits/ostream.tcc: Add __extension__
to variable-length arrays.
libstdc++/1967
* include/bits/localefwd.h: Changed int counter type to size_t.
libstdc++/1968
* include/bits/std_fstream.h: Added typedef for __ctype_type.
From-SVN: r39802
2001-02-17 17:51:45 +00:00
Benjamin Kosnik
e2c094827c
Add support for -fno-exceptions.
...
2001-02-15 Benjamin Kosnik <bkoz@redhat.com>
Add support for -fno-exceptions.
* include/bits/exception_support.h: Remove.
* include/bits/basic_string.h: Remove exception_support.
(string::_M_check): Replace __OUTOFRANGE with __throw_out_of_range.
(string::at): Same.
(string::substr): Same.
* include/bits/basic_string.tcc (string::reserve): Replace
__LENGTHERROR with __throw_length_error.
(string::_S_create): Same.
(string::resize): Same.
(string::_M_replace): Same.
(string::replace): Same.
(string::copy): Replace __OUTOFRANGE with __throw_out_of_range.
(string::compare): Same.
* include/bits/stl_vector.h: Remove exception_support.
* src/Makefile.am (base_headers): Remove here.
* src/Makefile.in: Regenerate.
* include/bits/stl_range_errors.h: Remove.
* include/bits/stl_deque.h: Use __throw_range_error.
* include/bits/std_deque.h: Include functexcept.h.
* include/bits/std_vector.h: Same.
* src/Makefile.am (base_headers): Remove here.
* src/Makefile.in: Regenerate.
* include/ext/stl_bvector.h (class __BVECTOR): Use __throw_range_error.
* include/ext/bvector: Remove stl_range_errors.h
* include/bits/c++config (_GLIBCPP_USE_EXCEPTIONS): Remove.
* include/bits/functexcept.h: New file.
* src/functexcept.cc: New file. Definitions for function-based
exception routines.
* src/Makefile.am (sources): Add functexcept.cc.
* src/Makefile.in: Regenerate.
* include/bits/stl_config.h (__STL_USE_EXCEPTIONS): Wrap with
__EXCEPTIONS.
* include/bits/localefwd.h: Include functexcept.h.
* include/bits/std_iosfwd.h: Same.
* include/bits/basic_ios.h: Use __throw_ios_failure instead of
throw basic_ios::failure.
* include/bits/fstream.tcc (filebuf::_M_allocate_buffers):
Use __throw_exception_again.
(filebuf::_M_filebuf_init): Same.
* include/bits/streambuf.tcc (__copy_streambufs): Same.
* include/bits/ostream.tcc (ostream::operator<<): Same.
* include/bits/istream.tcc (istream::operator>>): Same.
* include/bits/basic_string.tcc (string::_M_mutate): Same.
(string::_S_construct): Same.
(string::_M_clone): Same.
* include/bits/locale_facets.tcc (use_facet(const locale&)): Use
__throw_bad_cast.
(num_put<_CharT, _OutIter>::do_put): Use __throw_exception_again.
* src/localename.cc (locale::_Imp::_Imp(const _Impl&, size_t): Use
__throw_exception_again.
(locale::_Imp::_Imp(string, size_t): Same.
(locale::_Imp::_M_replace_facet): Use __throw_runtime_error.
* src/locale.cc (locale::_M_coalesce): Use __throw_exception_again.
(locale::locale(const char*)): Use __throw_runtime_error.
(locale::classic): Use __throw_exception_again.
(locale::_S_normalize_category): Use __throw_runtime_error.
* src/stdexcept.cc: Remove cruft.
* libsupc++/exception_defines.h: New file.
* libsupc++/new_opnt.cc: Include exception_defines.h.
* libsupc++/vec.cc: Same.
(__cxa_vec_new2): Use __throw_exception_again.
(__cxa_vec_new3): Same.
(__cxa_vec_ctor): Same.
(__cxa_vec_delete3): Same.
(__cxa_vec_cctor): Same.
(__cxa_vec_delete2): Same.
(__cxa_vec_dtor): Same.
* libsupc++/exception_support.cc: Include exception_defines.h. Only
compile exception-handling bits if __EXCEPTIONS is defined.
Remove old ABI support.
* libsupc++/new_op.cc (new): Include exception_defines.h. Use
std::__throw_bad_alloc() instead of throw bad_alloc.
* libsupc++/Makefile.am: Add exception_defines.h.
* libsupc++/Makefile.in: Reformat.
* libsupc++/*: Format.
From-SVN: r39730
2001-02-16 00:44:44 +00:00
Benjamin Kosnik
13187a454d
C++STYLE (classname): Add more existing and stylish patterns.
...
2001-01-16 Benjamin Kosnik <bkoz@redhat.com>
* docs/html/17_intro/C++STYLE (classname): Add more existing
and stylish patterns.
libstdc++/944
* include/bits/istream.tcc (istream::sentry::sentry()): Set
failbit if the state of the stream is not good.
* testsuite/27_io/istream_sentry.cc (test02): Add test.
* testsuite/27_io/istream_manip.cc (test01): Modify.
libstdc++/1019
reported by Paolo Carlini <pcarlini@unitus.it>
* include/bits/istream.tcc (operator>>(istream&, string&)): Fix.
* testsuite/21_strings/inserters_extractors.cc (test08): Add test.
libstdc++/1057
* include/bits/std_streambuf.h (setp): Set _M_buf_size correctly.
* include/bits/streambuf.tcc (xsputn): Remove outside if clause.
(xsgetn): Same. Simplify.
* testsuite/27_io/streambuf.cc (test04): Add testcases.
reported by Larry Evans <jcampbell3@prodigy.net>
* include/bits/streambuf.tcc (streambuf::xsputn): Just check for
equality with eof on returned value from overflow.
From-SVN: r39059
2001-01-16 07:55:26 +00:00
Benjamin Kosnik
5a259aec51
fpos.h (fpos:::fpos(streamoff __pos)): Explicitly initialize mbstate_t member, name offset data members *off, not pos.
...
2001-01-08 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/fpos.h (fpos:::fpos(streamoff __pos)): Explicitly
initialize mbstate_t member, name offset data members *off, not pos.
* include/bits/fstream.tcc (filebuf::filebuf): Same.
From-SVN: r38809
2001-01-08 23:51:57 +00:00
Benjamin Kosnik
d83c7eb40d
locale.cc: Match orderings for static members.
...
2000-11-02 Benjamin Kosnik <bkoz@purist.soma.redhat.com>
* src/locale.cc: Match orderings for static members.
* include/bits/fstream.tcc: Fixes for cin.
From-SVN: r37200
2000-11-02 08:05:16 +00:00
Benjamin Kosnik
725dc051ca
include: New directory.
...
2000-10-05 Benjamin Kosnik <bkoz@cygnus.com>
* include: New directory.
* include/backward: New directory.
* include/bits: New directory.
* include/ext: New directory.
* include/std: New directory.
* include/*/*: Populate.
* src/complex.cc: Adjust include of mathconf.
* mkc++config (BASE_H): Add include.
* src/Makefile.am: Support for topleve sources include directory.
(INCLUDES): Add LIBMATH_INCLUDE.
* src/Makefile.in: Regenerate.
* math/Makefile.am (INCLUDES): Append /include.
* math/Makefile.in: Regenerate.
* libio/Makefile.am (INCLUDES): Add glibcpp_includedir.
* libio/Makefile.in: Regenerate.
From-SVN: r36723
2000-10-05 11:27:02 +00:00