Benjamin Kosnik
5f697f7aae
c++config (_GLIBCXX_FULLY_COMPLIANT_HEADERS): Remove.
...
2003-07-30 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/c++config (_GLIBCXX_FULLY_COMPLIANT_HEADERS): Remove.
(_GLIBCXX_NO_TEMPLATE_EXPORT): To _GLIBCXX_EXPORT_TEMPLATE.
(_GLIBCXX_AT_AT): Remove.
(__USE_MALLOC): Remove.
* include/std/std_fstream.h: Modify.
* include/bits/basic_ios.h: Same.
* include/bits/valarray_array.h: Same.
* include/c_std/std_cmath.h: Same.
* include/c_std/cmath.tcc: Same.
* include/std/std_vector.h: Same.
* include/std/std_string.h: Same.
* include/std/std_stack.h: Same.
* include/std/std_queue.h: Same.
* include/std/std_list.h: Same.
* include/std/std_deque.h: Same.
* include/std/std_streambuf.h: Same.
* include/std/std_sstream.h: Same.
* include/std/std_ostream.h: Same.
* include/std/std_istream.h: Same.
* include/bits/valarray_array.tcc: Same, format.
* include/c/std_cctype.h: Fix include guards.
* include/c/std_cerrno.h: Same.
* include/c/std_cfloat.h: Same.
* include/c/std_climits.h: Same.
* include/c/std_clocale.h: Same.
* include/c/std_cmath.h: Same.
* include/c/std_csetjmp.h: Same.
* include/c/std_csignal.h: Same.
* include/c/std_cstdarg.h: Same.
* include/c/std_cstddef.h: Same.
* include/c/std_cstdio.h: Same.
* include/c/std_cstdlib.h: Same.
* include/c/std_cstring.h: Same.
* include/c/std_ctime.h: Same.
* include/c/std_cwchar.h: Same.
* include/c/std_cwctype.h: Same.
* include/c_std/cmath.tcc: Same.
* include/c_std/std_cmath.h: Same.
From-SVN: r69961
2003-07-30 16:51:51 +00:00
Steve Ellcey
1143680eca
cmath.tcc: Use _GLIBCXX_ prefix on file guard.
...
* include/c_std/cmath.tcc: Use _GLIBCXX_ prefix on file guard.
* include/c_std/std_cctype.h: Ditto.
* include/c_std/std_cerrno.h: Ditto.
* include/c_std/std_cfloat.h: Ditto.
* include/c_std/std_climits.h: Ditto.
* include/c_std/std_clocale.h: Ditto.
* include/c_std/std_cmath.h: Ditto.
* include/c_std/std_csetjmp.h: Ditto.
* include/c_std/std_csignal.h: Ditto.
* include/c_std/std_cstdarg.h: Ditto.
* include/c_std/std_cstddef.h: Ditto.
* include/c_std/std_cstdio.h: Ditto.
* include/c_std/std_cstdlib.h: Ditto.
* include/c_std/std_cstring.h: Ditto.
* include/c_std/std_ctime.h: Ditto.
* include/c_std/std_cwchar.h: Ditto.
* include/c_std/std_cwctype.h: Ditto.
* include/std/std_algorithm.h: Ditto.
* include/std/std_bitset.h: Ditto.
* include/std/std_complex.h: Ditto.
* include/std/std_deque.h: Ditto.
* include/std/std_fstream.h: Ditto.
* include/std/std_functional.h: Ditto.
* include/std/std_iomanip.h: Ditto.
* include/std/std_ios.h: Ditto.
* include/std/std_iosfwd.h: Ditto.
* include/std/std_iostream.h: Ditto.
* include/std/std_istream.h: Ditto.
* include/std/std_iterator.h: Ditto.
* include/std/std_limits.h: Ditto.
* include/std/std_list.h: Ditto.
* include/std/std_locale.h: Ditto.
* include/std/std_map.h: Ditto.
* include/std/std_memory.h: Ditto.
* include/std/std_numeric.h: Ditto.
* include/std/std_ostream.h: Ditto.
* include/std/std_queue.h: Ditto.
* include/std/std_set.h: Ditto.
* include/std/std_sstream.h: Ditto.
* include/std/std_stack.h: Ditto.
* include/std/std_stdexcept.h: Ditto.
* include/std/std_streambuf.h: Ditto.
* include/std/std_string.h: Ditto.
* include/std/std_utility.h: Ditto.
* include/std/std_valarray.h: Ditto.
* include/std/std_vector.h: Ditto.
From-SVN: r69705
2003-07-23 15:28:44 +00:00
Paolo Carlini
bda243ec50
Nathan C.
...
2003-07-14 Paolo Carlini <pcarlini@unitus.it>
Nathan C. Myers <ncm-nospam@cantrip.org>
PR libstdc++/11378
* include/std/std_fstream.h (xsputn): Declare only.
* include/bits/fstream.tcc (xsputn): Define, optimize for the
always_noconv() case: when __n is sufficiently large flush
the buffer and issue a direct write, if possible combining the
two with writev in __basic_file<>::xsputn_2.
* config/io/basic_file_stdio.h (__basic_file<>::xsputn_2):
New, declare.
* config/io/basic_file_stdio.cc (__basic_file<>::xsputn_2):
Define.
* acinclude.m4 (GLIBCXX_CHECK_WRITE): New macro, checking for
the availability of writev in <sys/uio.h>.
* configure.in: Call here.
* acconfig.h: Add undef for the corresponding symbol.
* aclocal.m4: Regenerate.
* configure: Regenerate.
* config.h.in: Regenerate.
* testsuite/27_io/basic_filebuf/setbuf/char/3.cc: Tweak.
* include/std/std_fstream.h (sync): Constify a variable.
Co-Authored-By: Nathan C. Myers <ncm-nospam@cantrip.org>
From-SVN: r69341
2003-07-14 18:23:12 +00:00
Paolo Carlini
6623b2f26d
std_fstream.h (xsputn): Don't call _M_destroy_pback...
...
2003-07-06 Paolo Carlini <pcarlini@unitus.it>
* include/std/std_fstream.h (xsputn): Don't call _M_destroy_pback:
if output is at all possible (!_M_reading), cannot be active.
* include/std/std_fstream.h: Tweak comments to doxygen style.
From-SVN: r69001
2003-07-06 11:24:43 +00:00
Paolo Carlini
a8cad3e1dd
std_bitset.h: Fully qualify standard functions with std::, thus avoiding Koenig lookup.
...
2003-07-05 Paolo Carlini <pcarlini@unitus.it>
* include/std/std_bitset.h: Fully qualify standard
functions with std::, thus avoiding Koenig lookup.
* include/std/std_fstream.h: Change comment to doxygen style.
From-SVN: r68964
2003-07-05 08:18:58 +00:00
Benjamin Kosnik
3d7c150e3f
Move from CPP to CXX.
...
2003-07-04 Benjamin Kosnik <bkoz@redhat.com>
Move from CPP to CXX.
* include/bits/c++config: Move to GLIBCXX from GLIBCPP.
* testsuite/Makefile.am: Same.
* testsuite/Makefile.in: Regenerate.
* po/Makefile.am: Same.
* po/Makefile.in: Regenerate.
* libsupc++/Makefile.am: Same.
* libsupc++/Makefile.in: Regenerate.
* libmath/Makefile.am: Same.
* libmath/Makefile.in: Regenerate.
* include/Makefile.am: Same.
* include/Makefile.in: Regenerate.
* src/Makefile.am: Same.
* src/Makefile.in: Regenerate.
* acconfig.h: Same.
* configure.host: Same.
* configure.in: Same.
* configure: Regenerate.
* acinclude.m4: Same.
* aclocal.m4: Same.
* src: Change all files in this directory.
* testsuite: Same.
* include: Same, standardize include guards.
* config: Same.
* libsupc++: Same.
From-SVN: r68958
2003-07-05 04:05:45 +00:00
Paolo Carlini
10ef4e2e3f
2003-07-04 Paolo Carlini <pcarlini@unitus.it>
...
Revert the fix for libstdc++/11378.
From-SVN: r68922
2003-07-04 16:36:26 +00:00
Paolo Carlini
ac2c48d70f
re PR libstdc++/11378 (Unbuffered sputn is slow)
...
2003-07-04 Paolo Carlini <pcarlini@unitus.it>
PR libstdc++/11378
* include/std/std_fstream.h (xsputn): In the unbuffered case,
provided always_noconv(), issue directly _M_file.xsputn.
* testsuite/performance/filebuf_unbuf_sputn.cc: New.
From-SVN: r68921
2003-07-04 16:15:15 +00:00
Benjamin Kosnik
cc5112c92d
Makefile.am (target_headers): Add fpos.h
...
2003-07-03 Benjamin Kosnik <bkoz@redhat.com>
* include/Makefile.am (target_headers): Add fpos.h
(bits_headers): Remove.
* include/Makefile.in: Regenerate.
* configure.in: Add FPOS_INC_SRCDIR, substitute it.
* configure: Regenerate.
* configure.host: Add fpos_include_dir.
* config/os/gnu-linux/fpos.h: New.
* config/os/generic/fpos.h: Add.
* include/bits/fpos.h: Remove.
* config/io/c_io_stdio.h: Remove fpos_t typedef.
* include/bits/fstream.tcc: Tweaks.
* include/std/std_fstream.h: Same.
* testsuite/27_io/fpos/1.cc (test01): Uncomment. Move to...
* testsuite/27_io/fpos/mbstate_t/1.cc: ...here.
* testsuite/27_io/fpos/mbstate_t/2.cc: Same.
* testsuite/27_io/fpos/mbstate_t/3.cc: Same.
* testsuite/27_io/fpos/1.cc: New.
2003-07-03 Benjamin Kosnik <bkoz@redhat.com>
Petur Runolfsson <peturr02@ru.is>
* include/std/std_streambuf.h: Remove _M_pos.
* config/io/basic_file_stdio.h: Use seekpos instead of seekoff.
* config/io/basic_file_stdio.cc: Same, use fseek instead of lseek,
use fread/fwrite instead of read/write.
* testsuite/27_io/basic_filebuf/showmanyc/char/9533-2.cc: Fix.
* testsuite/27_io/basic_filebuf/sputn/char/9339.cc: Close filebufs
before reading again.
* testsuite/27_io/objects/char/6.cc: Tweak.
Co-Authored-By: Petur Runolfsson <peturr02@ru.is>
From-SVN: r68913
2003-07-04 07:14:54 +00:00
Paolo Carlini
cd16e04b18
std_streambuf.h (_M_mode): Move from here to filebuf and stringbuf.
...
2003-06-30 Paolo Carlini <pcarlini@unitus.it>
* include/std/std_streambuf.h (_M_mode): Move from here to
filebuf and stringbuf.
(~basic_streambuf()): Don't set _M_mode.
(basic_streambuf()): Don't set _M_mode.
* include/std/std_fstream.h (_M_mode): Move here, from streambuf.
(~basic_filebuf()): Clean up.
* include/bits/fstream.tcc (basic_filebuf()): Set _M_mode.
* include/std/std_sstream.h (_M_mode): Move here, from streambuf.
* testsuite/27_io/basic_streambuf/cons/char/1.cc: Don't set _M_mode.
* testsuite/27_io/basic_streambuf/overflow/char/1.cc: Likewise.
* testsuite/27_io/basic_streambuf/sgetc/char/1.cc: Likewise.
* testsuite/27_io/basic_streambuf/sgetn/char/1.cc: Likewise.
* testsuite/27_io/basic_streambuf/sputn/char/1.cc: Likewise.
2003-06-30 Paolo Carlini <pcarlini@unitus.it>
* include/std/std_fstream.h (_M_underflow): Remove.
(uflow): Remove, inherited from streambuf.
(underflow): Only declare.
* include/bits/fstream.tcc (_M_underflow): Rename to
underflow, to which is equivalent for __bump == false,
simplify.
* include/std/std_sstream.h (_M_underflow): Remove.
(uflow): Remove, inherited from streambuf.
(underflow): Only declare.
* include/bits/sstream.tcc (_M_underflow): Rename to
underflow, to which is equivalent for __bump == false,
simplify.
From-SVN: r68695
2003-06-30 11:17:23 +00:00
Paolo Carlini
71b460210a
Nathan C.
...
2003-06-24 Paolo Carlini <pcarlini@unitus.it>
Nathan C. Myers <ncm-nospam@cantrip.org>
* include/std/std_fstream.h (_M_filepos): Remove.
(_M_reading, _M_writing): New, encode the various I/O modes:
'read', 'write' and 'uncommitted'.
(sync): If there is something to flush, do it, then go to
'uncommitted' mode.
* include/bits/fstream.tcc (_M_set_buffer): Overhaul to deal
with three different cases: __off > 0 (upon underflow),
__off == 0 (upon overflow), __off == -1 (upon open, setbuf,
seekoff/pos).
(_M_underflow): Don't call overflow, set _M_reading to true
on success, tweak.
(pbackfail): Set _M_reading to true on pback creation, tweak.
(overflow): Don't seek, deal with overflow in 'uncommitted' mode,
set _M_writing to true on success, tweak.
(seekoff): Simplify, set _M_reading, _M_writing to false, call
_M_set_buffer(-1) ('uncommitted').
(open, close, setbuf): Set _M_reading, _M_writing to false and
call _M_set_buffer(-1), tweak.
(basic_filebuf): Don't set _M_buf_unified.
(_M_destroy_internal_buffer): Don't call setg and setp.
* include/ext/stdio_filebuf.h (stdio_filebuf): Use _M_reading,
_M_writing and _M_set_buffer(-1).
* include/std/std_streambuf.h (_M_move_out_cur, _M_move_in_cur,
_M_out_lim, _M_buf_unified): Remove.
(basic_streambuf): Don't set _M_out_lim and _M_buf_unified.
(setp): Don't set _M_out_lim.
* testsuite/27_io/basic_filebuf/sbumpc/char/1-io.cc: Fix for
the new logic ('read', 'write' and 'uncommitted' modes): e.g.,
upon open the mode is 'uncommitted' and therefore the put area
pointers are null.
* testsuite/27_io/basic_filebuf/sbumpc/char/1-out.cc: Ditto.
* testsuite/27_io/basic_filebuf/seekoff/char/3-io.cc: Ditto.
* testsuite/27_io/basic_filebuf/seekpos/char/3-io.cc: Ditto.
* testsuite/27_io/basic_filebuf/setbuf/char/1.cc: Ditto.
* testsuite/27_io/basic_filebuf/sgetc/char/1-io.cc: Ditto.
* testsuite/27_io/basic_filebuf/sgetc/char/1-out.cc: Ditto.
* testsuite/27_io/basic_filebuf/sgetn/char/1-io.cc: Ditto.
* testsuite/27_io/basic_filebuf/sgetn/char/1-out.cc: Ditto.
* testsuite/27_io/basic_filebuf/snextc/char/1-io.cc: Ditto.
* testsuite/27_io/basic_filebuf/snextc/char/1-out.cc: Ditto.
* testsuite/27_io/basic_filebuf/sputbackc/char/1-io.cc: Ditto.
* testsuite/27_io/basic_filebuf/sputbackc/char/1-out.cc: Ditto.
* testsuite/27_io/basic_filebuf/sputc/char/1-io.cc: Ditto.
* testsuite/27_io/basic_filebuf/sputc/char/1-out.cc: Ditto.
* testsuite/27_io/basic_filebuf/sputc/char/9701-2.cc: Ditto.
* testsuite/27_io/basic_filebuf/sputn/char/1-io.cc: Ditto.
* testsuite/27_io/basic_filebuf/sputn/char/1-out.cc: Ditto.
* testsuite/27_io/basic_filebuf/sputn/char/9701-1.cc: Ditto.
* testsuite/27_io/basic_filebuf/sungetc/char/1-io.cc: Ditto.
* testsuite/27_io/basic_filebuf/sungetc/char/1-out.cc: Ditto.
* include/bits/fstream.tcc (showmanyc): Use only the
documented derivation interface to basic_streambuf (gptr(),
setg(), etc.) to work right with user specializations.
* include/bits/streambuf.tcc (sbumpc, sputbackc, sungetc,
sputc, xsgetn, xsputn, __copy_streambufs): Likewise.
* include/std/std_streambuf.h (in_avail, sgetc, uflow, stossc):
Likewise.
* include/std/std_fstream.h (_M_create_pback, _M_destroy_pback,
xsgetn): Likewise.
Co-Authored-By: Nathan C. Myers <ncm-nospam@cantrip.org>
From-SVN: r68420
2003-06-24 13:48:11 +00:00
Paolo Carlini
1f0ef65117
fstream.tcc (close): Clean up a bit.
...
2003-06-10 Paolo Carlini <pcarlini@unitus.it>
* include/bits/fstream.tcc (close): Clean up a bit.
* include/bits/streambuf.tcc (sbumpc): Clean up a bit.
* include/std/std_fstream.h (_M_destroy_pback): _M_pback_cur_save
- the saved _M_in_cur, that is - cannot be null.
(sync): Constify a variable.
* include/std/std_streambuf.h: Tweak a comment.
(in_avail): Constify a variable.
From-SVN: r67738
2003-06-10 22:00:43 +00:00
Paolo Carlini
f10eea7bae
fstream.tcc (_M_underflow): Do not special case the unbuffered case...
...
2003-06-09 Paolo Carlini <pcarlini@unitus.it>
* include/bits/fstream.tcc (_M_underflow): Do not special
case the unbuffered case, which really means simply a one char
get area.
(basic_filebuf): Initialize _M_buf_size.
(setbuf): Unbuffered means _M_buf_size == 1, since only
_M_buf_size - 1 == 0 chars are going to be used for the
put area and 1 for the get area.
* include/std/std_streambuf.h (_M_buf_size): Move to basic_filebuf.
(~basic_streambuf): Tweak.
(basic_streambuf): Do not initialize _M_buf_size.
* include/std/std_fstream.h (_M_buf_size): Add from basic_streambuf.
(~basic_filebuf): Tweak.
(_M_set_buffer): Tweak, considering that _M_buf_size == 1 is the
unbuffered situation (i.e., put area pointers NULL).
* include/bits/streambuf.tcc (sbumpc): Clean up.
* testsuite/27_io/basic_filebuf/sputbackc/char/1.cc: Split into...
* testsuite/27_io/basic_filebuf/sputbackc/char/1-in.cc: New.
* testsuite/27_io/basic_filebuf/sputbackc/char/1-io.cc: New.
* testsuite/27_io/basic_filebuf/sputbackc/char/1-out.cc: New.
* testsuite/27_io/basic_filebuf/sputbackc/char/2-in.cc: New.
* testsuite/27_io/basic_filebuf/sputbackc/char/2-io.cc: New.
* testsuite/27_io/basic_filebuf/sputbackc/char/2-out.cc: New.
From-SVN: r67686
2003-06-10 00:05:49 +00:00
Benjamin Kosnik
46c4e5d6e9
re PR libstdc++/9024 (Input fails after call to basic_filebuf<>::pubsetbuf(0, 0))
...
2003-06-05 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/9024
* include/bits/fstream.tcc (_M_underflow): Fix for unbuffered.
* include/bits/stl_algobase.h: Tweak.
* include/std/std_fstream.h: Move _M_buf_size to...
* include/std/std_streambuf.h: ...here. Modify.
* include/bits/streambuf.tcc: Same.
* testsuite/testsuite_hooks.h: Tweak.
* testsuite/testsuite_io.h (constraint_filebuf): New.
* testsuite/27_io/basic_filebuf/sbumpc/char/1.cc: Split into...
* testsuite/27_io/basic_filebuf/sbumpc/char/1-in.cc: New.
* testsuite/27_io/basic_filebuf/sbumpc/char/1-io.cc: New.
* testsuite/27_io/basic_filebuf/sbumpc/char/1-out.cc: New.
* testsuite/27_io/basic_filebuf/sbumpc/char/2-in.cc: New.
* testsuite/27_io/basic_filebuf/sbumpc/char/2-io.cc: New.
* testsuite/27_io/basic_filebuf/sbumpc/char/2-out.cc: New.
* testsuite/27_io/basic_filebuf/sgetc/char/1.cc: Split into...
* testsuite/27_io/basic_filebuf/sgetc/char/1-in.cc: New.
* testsuite/27_io/basic_filebuf/sgetc/char/1-io.cc: New.
* testsuite/27_io/basic_filebuf/sgetc/char/1-out.cc: New.
* testsuite/27_io/basic_filebuf/sgetc/char/2-in.cc: New.
* testsuite/27_io/basic_filebuf/sgetc/char/2-io.cc: New.
* testsuite/27_io/basic_filebuf/sgetc/char/2-out.cc: New.
* testsuite/27_io/basic_filebuf/sgetn/char/1.cc: Split into...
* testsuite/27_io/basic_filebuf/sgetn/char/1-in.cc: New.
* testsuite/27_io/basic_filebuf/sgetn/char/1-io.cc: New.
* testsuite/27_io/basic_filebuf/sgetn/char/1-out.cc: New.
* testsuite/27_io/basic_filebuf/sgetn/char/2.cc: Split into...
* testsuite/27_io/basic_filebuf/sgetn/char/2-in.cc: New.
* testsuite/27_io/basic_filebuf/sgetn/char/2-io.cc: New.
* testsuite/27_io/basic_filebuf/sgetn/char/2-out.cc: New.
* testsuite/27_io/basic_filebuf/sgetn/char/3.cc: New.
* testsuite/27_io/basic_filebuf/snextc/char/1.cc: Split into...
* testsuite/27_io/basic_filebuf/snextc/char/1-in.cc: New.
* testsuite/27_io/basic_filebuf/snextc/char/1-io.cc: New.
* testsuite/27_io/basic_filebuf/snextc/char/1-out.cc: New.
* testsuite/27_io/basic_filebuf/snextc/char/2-in.cc: New.
* testsuite/27_io/basic_filebuf/snextc/char/2-io.cc: New.
* testsuite/27_io/basic_filebuf/snextc/char/2-out.cc: New.
* testsuite/27_io/basic_filebuf/sputc/char/1.cc: Split into...
* testsuite/27_io/basic_filebuf/sputc/char/1-in.cc: New.
* testsuite/27_io/basic_filebuf/sputc/char/1-io.cc: New.
* testsuite/27_io/basic_filebuf/sputc/char/1-out.cc: New.
* testsuite/27_io/basic_filebuf/sputc/char/2.cc: Split into...
* testsuite/27_io/basic_filebuf/sputc/char/2-in.cc: New.
* testsuite/27_io/basic_filebuf/sputc/char/2-io.cc: New.
* testsuite/27_io/basic_filebuf/sputc/char/2-out.cc: New.
* testsuite/27_io/basic_filebuf/sputn/char/1.cc: Split into...
* testsuite/27_io/basic_filebuf/sputn/char/1-in.cc: New.
* testsuite/27_io/basic_filebuf/sputn/char/1-io.cc: New.
* testsuite/27_io/basic_filebuf/sputn/char/1-out.cc: New.
* testsuite/27_io/basic_filebuf/sputn/char/2-in.cc: New.
* testsuite/27_io/basic_filebuf/sputn/char/2-io.cc: New.
* testsuite/27_io/basic_filebuf/sputn/char/2-out.cc: New.
* testsuite/data/sgetc.txt: New.
* testsuite/data/sgetn.txt: New.
From-SVN: r67524
2003-06-06 00:19:17 +00:00
Paolo Carlini
ccb50b8111
std_fstream.h (_M_destroy_pback): Use _M_in_beg instead of unnecessarily taking the address of _M_pback.
...
2003-06-02 Paolo Carlini <pcarlini@unitus.it>
* include/std/std_fstream.h (_M_destroy_pback): Use _M_in_beg
instead of unnecessarily taking the address of _M_pback.
(xsgetn): Simplify slightly for a single char pback buffer.
2003-06-02 Paolo Carlini <pcarlini@unitus.it>
* include/bits/sstream.tcc (seekoff): Remove four unnecessary
variables and two 'if', clean up.
2003-06-02 Paolo Carlini <pcarlini@unitus.it>
* include/bits/sstream.tcc (seekpos): Test against _M_out_lim
not _M_out_end, since the former actually points to the string
end (vs buffer end).
* testsuite/27_io/basic_stringbuf/seekpos/char/3.cc: New.
From-SVN: r67334
2003-06-02 15:36:24 +00:00
Benjamin Kosnik
002bd6069c
re PR libstdc++/9339 (filebuf::pubsetbuf(0, 0) doesn't turn off buffering)
...
2003-05-26 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/9339
* include/std/std_fstream.h (basic_filebuf::_M_overflow): Remove.
(_M_pback): No array necessary.
* include/bits/fstream.tcc (basic_filebuf::_M_overflow): Add
unbuffered case, coalesec into ...
(basic_filebuf::overflow): ...this.
* testsuite/27_io/basic_filebuf/sputn/char/9339.cc: New.
* testsuite/27_io/basic_filebuf/sputc/char/2.cc: Unbuffered.
From-SVN: r67175
2003-05-26 14:54:42 +00:00
Paolo Carlini
d7ccc91760
std_fstream.h (_S_pback_size): Remove definition.
...
2003-05-22 Paolo Carlini <pcarlini@unitus.it>
* include/std/std_fstream.h (_S_pback_size): Remove definition.
(_M_create_pback(), _M_destroy_pback()): Simplify for a single-char
pback buffer.
* include/bits/fstream.tcc (_S_pback_size): Remove declaration.
* testsuite/27_io/basic_filebuf/3.cc: Remove explicit instantiation
of _S_pback_size for systems with no COMDAT or weak support.
* testsuite/27_io/basic_filebuf/seekoff/10132-2.cc: Likewise.
* testsuite/27_io/basic_filebuf/seekpos/10132-3.cc: Likewise.
* testsuite/27_io/basic_filebuf/underflow/10096.cc: Likewise.
* testsuite/27_io/basic_fstream/3.cc: Likewise.
* testsuite/27_io/basic_ifstream/3.cc: Likewise.
* testsuite/27_io/basic_istream/sentry/char/3983-fstream.cc: Likewise.
* testsuite/27_io/basic_ofstream/3.cc: Likewise.
* testsuite/27_io/basic_ostream/sentry/char/3983-fstream.cc: Likewise.
* testsuite/27_io/basic_streambuf/3.cc: Likewise.
From-SVN: r67102
2003-05-22 22:16:41 +00:00
Paolo Carlini
98ce9d068e
std_fstream.h (_M_set_buffer): Fix indentation.
...
2003-05-21 Paolo Carlini <pcarlini@unitus.it>
* include/std/std_fstream.h (_M_set_buffer): Fix indentation.
From-SVN: r67065
2003-05-21 20:22:25 +00:00
Paolo Carlini
e3033a2240
fstream.tcc (_M_overflow): Rewrote to call _M_convert_to_external only once (_M_buf_size is now the size...
...
2003-05-15 Paolo Carlini <pcarlini@unitus.it>
Nathan Myers <ncm@cantrip.org>
* include/bits/fstream.tcc (_M_overflow): Rewrote to call
_M_convert_to_external only once (_M_buf_size is now the size of
the put area + 1 for the overflow char of a full area); call
_M_set_buffer instead of _M_set_indeterminate.
(setbuf): Don't accept a buffer smaller than 2 chars.
(_M_underflow): Refill _M_buf_size - 1 chars; call _M_set_buffer,
instead of _M_set_determinate.
(open): Call _M_set_buffer, instead of _M_set_indeterminate.
(seekoff): Likewise.
* include/ext/stdio_filebuf.h (stdio_filebuf(int,
std::ios_base::openmode, bool, size_t),
stdio_filebuf(std::__c_file*, std::ios_base::openmode, size_t):
Likewise.
* include/std/std_fstream.h (_M_set_indeterminate): Remove.
(_M_set_determinate): Rename as _M_set_buffer, _M_buf_size ->
_M_buf_size - 1.
* include/std/std_streambuf.h: Tweak _M_out_lim comment.
* testsuite/27_io/basic_filebuf/sgetn/char/1.cc: Tweak, taking
into account that, for _M_buf_size == BUFSIZ == 8192, the size of
the put area is now BUFSIZ - 1.
* testsuite/ext/stdio_filebuf_2.cc: Tweak, taking into account
that now the smallest _M_buf_size is 2 (still fails, for the same
reason, with 3.2.3)
Co-Authored-By: Nathan Myers <ncm@cantrip.org>
From-SVN: r66848
2003-05-15 23:43:15 +00:00
Benjamin Kosnik
0cd1de6fc9
std_fstream.h (basic_filebuf::_M_codecvt): Add cached member.
...
2003-05-12 Benjamin Kosnik <bkoz@redhat.com>
* include/std/std_fstream.h (basic_filebuf::_M_codecvt): Add
cached member.
* include/bits/fstream.tcc (basic_filebuf::basic_filebuf):
Initialize _M_codecvt.
(basic_filebuf::imbue): Same.
(basic_filebuf::showmanyc): Use it.
(basic_filebuf::underflow): Use it.
(basic_filebuf::_M_convert_to_external): Use it.
(basic_filebuf::seekoff): Use it.
(basic_filebuf::imbue): Use it, tweaks.
* include/bits/localefwd.h (__check_facet): New.
* include/bits/locale_classes.h: Tweaks.
* include/bits/locale_facets.tcc: Tweaks.
* include/bits/basic_ios.h (basic_ios::_M_check_facet): Remove.
_M_fctype to _M_ctype, _M_fnumput to _M_num_put, _M_fnumget to
_M_num_get. Change _M_check_facet to __check_facet. Tweaks.
* include/bits/basic_ios.tcc: Same.
* include/bits/istream.tcc: Same.
* include/bits/ostream.tcc: Same.
* include/std/std_streambuf.h: Same.
* testsuite/27_io/basic_filebuf/imbue/char/2.cc: New.
* testsuite/27_io/basic_filebuf/imbue/char/3.cc: New.
* testsuite/27_io/basic_filebuf/imbue/wchar_t/1.cc: New.
* testsuite/27_io/basic_filebuf/imbue/wchar_t/2.cc: New.
* testsuite/27_io/basic_filebuf/imbue/wchar_t/3.cc: New.
* testsuite/27_io/basic_filebuf/imbue/wchar_t/9322.cc: New.
From-SVN: r66781
2003-05-13 20:13:15 +00:00
Benjamin Kosnik
6e81c6f49c
From-SVN: r66726
2003-05-12 18:12:27 +00:00
Benjamin Kosnik
51ff814940
[multiple changes]
...
2003-05-10 Petur Runolfsson <peturr02@ru.is>
PR libstdc++/9027
PR libstdc++/9520
PR libstdc++/10096
* include/bits/fstream.tcc (basic_file::_M_underflow): Add generic
implementation, based on old wchar_t specialization, add support
for codecvt::in() return value of codecvt_base::noconv, remove
_M_file.sys_ungetc() call.
* include/std/std_fstream.h (basic_file::underflow,
basic_file::uflow, basic_file::_M_underflow): Remove
specialization declarations, call _M_underflow from generic versions
of underflow and uflow.
* src/fstream.cc (basic_file::underflow, basic_file::uflow,
basic_file::_M_underflow): Remove specializations.
* src/Makefile.am (sources): Remove fstream.cc.
* src/Makefile.in: Regenerated.
* testsuite/27_io/basic_filebuf/underflow/10096.cc: New test.
* testsuite/27_io/basic_filebuf/underflow/char/1.cc: New test.
* testsuite/27_io/basic_filebuf/underflow/char/9027.cc: New test.
* testsuite/27_io/basic_filebuf/underflow/wchar_t/9520.cc: New test.
2003-05-10 Benjamin Kosnik <bkoz@redhat.com>
* include/ext/stdio_filebuf.h (__stdio_filebuf): Remove stack
buffer.
* config/io/basic_file_stdio.h (__basic_file::xsgetn): Remove
unbuffered bits.
(__basic_file::xsputn): Same.
(__basic_file::seekoff): Same.
(__basic_file::seekpos): Same.
(__basic_file::showmanyc): Same.
* config/io/basic_file_stdio.cc: Same.
* include/std/std_fstream.h: Same.
* include/bits/fstream.tcc: Same.
* src/fstream.cc: Same.
* testsuite/27_io/basic_filebuf/sgetn/char/1.cc (test05): Tidy.
2003-05-10 Petur Runolfsson <peturr02@ru.is>
PR libstdc++/9520
PR libstdc++/9661
PR libstdc++/9662
* include/ext/stdio_sync_filebuf.h: New file.
(basic_stdiobuf): New.
* include/Makefile.am (ext_headers): Add ext/stdio_sync_filebuf.h
* include/Makefile.in: Regenerate.
* include/bits/ios_base.h (Init::_S_create_buffers,
Init::_S_destroy_buffers): Remove declarations.
* src/globals.cc (buf_cout_sync, buf_cin_sync, buf_cerr_sync,
buf_wcout_sync, buf_wcin_sync, buf_wcerr_sync): Define.
* src/ios.cc (Init::_S_create_buffers,
Init::_S_destroy_buffers): Remove.
(Init::Init): Create and use syncronized buffers.
(ios_base::sync_with_stdio): Destroy syncronized buffers,
create and install unsyncronized buffers.
* testsuite/27_io/objects/char/10.cc: New test.
* testsuite/27_io/objects/char/9.cc: New test.
* testsuite/27_io/objects/char/9661-1.cc: New test.
* testsuite/27_io/objects/char/9661-2_xin.cc: New test.
* testsuite/27_io/objects/char/9661-2_xin.in: New.
* testsuite/27_io/objects/wchar_t/1.cc: New test.
* testsuite/27_io/objects/wchar_t/10.cc: New test.
* testsuite/27_io/objects/wchar_t/2.cc: New test.
* testsuite/27_io/objects/wchar_t/2523-1_xin.cc: New test.
* testsuite/27_io/objects/wchar_t/2523-1_xin.in: New.
* testsuite/27_io/objects/wchar_t/2523-2_xin.cc: New test.
* testsuite/27_io/objects/wchar_t/2523-2_xin.in: New.
* testsuite/27_io/objects/wchar_t/3045.cc: New test.
* testsuite/27_io/objects/wchar_t/3647.cc: New test.
* testsuite/27_io/objects/wchar_t/3_xin.cc: New test.
* testsuite/27_io/objects/wchar_t/3_xin.in: New.
* testsuite/27_io/objects/wchar_t/4_xin.cc: New test.
* testsuite/27_io/objects/wchar_t/4_xin.in: New.
* testsuite/27_io/objects/wchar_t/5.cc: New test.
* testsuite/27_io/objects/wchar_t/5268.cc: New test.
* testsuite/27_io/objects/wchar_t/5280_xin.cc: New test.
* testsuite/27_io/objects/wchar_t/5280_xin.in: New.
* testsuite/27_io/objects/wchar_t/6.cc: New test.
* testsuite/27_io/objects/wchar_t/6548_xin.cc: New test.
* testsuite/27_io/objects/wchar_t/6548_xin.in: New.
* testsuite/27_io/objects/wchar_t/6648-1_xin.cc: New test.
* testsuite/27_io/objects/wchar_t/6648-1_xin.in: New.
* testsuite/27_io/objects/wchar_t/6648-2_xin.cc: New test.
* testsuite/27_io/objects/wchar_t/6648-2_xin.in: New.
* testsuite/27_io/objects/wchar_t/7.cc: New test.
* testsuite/27_io/objects/wchar_t/7744_xin.cc: New test.
* testsuite/27_io/objects/wchar_t/7744_xin.in: New.
* testsuite/27_io/objects/wchar_t/8.cc: New test.
* testsuite/27_io/objects/wchar_t/9_xin.cc: New test.
* testsuite/27_io/objects/wchar_t/9_xin.in: New.
* testsuite/27_io/objects/wchar_t/9520.cc: New test.
* testsuite/27_io/objects/wchar_t/9661-1.cc: New test.
* testsuite/27_io/objects/wchar_t/9661-2_xin.cc: New test.
* testsuite/27_io/objects/wchar_t/9661-2_xin.in: New.
* testsuite/27_io/objects/wchar_t/9662.cc: New test.
* testsuite/ext/stdiobuf_char.cc: New test.
* testsuite/ext/stdiobuf_wchar_t.cc: New test.
From-SVN: r66678
2003-05-11 04:20:57 +00:00
Paolo Carlini
cd96b185c5
std_fstream.h (_M_is_indeterminate): Remove.
...
2003-05-07 Paolo Carlini <pcarlini@unitus.it>
* include/std/std_fstream.h (_M_is_indeterminate): Remove.
* src/fstream.cc
(basic_filebuf<char/wchar_t>::_M_underflow): Simplify: either
there is no buffer or __testget == !__testinit.
* src/fstream.cc
(basic_filebuf<char/wchar_t>::_M_underflow): _M_set_determinate()
automatically sets, if appropriate, _M_out_cur == _M_in_cur.
* include/std/std_fstream.h (_M_destroy_pback): Don't set
unnecessarily _M_pback_cur_save and _M_pback_end_save.
* include/std/std_fstream.h (_M_set_determinate): Minor tweak.
* include/std/std_sstream.h (_M_sync): Minor tweak.
* include/bits/fstream.tcc (close): No need to call
_M_destroy_pback, setting _M_pback_init to false suffices
to clean up.
From-SVN: r66557
2003-05-07 12:48:58 +00:00
Paolo Carlini
479a181108
std_streambuf.h (_M_buf): is currently used only for basic_filebuf, therefore move it there.
...
2003-04-28 Paolo Carlini <pcarlini@unitus.it>
* include/std/std_streambuf.h (_M_buf): is currently
used only for basic_filebuf, therefore move it there.
(basic_streambuf(), ~basic_streambuf()): Adjust.
* include/std/std_fstream.h (_M_buf): Moved here.
* include/std/std_sstream.h (setbuf): Don't set _M_buf,
is actually redundant for basic_stringbuf.
(_M_really_sync): Likewise.
* include/bits/fstream.tcc (basic_filebuf()): Adjust.
* include/bits/sstream.tcc (seekoff): Adjust.
From-SVN: r66193
2003-04-28 23:51:37 +00:00
Paolo Carlini
6ef4b79c95
std_streambuf.h (_M_buf_size): is currently used only for basic_filebuf, therefore move it there.
...
2003-04-28 Paolo Carlini <pcarlini@unitus.it>
* include/std/std_streambuf.h (_M_buf_size): is currently
used only for basic_filebuf, therefore move it there.
(basic_streambuf(), ~basic_streambuf()): Adjust.
* include/std/std_fstream.h (_M_buf_size): Moved here.
* include/bits/fstream.tcc (basic_filebuf()): Adjust.
From-SVN: r66191
2003-04-28 23:02:46 +00:00
Benjamin Kosnik
aa438e8f2b
std_fstream.h (basic_filebuf): _M_pback_destroy to _M_destroy_pback.
...
2003-04-27 Benjamin Kosnik <bkoz@redhat.com>
* include/std/std_fstream.h (basic_filebuf): _M_pback_destroy to
_M_destroy_pback. _M_pback_create to
_M_create_pback. _M_underflow_common to
_M_underflow. _M_really_overflow to _M_overflow.
* include/bits/fstream.tcc: Same.
* src/fstream.cc: Same.
* include/std/std_streambuf.h (basic_streambuf): _M_in_cur_move to
_M_move_in_cur. _M_out_cur_move to _M_move_out_cur.
* include/bits/streambuf.tcc: Same.
* include/bits/fstream.tcc: Same.
* include/bits/sstream.tcc: Same.
From-SVN: r66149
2003-04-28 04:54:54 +00:00
Benjamin Kosnik
a1796d12ff
re PR libstdc++/10132 (filebuf destructor throws exceptions)
...
2003-04-25 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/10132
* include/std/std_fstream.h (basic_filebuf::is_open): Add throw()
exception specifications.
(basic_filebuf::close): Same.
(basic_filebuf::_M_pback_destroy): Same.
(basic_filebuf::_M_destroy_internal_buffer): Same.
(basic_filebuf): Remove __res_type typedef.
* src/fstream.cc: Same.
* include/bits/fstream.tcc
(basic_filebuf::_M_convert_to_external): Simplify.
(basic_filebuf::seekoff): Use has_facet before use_facet.
(basic_filebuf::close): Add exception specification of throw().
* testsuite/27_io/basic_filebuf/cons: New.
* testsuite/27_io/basic_filebuf/cons/wchar_t: New.
* testsuite/27_io/basic_filebuf/cons/wchar_t/10132-1.cc: New.
* testsuite/27_io/basic_filebuf/seekoff/10132-2.cc: New.
* testsuite/27_io/basic_filebuf/seekpos/10132-3.cc: New.
From-SVN: r66091
2003-04-26 00:23:18 +00:00
Paolo Carlini
45aca21f40
std_streambuf.h (_S_pback_size, [...]): Move to basic_filebuf.
...
2003-04-22 Paolo Carlini <pcarlini@unitus.it>
* include/std/std_streambuf.h (_S_pback_size, _M_pback,
_M_pback_cur_save, _M_pback_end_save, _M_pback_init,
_M_pback_create(), _M_pback_destroy()): Move to basic_filebuf.
(basic_streambuf::basic_streambuf()): Adjust.
* include/std/std_fstream.h (_S_pback_size, _M_pback,
_M_pback_cur_save, _M_pback_end_save, _M_pback_init,
_M_pback_create(), _M_pback_destroy()): Moved here
from basic_streambuf.
* include/bits/fstream.tcc (basic_filebuf::basic_filebuf()):
Adjust.
(basic_filebuf::_S_pback_size): Add declaration.
* include/bits/streambuf.tcc (basic_streambuf::_S_pback_size):
Remove declaration.
From-SVN: r65950
2003-04-22 17:32:25 +00:00
Paolo Carlini
0b176c1af2
According to 5.9 para 2 (second bullet) for pointers p...
...
2003-04-18 Paolo Carlini <pcarlini@unitus.it>
According to 5.9 para 2 (second bullet) for pointers p, q
pointing to the same type, with p == 0 and q == 0, (p < q)
is false.
* include/bits/fstream.tcc (close, overflow, _M_really_overflow,
seekoff): Remove redundant NULL pointer checks from tests
involving _M_out_* and _M_in_*, const qualify bool variables.
(showmanyc, pbackfail, _M_convert_to_external, imbue): Const
qualify bool variables.
* include/bits/streambuf.tcc (sbumpc, sputbackc, sungetc, sputc):
Remove redundant NULL pointer checks from tests involving
_M_out_* and _M_in_*, const qualify bool variables.
* include/std/std_fstream.h (sync): Likewise.
(_M_is_indeterminate): Const qualify bool variables.
* include/std/std_streambuf.h (sgetc, uflow): Remove redundant
NULL pointer checks from tests involving _M_out_* and _M_in_*,
const qualify bool variables.
(_M_in_cur_move, _M_out_cur_move, uflow): Const qualify bool
variables.
From-SVN: r65783
2003-04-18 13:55:22 +00:00
Benjamin Kosnik
23cac88566
Reshuffle 27_io testsuite.
...
2003-04-09 Benjamin Kosnik <bkoz@redhat.com>
Reshuffle 27_io testsuite. * testsuite/27_io/filebuf.cc,
filebuf_members-1.tst, filebuf_members-1.txt, filebuf_members.cc,
filebuf_virtuals-1.tst, filebuf_virtuals-1.txt,
filebuf_virtuals-2.tst, filebuf_virtuals-3.tst,
filebuf_virtuals.cc, fpos.cc, fstream.cc, fstream_members.cc,
ifstream.cc, ifstream_members-1.tst, ifstream_members-1.txt,
ifstream_members.cc, instantiations.cc, ios.cc,
ios_base_callbacks.cc, ios_base_members_static-1.tst,
ios_base_members_static.cc, ios_base_storage.cc,
ios_base_types.cc, ios_ctor.cc, ios_init.cc,
ios_manip_basefield.cc, ios_manip_fmtflags.cc, ios_members.cc,
iostream.cc, iostream_members.cc, istream.cc,
istream_exception.cc, istream_extractor_char.cc,
istream_extractor_other-1.tst, istream_extractor_other-1.txt,
istream_extractor_other-2.tst, istream_extractor_other.cc,
istream_manip.cc, istream_seeks-1.tst, istream_seeks-1.txt,
istream_seeks-2.tst, istream_seeks-3.tst, istream_seeks.cc,
istream_sentry.cc, istream_unformatted-1.tst,
istream_unformatted-1.txt, istream_unformatted.cc,
istringstream.cc, istringstream_members.cc,
narrow_stream_objects.cc, ofstream.cc, ofstream_members-1.tst,
ofstream_members.cc, ostream.cc, ostream_exception.cc,
ostream_fail.cc, ostream_inserter_arith.cc,
ostream_inserter_char-1.tst, ostream_inserter_char-1.txt,
ostream_inserter_char.cc, ostream_inserter_other-1.tst,
ostream_inserter_other-2.tst, ostream_inserter_other.cc,
ostream_manip.cc, ostream_seeks-1.tst, ostream_seeks.cc,
ostream_sentry.cc, ostream_unformatted.cc, ostringstream.cc,
ostringstream_members.cc, standard_manipulators.cc, streambuf.cc,
streambuf_members.cc, stringbuf.cc, stringbuf_members.cc,
stringbuf_virtuals.cc, stringstream.cc, stringstream_members.cc,
wide_stream_objects.cc, istream_extractor_arith/01.cc,
istream_extractor_arith/02.cc, istream_extractor_arith/03.cc,
istream_extractor_arith/06.cc, istream_extractor_arith/07.cc,
istream_extractor_arith/08.cc, istream_extractor_arith/09.cc,
istream_extractor_arith/10.cc, istream_extractor_arith/11.cc,
istream_extractor_arith/12.cc, istream_extractor_arith/13.cc:
Split into...
* 27_io/basic_filebuf/1.cc: New.
* 27_io/basic_filebuf/2.cc: New.
* 27_io/basic_filebuf/3.cc: New.
* 27_io/basic_filebuf/4.cc: New.
* 27_io/basic_filebuf/close/char/1.cc: New.
* 27_io/basic_filebuf/close/char/2.cc: New.
* 27_io/basic_filebuf/close/char/3.cc: New.
* 27_io/basic_filebuf/close/char/4879.cc: New.
* 27_io/basic_filebuf/close/char/9964.cc: New.
* 27_io/basic_filebuf/imbue/char/1.cc: New.
* 27_io/basic_filebuf/imbue/char/9322.cc: New.
* 27_io/basic_filebuf/in_avail/char/1.cc: New.
* 27_io/basic_filebuf/is_open/char/1.cc: New.
* 27_io/basic_filebuf/open/char/1.cc: New.
* 27_io/basic_filebuf/open/char/2.cc: New.
* 27_io/basic_filebuf/open/char/3.cc: New.
* 27_io/basic_filebuf/open/char/9507.cc: New.
* 27_io/basic_filebuf/overflow/char/1.cc: New.
* 27_io/basic_filebuf/overflow/char/3599.cc: New.
* 27_io/basic_filebuf/overflow/char/9169.cc: New.
* 27_io/basic_filebuf/overflow/char/9182-2.cc: New.
* 27_io/basic_filebuf/overflow/char/9988.cc: New.
* 27_io/basic_filebuf/sbumpc/char/1.cc: New.
* 27_io/basic_filebuf/sbumpc/char/9825.cc: New.
* 27_io/basic_filebuf/seekoff/char/1.cc: New.
* 27_io/basic_filebuf/seekoff/char/2.cc: New.
* 27_io/basic_filebuf/seekpos/char/1.cc: New.
* 27_io/basic_filebuf/seekpos/char/2.cc: New.
* 27_io/basic_filebuf/setbuf/char/1.cc: New.
* 27_io/basic_filebuf/setbuf/char/2.cc: New.
* 27_io/basic_filebuf/setbuf/char/3.cc: New.
* 27_io/basic_filebuf/sgetc/char/1.cc: New.
* 27_io/basic_filebuf/sgetn/char/1.cc: New.
* 27_io/basic_filebuf/sgetn/char/2.cc: New.
* 27_io/basic_filebuf/snextc/char/1.cc: New.
* 27_io/basic_filebuf/sputbackc/char/1.cc: New.
* 27_io/basic_filebuf/sputbackc/char/9425.cc: New.
* 27_io/basic_filebuf/sputc/char/1.cc: New.
* 27_io/basic_filebuf/sputc/char/1057.cc: New.
* 27_io/basic_filebuf/sputc/char/9701-2.cc: New.
* 27_io/basic_filebuf/sputn/char/1.cc: New.
* 27_io/basic_filebuf/sputn/char/1057.cc: New.
* 27_io/basic_filebuf/sputn/char/9701-1.cc: New.
* 27_io/basic_filebuf/sungetc/char/1.cc: New.
* 27_io/basic_filebuf/sync/char/1057.cc: New.
* 27_io/basic_filebuf/sync/char/9182-1.cc: New.
* 27_io/basic_filebuf/underflow/char/10097.cc: New.
* 27_io/basic_fstream/1.cc: New.
* 27_io/basic_fstream/2.cc: New.
* 27_io/basic_fstream/3.cc: New.
* 27_io/basic_fstream/4.cc: New.
* 27_io/basic_fstream/rdbuf/char/2832.cc: New.
* 27_io/basic_ifstream/1.cc: New.
* 27_io/basic_ifstream/2.cc: New.
* 27_io/basic_ifstream/3.cc: New.
* 27_io/basic_ifstream/4.cc: New.
* 27_io/basic_ifstream/cons/char/1.cc: New.
* 27_io/basic_ifstream/open/char/1.cc: New.
* 27_io/basic_ifstream/rdbuf/char/2832.cc: New.
* 27_io/basic_ios/1.cc: New.
* 27_io/basic_ios/2.cc: New.
* 27_io/basic_ios/3.cc: New.
* 27_io/basic_ios/4.cc: New.
* 27_io/basic_ios/clear/char/1.cc: New.
* 27_io/basic_ios/cons/char/1.cc: New.
* 27_io/basic_ios/cons/char/2.cc: New.
* 27_io/basic_ios/cons/char/3.cc: New.
* 27_io/basic_ios/copyfmt/char/1.cc: New.
* 27_io/basic_ios/copyfmt/char/2.cc: New.
* 27_io/basic_ios/exceptions/char/1.cc: New.
* 27_io/basic_ios/locales/char/1.cc: New.
* 27_io/basic_iostream/1.cc: New.
* 27_io/basic_iostream/2.cc: New.
* 27_io/basic_iostream/3.cc: New.
* 27_io/basic_iostream/4.cc: New.
* 27_io/basic_istream/1.cc: New.
* 27_io/basic_istream/2.cc: New.
* 27_io/basic_istream/3.cc: New.
* 27_io/basic_istream/4.cc: New.
* 27_io/basic_istream/exceptions/char/9561.cc: New.
* 27_io/basic_istream/extractors_arithmetic/char/01.cc: New.
* 27_io/basic_istream/extractors_arithmetic/char/02.cc: New.
* 27_io/basic_istream/extractors_arithmetic/char/03.cc: New.
* 27_io/basic_istream/extractors_arithmetic/char/06.cc: New.
* 27_io/basic_istream/extractors_arithmetic/char/07.cc: New.
* 27_io/basic_istream/extractors_arithmetic/char/08.cc: New.
* 27_io/basic_istream/extractors_arithmetic/char/09.cc: New.
* 27_io/basic_istream/extractors_arithmetic/char/10.cc: New.
* 27_io/basic_istream/extractors_arithmetic/char/11.cc: New.
* 27_io/basic_istream/extractors_arithmetic/char/12.cc: New.
* 27_io/basic_istream/extractors_arithmetic/char/13.cc: New.
* 27_io/basic_istream/extractors_character/char/1.cc: New.
* 27_io/basic_istream/extractors_character/char/2.cc: New.
* 27_io/basic_istream/extractors_character/char/3.cc: New.
* 27_io/basic_istream/extractors_character/char/9826.cc: New.
* 27_io/basic_istream/extractors_other/char/1.cc: New.
* 27_io/basic_istream/extractors_other/char/2.cc: New.
* 27_io/basic_istream/extractors_other/char/3.cc: New.
* 27_io/basic_istream/extractors_other/char/9318-in.cc: New.
* 27_io/basic_istream/extractors_other/char/9424-in.cc: New.
* 27_io/basic_istream/get/char/1.cc: New.
* 27_io/basic_istream/get/char/2.cc: New.
* 27_io/basic_istream/getline/char/1.cc: New.
* 27_io/basic_istream/getline/char/2.cc: New.
* 27_io/basic_istream/getline/char/3.cc: New.
* 27_io/basic_istream/ignore/char/1.cc: New.
* 27_io/basic_istream/ignore/char/6360.cc: New.
* 27_io/basic_istream/ignore/char/7220.cc: New.
* 27_io/basic_istream/peek/char/1.cc: New.
* 27_io/basic_istream/peek/char/6414.cc: New.
* 27_io/basic_istream/putback/char/1.cc: New.
* 27_io/basic_istream/read/char/1.cc: New.
* 27_io/basic_istream/read/char/2.cc: New.
* 27_io/basic_istream/read/char/3.cc: New.
* 27_io/basic_istream/readsome/char/6746-1.cc: New.
* 27_io/basic_istream/readsome/char/6746-2.cc: New.
* 27_io/basic_istream/readsome/char/8258.cc: New.
* 27_io/basic_istream/seekg/char/2346-fstream.cc: New.
* 27_io/basic_istream/seekg/char/2346-sstream.cc: New.
* 27_io/basic_istream/seekg/char/8348-1.cc: New.
* 27_io/basic_istream/seekg/char/8348-2.cc: New.
* 27_io/basic_istream/seekg/char/fstream.cc: New.
* 27_io/basic_istream/seekg/char/sstream.cc: New.
* 27_io/basic_istream/sentry/char/1.cc: New.
* 27_io/basic_istream/sentry/char/2.cc: New.
* 27_io/basic_istream/sentry/char/3.cc: New.
* 27_io/basic_istream/sentry/char/3983-fstream.cc: New.
* 27_io/basic_istream/sentry/char/3983-sstream.cc: New.
* 27_io/basic_istream/tellg/char/1.cc: New.
* 27_io/basic_istream/tellg/char/8348.cc: New.
* 27_io/basic_istream/tellg/char/fstream.cc: New.
* 27_io/basic_istream/tellg/char/sstream.cc: New.
* 27_io/basic_istream/ws/char/1.cc: New.
* 27_io/basic_istringstream/1.cc: New.
* 27_io/basic_istringstream/2.cc: New.
* 27_io/basic_istringstream/3.cc: New.
* 27_io/basic_istringstream/4.cc: New.
* 27_io/basic_istringstream/rdbuf/char/2832.cc: New.
* 27_io/basic_istringstream/str/char/1.cc: New.
* 27_io/basic_ofstream/1.cc: New.
* 27_io/basic_ofstream/2.cc: New.
* 27_io/basic_ofstream/3.cc: New.
* 27_io/basic_ofstream/4.cc: New.
* 27_io/basic_ofstream/cons/char/2.cc: New.
* 27_io/basic_ofstream/open/char/1.cc: New.
* 27_io/basic_ofstream/rdbuf/char/2832.cc: New.
* 27_io/basic_ostream/1.cc: New.
* 27_io/basic_ostream/2.cc: New.
* 27_io/basic_ostream/3.cc: New.
* 27_io/basic_ostream/4.cc: New.
* 27_io/basic_ostream/cons/char/9827.cc: New.
* 27_io/basic_ostream/endl/char/1.cc: New.
* 27_io/basic_ostream/ends/char/1.cc: New.
* 27_io/basic_ostream/ends/char/2.cc: New.
* 27_io/basic_ostream/exceptions/char/9561.cc: New.
* 27_io/basic_ostream/flush/char/1.cc: New.
* 27_io/basic_ostream/inserters_arithmetic/char/1.cc: New.
* 27_io/basic_ostream/inserters_arithmetic/char/2.cc: New.
* 27_io/basic_ostream/inserters_arithmetic/char/3.cc: New.
* 27_io/basic_ostream/inserters_arithmetic/char/4.cc: New.
* 27_io/basic_ostream/inserters_arithmetic/char/4402.cc: New.
* 27_io/basic_ostream/inserters_arithmetic/char/5.cc: New.
* 27_io/basic_ostream/inserters_arithmetic/char/6.cc: New.
* 27_io/basic_ostream/inserters_arithmetic/wchar_t/1.cc: New.
* 27_io/basic_ostream/inserters_character/char/1.cc: New.
* 27_io/basic_ostream/inserters_character/char/2.cc: New.
* 27_io/basic_ostream/inserters_character/char/3.cc: New.
* 27_io/basic_ostream/inserters_character/char/4.cc: New.
* 27_io/basic_ostream/inserters_character/char/5.cc: New.
* 27_io/basic_ostream/inserters_character/char/6.cc: New.
* 27_io/basic_ostream/inserters_character/char/8.cc: New.
* 27_io/basic_ostream/inserters_character/wchar_t/7.cc: New.
* 27_io/basic_ostream/inserters_character/wchar_t/8.cc: New.
* 27_io/basic_ostream/inserters_other/char/1.cc: New.
* 27_io/basic_ostream/inserters_other/char/2.cc: New.
* 27_io/basic_ostream/inserters_other/char/3.cc: New.
* 27_io/basic_ostream/inserters_other/char/4.cc: New.
* 27_io/basic_ostream/inserters_other/char/9318-out.cc: New.
* 27_io/basic_ostream/inserters_other/char/9424-out.cc: New.
* 27_io/basic_ostream/sentry/char/1.cc: New.
* 27_io/basic_ostream/sentry/char/2.cc: New.
* 27_io/basic_ostream/sentry/char/3983-fstream.cc: New.
* 27_io/basic_ostream/sentry/char/3983-sstream.cc: New.
* 27_io/basic_ostream/tellp/char/1.cc: New.
* 27_io/basic_ostream/tellp/char/2.cc: New.
* 27_io/basic_ostringstream/1.cc: New.
* 27_io/basic_ostringstream/2.cc: New.
* 27_io/basic_ostringstream/3.cc: New.
* 27_io/basic_ostringstream/4.cc: New.
* 27_io/basic_ostringstream/cons/char/3.cc: New.
* 27_io/basic_ostringstream/rdbuf/char/2832.cc: New.
* 27_io/basic_ostringstream/str/char/1.cc: New.
* 27_io/basic_ostringstream/str/char/2.cc: New.
* 27_io/basic_streambuf/1.cc: New.
* 27_io/basic_streambuf/2.cc: New.
* 27_io/basic_streambuf/3.cc: New.
* 27_io/basic_streambuf/cons/char/1.cc: New.
* 27_io/basic_streambuf/imbue/char/1.cc: New.
* 27_io/basic_streambuf/imbue/char/9322.cc: New.
* 27_io/basic_streambuf/overflow/char/1.cc: New.
* 27_io/basic_streambuf/overflow/char/2.cc: New.
* 27_io/basic_streambuf/overflow/char/3599.cc: New.
* 27_io/basic_streambuf/sgetc/char/1.cc: New.
* 27_io/basic_streambuf/sgetn/char/1.cc: New.
* 27_io/basic_streambuf/sputbackc/char/9538.cc: New.
* 27_io/basic_streambuf/sputc/char/1057.cc: New.
* 27_io/basic_streambuf/sputn/char/1.cc: New.
* 27_io/basic_streambuf/sputn/char/1057.cc: New.
* 27_io/basic_streambuf/sync/char/1057.cc: New.
* 27_io/basic_stringbuf/1.cc: New.
* 27_io/basic_stringbuf/2.cc: New.
* 27_io/basic_stringbuf/3.cc: New.
* 27_io/basic_stringbuf/4.cc: New.
* 27_io/basic_stringbuf/5.cc: New.
* 27_io/basic_stringbuf/imbue/char/1.cc: New.
* 27_io/basic_stringbuf/imbue/char/9322.cc: New.
* 27_io/basic_stringbuf/in_avail/char/1.cc: New.
* 27_io/basic_stringbuf/overflow/char/2.cc: New.
* 27_io/basic_stringbuf/overflow/char/3599.cc: New.
* 27_io/basic_stringbuf/overflow/char/9988.cc: New.
* 27_io/basic_stringbuf/sbumpc/char/1.cc: New.
* 27_io/basic_stringbuf/sbumpc/char/9825.cc: New.
* 27_io/basic_stringbuf/seekoff/char/1.cc: New.
* 27_io/basic_stringbuf/seekoff/char/2.cc: New.
* 27_io/basic_stringbuf/seekpos/char/1.cc: New.
* 27_io/basic_stringbuf/seekpos/char/2.cc: New.
* 27_io/basic_stringbuf/setbuf/char/1.cc: New.
* 27_io/basic_stringbuf/setbuf/char/2.cc: New.
* 27_io/basic_stringbuf/setbuf/char/3.cc: New.
* 27_io/basic_stringbuf/sgetc/char/1.cc: New.
* 27_io/basic_stringbuf/sgetn/char/1.cc: New.
* 27_io/basic_stringbuf/snextc/char/1.cc: New.
* 27_io/basic_stringbuf/sputbackc/char/1.cc: New.
* 27_io/basic_stringbuf/sputbackc/char/9425.cc: New.
* 27_io/basic_stringbuf/sputc/char/1.cc: New.
* 27_io/basic_stringbuf/sputc/char/1057.cc: New.
* 27_io/basic_stringbuf/sputc/char/9404-1.cc: New.
* 27_io/basic_stringbuf/sputn/char/1.cc: New.
* 27_io/basic_stringbuf/sputn/char/1057.cc: New.
* 27_io/basic_stringbuf/sputn/char/9404-2.cc: New.
* 27_io/basic_stringbuf/str/char/1.cc: New.
* 27_io/basic_stringbuf/str/char/2.cc: New.
* 27_io/basic_stringbuf/str/char/3.cc: New.
* 27_io/basic_stringbuf/str/char/3955.cc: New.
* 27_io/basic_stringbuf/sungetc/char/1.cc: New.
* 27_io/basic_stringbuf/sync/char/1057.cc: New.
* 27_io/basic_stringstream/1.cc: New.
* 27_io/basic_stringstream/2.cc: New.
* 27_io/basic_stringstream/3.cc: New.
* 27_io/basic_stringstream/4.cc: New.
* 27_io/basic_stringstream/rdbuf/char/2832.cc: New.
* 27_io/basic_stringstream/str/char/1.cc: New.
* 27_io/basic_stringstream/str/char/2.cc: New.
* 27_io/basic_stringstream/str/char/3.cc: New.
* 27_io/basic_stringstream/str/char/4.cc: New.
* 27_io/fpos/1.cc: New.
* 27_io/fpos/2.cc: New.
* 27_io/fpos/3.cc: New.
* 27_io/ios_base/callbacks/1.cc: New.
* 27_io/ios_base/state/1.cc: New.
* 27_io/ios_base/storage/1.cc: New.
* 27_io/ios_base/storage/2.cc: New.
* 27_io/ios_base/storage/3.cc: New.
* 27_io/ios_base/sync_with_stdio/1.cc: New.
* 27_io/ios_base/sync_with_stdio/2.cc: New.
* 27_io/manipulators/adjustfield/char/1.cc: New.
* 27_io/manipulators/adjustfield/char/2.cc: New.
* 27_io/manipulators/basefield/char/1.cc: New.
* 27_io/manipulators/standard/char/1.cc: New.
* 27_io/manipulators/standard/char/2.cc: New.
* 27_io/objects/char/1.cc: New.
* 27_io/objects/char/2.cc: New.
* 27_io/objects/char/2523-1_xin.cc: New.
* 27_io/objects/char/2523-1_xin.in: New.
* 27_io/objects/char/2523-2_xin.cc: New.
* 27_io/objects/char/2523-2_xin.in: New.
* 27_io/objects/char/3045.cc: New.
* 27_io/objects/char/3647.cc: New.
* 27_io/objects/char/3_xin.cc: New.
* 27_io/objects/char/3_xin.in: New.
* 27_io/objects/char/4_xin.cc: New.
* 27_io/objects/char/4_xin.in: New.
* 27_io/objects/char/5268.cc: New.
* 27_io/objects/char/5280_xin.cc: New.
* 27_io/objects/char/5280_xin.in: New.
* 27_io/objects/char/6548_xin.cc: New.
* 27_io/objects/char/6548_xin.in: New.
* 27_io/objects/char/6648-1_xin.cc: New.
* 27_io/objects/char/6648-1_xin.in: New.
* 27_io/objects/char/6648-2_xin.cc: New.
* 27_io/objects/char/6648-2_xin.in: New.
* 27_io/objects/char/7744_xin.cc: New.
* 27_io/objects/char/7744_xin.in: New.
* 27_io/objects/wchar_t/1.cc: New.
* 27_io/types/1.cc: New.
* 27_io/types/2.cc: New.
* data/filebuf_members-1.tst: New.
* data/filebuf_members-1.txt: New.
* data/filebuf_virtuals-1.tst: New.
* data/filebuf_virtuals-1.txt: New.
* data/filebuf_virtuals-2.tst: New.
* data/filebuf_virtuals-3.tst: New.
* data/ifstream_members-1.tst: New.
* data/ifstream_members-1.txt: New.
* data/ios_base_members_static-1.tst: New.
* data/istream_extractor_other-1.tst: New.
* data/istream_extractor_other-1.txt: New.
* data/istream_extractor_other-2.tst: New.
* data/istream_seeks-1.tst: New.
* data/istream_seeks-1.txt: New.
* data/istream_seeks-2.tst: New.
* data/istream_seeks-3.tst: New.
* data/istream_unformatted-1.tst: New.
* data/istream_unformatted-1.txt: New.
* data/ofstream_members-1.tst: New.
* data/ostream_inserter_char-1.tst: New.
* data/ostream_inserter_char-1.txt: New.
* data/ostream_inserter_other-1.tst: New.
* data/ostream_inserter_other-2.tst: New.
* data/ostream_seeks-1.tst: New.
2003-04-09 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/sstream.tcc (basic_stringbuf::seekpos): Remove
requirement that __mode must be strict input or output.
* include/std/std_streambuf.h (basic_streambuf::setp): Set
_M_out_lim.
* include/std/std_sstream.h (basic_strinbuf::str): Zero length
output string shouldn't core.
(basic_stringbuf::_M_really_sync): Add base argument. Remove rturn
type.
* include/bits/sstream.tcc: Adjust _M_really_sync bits here.
* include/bits/istream.tcc (basic_istream::putback): Set gcount to
zero.
2003-04-09 Benjamin Kosnik <bkoz@redhat.com>
* testsuite/data: New directory.
* testsuite/lib/libstdc++-v3-dg.exp (libstdc++-v3-init): Modify
to copy files from the testsuite data directory.
(libstdc++-v3-list-sourcefiles): Add another test list filter, for
testfiles containing _xin, which now means this is an interactive
test and should be run with the interactive dejagnu hooks.
* testsuite/Makefile.am: Remove testsuite_* files.
* testsuite/Makefile.in: Regenerate.
From-SVN: r65421
2003-04-10 07:15:40 +00:00
Paolo Carlini
eb98bd16ce
std_streambuf.h (_M_out_buf_size()): Remove.
...
2003-03-31 Paolo Carlini <pcarlini@unitus.it>
* include/std/std_streambuf.h (_M_out_buf_size()): Remove.
* include/bits/fstream.tcc (_M_allocate_internal_buffer):
Don't set _M_out_end.
(basic_filebuf::overflow): Replace _M_out_buf_size() with
this->_M_out_cur && this->_M_out_cur < this->_M_out_end.
* include/bits/sstream.tcc (basic_stringbuf::overflow):
Replace _M_out_buf_size() with this->_M_out_cur < this->_M_out_end;
* include/bits/streambuf.tcc (basic_streambuf::sputc):
Replace _M_out_buf_size() with _M_out_cur && _M_out_cur < _M_out_end.
(basic_streambuf::xsputn): Replace _M_out_buf_size() with
_M_out_end - _M_out_cur.
(__copy_streambufs): Likewise.
* include/std/std_fstream.h (_M_set_determinate): Set
_M_out_end here.
From-SVN: r65093
2003-03-31 18:24:13 +00:00
Paolo Carlini
631693d58d
fstream.tcc (basic_filebuf::showmanyc, [...]): Fix test for synced buffer.
...
2003-03-30 Paolo Carlini <pcarlini@unitus.it>
* include/bits/fstream.tcc (basic_filebuf::showmanyc,
_M_convert_to_external, _M_really_overflow, seekoff): Fix
test for synced buffer.
* include/std/std_fstream.h (sync): Likewise.
* src/fstream.cc (basic_filebuf<char>::_M_underflow_common,
basic_filebuf<wchar_t>::_M_underflow_common): Likewise.
From-SVN: r65038
2003-03-30 08:32:11 +00:00
Benjamin Kosnik
d29cc32f9d
std_sstream.h (basic_istringstream): Adjust initialization.
...
2003-03-28 Benjamin Kosnik <bkoz@redhat.com>
* include/std/std_sstream.h (basic_istringstream): Adjust
initialization.
(basic_ostringstream): Same.
(basic_stringstream): Same.
* include/std/std_fstream.h (basic_ifstream): Adjust initialization.
(basic_ofstream): Same.
(basic_fstream): Same.
* include/std/std_ostream.h (basic_ostrem): Add protected ctor
that does not call init.
* include/std/std_istream.h (basic_istream): Same.
(basic_iostream): Construct istream, ostream uninitialized, use
init to initialize just once. Add protected ctor that does not
call init.
From-SVN: r64980
2003-03-28 19:45:44 +00:00
Paolo Carlini
95dca20c9c
re PR libstdc++/7744 (streambuf::in_avail() always returns 0 (zero) for cin input stream)
...
2003-03-09 Paolo Carlini <pcarlini@unitus.it>
Nathan Myers <ncm@cantrip.org>
PR libstdc++/7744
* config/io/basic_file_stdio.h (__basic_file<>::xsgetn, xsputn,
seekoff, seekpos): Add a boolean parameter __stdio.
* config/io/basic_file_stdio.cc (__basic_file<>::xsgetn, xsputn,
seekoff, seekpos): If __stdio == true, use fread (fwrite, fseek/ftell,
fseek/ftell, respectively), otherwise read (write, lseek, lseek,
respectively).
* include/bits/fstream.tcc (basic_filebuf<>::_M_convert_to_external,
_M_really_overflow, seekoff): Use the boolean parameter in the calls.
* include/std/std_fstream.h (sync): Likewise.
* src/fstream.cc (basic_filebuf<>::_M_underflow_common): Likewise.
* src/ios.cc (ios_base::Init::_S_ios_create(bool)): Revert libstdc++/8399
commit involving isatty(0).
* acinclude.m4 (GLIBCPP_CHECK_UNISTD_DECL_AND_LINKAGE_1): Remove.
(GLIBCPP_CHECK_UNISTD_SUPPORT): Remove
* configure.in: Remove call.
* aclocal.m4: Regenerate.
* config.h.in: Regenerate.
* configure: Regenerate.
* testsuite/27_io/narrow_stream_objects.cc (test11): Add.
Co-Authored-By: Nathan Myers <ncm@cantrip.org>
From-SVN: r64051
2003-03-09 22:31:45 +00:00
Paolo Carlini
1deba98bd2
re PR libstdc++/9182 (basic_filebuf<> does not report errors in codecvt<>::out)
...
2003-03-07 Paolo Carlini <pcarlini@unitus.it>
PR libstdc++/9182
* include/bits/fstream.tcc (_M_really_overflow): Check
for _M_convert_to_external possible failures.
* include/std/std_fstream.h (sync): Check _M_really_overflow
return value and return -1 in case of failure.
* testsuite/27_io/filebuf_virtuals.cc (test13, test14): Add.
2003-03-07 Paolo Carlini <pcarlini@unitus.it>
PR libstdc++/9826
* include/bits/istream.tcc (operator>>(_CharT*),
operator>>(basic_string&), ws): Pass a char_type to __ctype.is.
* testsuite/27_io/stringstream.cc (test02): Add.
* include/bits/istream.tcc (operator>>(_CharT*)):
Assign a char_type to *__s.
From-SVN: r63953
2003-03-07 22:06:28 +00:00
Paolo Carlini
391cd0955e
PR libstdc++/9404, PR libstdc++/9701 (partial)
...
2003-02-24 Paolo Carlini <pcarlini@unitus.it>
Nathan Myers <ncm@cantrip.org>
PR libstdc++/9404, PR libstdc++/9701 (partial)
(aka pptr == epptr implies overflow)
* include/bits/fstream.tcc (_M_allocate_internal_buffer):
Consistently, _M_out_end points to the end of the buffer just
created.
(overflow): Tweak to use _M_out_buf_size().
(_M_convert_to_external): The role of the old _M_out_end is
now played by _M_out_lim.
(_M_really_overflow): Likewise.
(seekoff): Likewise.
(setbuf): _M_out_end points to the end of the external buffer.
* include/bits/sstream.tcc (overflow): Rewrote, taking into
account the resolution of DR 169 (TC).
(seekoff): Use _M_string.capacity(); ios_base::end is now _M_out_lim.
(seekpos): Use _M_string.capacity(); tweak.
* include/bits/streambuf.tcc (sputc, xsputn): Remove comments.
* include/std/std_fstream.h (sync): The role of the old
_M_out_end is now played by _M_out_lim.
(_M_set_indeterminate): Use _M_set_determinate.
(_M_set_determinate): _M_out_end is now _M_out_lim.
(_M_is_indeterminate): Likewise.
* include/std/std_sstream.h (str()): _M_out_end is now _M_out_lim.
(_M_stringbuf_init): Don't set _M_buf_size, unused for sstreams,
which have the information readily available as _M_string.capacity();
for ate and app modes, pass the string size to _M_really_sync.
(_M_really_sync): Consistently set _M_out_end and _M_out_lim, to
point to the end of the buffer (i.e., epptr) and to the string end,
respectively.
* include/std/std_streambuf.h: tweak comments, add _M_out_lim,
which points to the right limit of the used put area.
(_M_out_cur_move): The role of the old _M_out_end is now played
by _M_out_lim.
(_M_out_buf_size): Simplify: now (when _M_out_cur) return simply
_M_out_end - _M_out_cur (i.e., pptr), _very_ close to the letter
of the standard.
(basic_streambuf()): Initialize _M_out_lim too.
* testsuite/27_io/filebuf_virtuals.cc (test10): Trivial tweak.
* testsuite/27_io/filebuf_virtuals.cc (test11): Add.
* testsuite/27_io/stringbuf_virtuals.cc (test09): Add.
Co-Authored-By: Nathan Myers <ncm@cantrip.org>
From-SVN: r63367
2003-02-24 18:22:58 +00:00
Paolo Carlini
1a1aed2466
re PR libstdc++/9580 (basic_filebuf<> with custom traits_type fails to link)
...
2003-02-17 Paolo Carlini <pcarlini@unitus.it>
PR libstdc++/9580
* include/std/std_fstream.h: Declare underflow and uflow
specializations, change generic definitions to do nothing.
* src/fstream.cc: Add underflow and uflow specializations.
From-SVN: r63008
2003-02-17 20:07:48 +00:00
Benjamin Kosnik
1a1e79bbfe
Revert include ordering.
...
2003-01-23 Benjamin Kosnik <bkoz@redhat.com>
Revert include ordering.
* config/locale/generic/c_locale.h: Add include guards.
* config/locale/gnu/c_locale.h: Same.
* include/bits/locale_classes.h: Remove cctype include.
* include/std/std_iosfwd.h: Add c++locale.h, cctype includes.
* include/std/std_fstream.h: Remove streambuf include.
* include/std/std_sstream.h: Remove streambuf include.
From-SVN: r61664
2003-01-23 18:56:00 +00:00
Benjamin Kosnik
b4ec7fc7f0
re PR libstdc++/9269 (libstdc++ headers: explicit specialization of function must precede its first use)
...
2003-01-22 Benjamin Kosnik <bkoz@redhat.com>
Sysoltsev Slawa <Vyatcheslav.Sysoltsev@intel.com>
Mark Mitchell <mark@codesourcery.com>
PR libstdc++/9269
* include/std/std_fstream.h (basic_filebuf::uflow): Declare.
(basic_filebuf::underflow): Declare.
Move definitions.
Co-Authored-By: Mark Mitchell <mark@codesourcery.com>
Co-Authored-By: Sysoltsev Slawa <Vyatcheslav.Sysoltsev@intel.com>
From-SVN: r61616
2003-01-22 21:18:00 +00:00
Benjamin Kosnik
e66868131b
locale_facets.h: Move non-facet classes requiring <string> to...
...
2003-01-22 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/locale_facets.h: Move non-facet classes requiring
<string> to...
* include/bits/locale_classes.h: New.
* include/bits/Makefile.am (bits_headers_src): Add locale_classes.h.
* include/bits/Makefile.in: Regenerate.
* include/bits/locale_facets.tcc (__convert_from_v): Move to...
* config/locale/gnu/c_locale.h: ...here.
* config/locale/generic/c_locale.h: Same.
* include/bits/locale_facets.tcc: Move declarations to...
* include/bits/locale_facets.h: ...here.
* include/bits/basic_ios.h: Tweak includes accordingly.
* include/std/std_sstream.h: Add streambuf include.
* include/std/std_fstream.h: Ditto.
* include/std/std_locale.h: Add locale_classes.h include.
* include/std/std_iosfwd.h: Tweak.
* src/concept-inst.cc: Add iterator include.
* config/linker-map.gnu: Specify __cxa functions, mark __cxa_dyn_*
bits as unexported in the future.
From-SVN: r61593
2003-01-22 16:51:52 +00:00
Mark Mitchell
8fbc5ae723
cp-tree.h (lang_type_class): Remove is_partial_instantiation.
...
* cp-tree.h (lang_type_class): Remove is_partial_instantiation.
(PARTIAL_INSTANTIATION_P): Remove.
(IMPLICIT_TYPENAME_P): Likewise.
(IMPLICIT_TYPENAME_TYPE_DECL_P): Likewise.
(build_typename_type): Remove declaration.
(parmlist_is_exprlist): Likewise.
* decl.c (build_typename_type): Make it static, remove third
parameter.
(push_class_binding): Don't do implicit typename stuff.
(make_typename_type): Likewise.
(lookup_name_real): Likewise.
(grokdeclarator): Don't try to convert declarations into
initializations. Don't do implicit typename stuff.
(parmlist_is_exprlist): Remove.
(xref_basetypes): Simplify.
* decl2.c (grokfield): Don't try to convert declarations into
initializations.
(build_anon_union_vars): Do this while processing templates, too.
(finish_anon_union): Likewise.
* error.c (dump_type): Remove implicit typename handling.
* parser.c (cp_parser_diagnose_invalid_type_name): New method.
(cp_parser_primary_expression): Correct handling of names not
found by unqualified name lookup in templates.
(cp_parser_nested_name_specifier_opt): Avoid checking dependency
of types when possible.
(cp_parser_simple_declaration): Complain intelligently about some
invalid declarations.
(cp_parser_member_declaration): Likewise.
(cp_parser_constructor_declarator_p): Don't check when we're in a
function scope.
* pt.c (instantiate_class_template): Remove
PARTIAL_INSTANTIATION_P gunk.
* search.c (lookup_field_r): Don't build implicit typenames.
(marked_pushdecls_p): Don't enter dependent base types.
(unmarked_pushdecls_p): Likewise.
* semantics.c (begin_class_definition): Remove implicit typename
stuff.
* config/locale/gnu/messages_members.h: Use this-> to refer to
unqualified members of base clasess.
* config/locale/ieee_1003.1-2001/codecvt_specializations.h: Likewise.
* include/bits/codecvt.h: Likewise.
* include/bits/deque.tcc: Likewise.
* include/bits/fstream.tcc: Likewise.
* include/bits/istream.tcc: Likewise.
* include/bits/list.tcc: Likewise.
* include/bits/locale_facets.h: Likewise.
* include/bits/ostream.tcc: Likewise.
* include/bits/sstream.tcc: Likewise.
* include/bits/stl_bvector.h: Likewise.
* include/bits/stl_deque.h: Likewise.
* include/bits/stl_list.h: Likewise.
* include/bits/stl_tree.h: Likewise.
* include/bits/stl_vector.h: Likewise.
* include/bits/vector.tcc: Likewise.
* include/ext/ropeimpl.h: Likewise.
* include/ext/stdio_filebuf.h: Likewise.
* include/ext/stl_rope.h: Likewise.
* include/std/std_fstream.h: Likewise.
* include/std/std_sstream.h: Likewise.
Co-Authored-By: Jeffrey Oldham <oldham@codesourcery.com>
From-SVN: r61403
2003-01-16 20:30:50 +00:00
Mark Mitchell
43be7fe7d7
* config/locale/gnu/ctype_members.cc
...
(ctype<wchar_t>::_M_convert_to_wmask): Remove stray semicolon.
* config/locale/gnu/monetary_members.cc
(moneypunct<wchar_t, true>::_M_initialize_moneypunct): Avoid
defining classes in static_cast.
(moneypunct<wchar_t, false>::_M_initialize_moneypunct): Likewise.
* config/locale/gnu/numeric_members.cc
(numpunct<wchar_t, false>::_M_initialize_numpunct): Likewise.
* include/bits/stl_deque.h (operator-): Insert typename where
required.
* include/bits/stl_multiset.h (multiset): Remove stray semicolon.
* include/bits/stl_set.h (set): Likewise.
* include/bits/valarray_meta.h (bits/slice_array.h): Include it.
* include/std/std_fstream.h (basic_fstream::open): Use this-> to
avoid Koenig lookup.
(basic_fstream::close): Likewise.
* libsupc++/new (operator delete): Remove stray semicolon.
* libsupc++/new (operator delete[]): Likewise.
* libsupc++/tinfo.cc: Likewise.
* src/stdexcept.c (logic_error::~logic_error): Likewise.
(runtime_error::~runtime_error): Likewise.
From-SVN: r60547
2002-12-27 23:03:03 +00:00
Phil Edwards
840ceb345b
TODO: Note change in clause 27 docs.
...
2002-11-21 Phil Edwards <pme@gcc.gnu.org>
* docs/doxygen/TODO: Note change in clause 27 docs.
* include/bits/basic_ios.h, include/bits/fpos.h,
include/bits/ios_base.h, include/bits/stl_deque.h,
include/bits/stl_iterator_base_types.h, include/std/std_fstream.h,
include/std/std_iomanip.h, include/std/std_iosfwd.h,
include/std/std_iostream.h, include/std/std_istream.h,
include/std/std_ostream.h, include/std/std_sstream.h,
include/std/std_streambuf.h: Doxygenate all I/O entities.
From-SVN: r59325
2002-11-21 07:06:41 +00:00
Benjamin Kosnik
f13a69eccf
char_traits.h: Remove generic definitions.
...
2002-07-30 Benjamin Kosnik <bkoz@redhat.com>
Gabriel Dos Reis <gdr@nerim.net>
* include/bits/char_traits.h: Remove generic definitions.
* include/bits/streambuf_iterator.h (istreambuf_iterator): Use
eof, not -2.
* include/bits/istream.tcc (istream::readsome): Don't check
against eof, instead use constants.
(istream::sync): Same.
(istream::sentry::sentry): Use eq_int_type.
(istream::get): Same.
* include/bits/ostream.tcc: Change __pad to
__pad<_CharT, _Traits>::_S_pad.
* include/bits/locale_facets.h: Add __pad_traits generic and
ostreambuf_iterator specialization.
* include/bits/locale_facets.tcc: Change __pad into struct __pad
with a _CharT and _Traits template parameter and _S_pad static
member function.
* src/locale-inst.cc: Update __pad instantiations.
* include/std/std_fstream.h: Declare _M_underflow_common
specializations.
* src/fstream.cc: New. Add _M_underflow_common specializations.
* include/bits/fstream.tcc (filebuf::close): Use traits_type.
(filebuf::_M_underflow_common(bool)): Remove generic version, as
sys_ungetc and custom int_types don't get along.
* include/std/std_streambuf.h: Add _M_pos.
* src/Makefile.am (sources): Add fstream.cc.
* src/Makefile.in: Regenerate.
* testsuite/21_strings/capacity.cc: Add char_traits specializations.
* testsuite/22_locale/codecvt_members_unicode_char.cc: Same.
* testsuite/22_locale/codecvt_members_unicode_wchar_t.cc: Same.
* testsuite/22_locale/ctor_copy_dtor.cc: Same.
* testsuite/27_io/filebuf_virtuals.cc (test07): Move to...
* testsuite/27_io/filebuf.cc: ...here.
* testsuite/testsuite_hooks.h: Add gnu_char, gnu_int, char_traits
specialization for both.
* testsuite/27_io/streambuf.cc: Add instantiation test,
testsuite_hooks include.
* testsuite/27_io/istream.cc: Same.
* testsuite/27_io/ostream.cc: Same.
* testsuite/27_io/fstream.cc: Same.
* testsuite/27_io/stringstream.cc: Same.
* testsuite/27_io/filebuf.cc: Same.
* testsuite/27_io/stringbuf.cc: Same.
Co-Authored-By: Gabriel Dos Reis <gdr@nerim.net>
From-SVN: r55893
2002-07-31 02:47:36 +00:00
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
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
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
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