aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrent Verner <brent@rcfile.org>2000-10-06 07:12:32 +0000
committerBenjamin Kosnik <bkoz@gcc.gnu.org>2000-10-06 07:12:32 +0000
commit7c7688c76a78e3f65ffe82dfbc32975700d54392 (patch)
treeece36af1dbd3a89b2d2aff500fbf18dc45ecc247
parent3a1ed6a1d1b6271763b131731f2d19463bfbe813 (diff)
downloadgcc-7c7688c76a78e3f65ffe82dfbc32975700d54392.zip
gcc-7c7688c76a78e3f65ffe82dfbc32975700d54392.tar.gz
gcc-7c7688c76a78e3f65ffe82dfbc32975700d54392.tar.bz2
istream.tcc: Removed test for _M_gcount < in_avail()...
2000-10-05 Brent Verner <brent@rcfile.org> * bits/istream.tcc [basic_istream::get(basic_streambuf&)]: Removed test for _M_gcount < in_avail(), as in_avail() only reports info for current buffer, causing method to return at end of buffer. * testsuite/27_io/istream_unformatted.cc [test07()]: New test. * testsuite/27_io/istream_unformatted-3.txt: New file. * testsuite/27_io/istream_unformatted-3.tst: New file. From-SVN: r36752
-rw-r--r--libstdc++-v3/include/bits/istream.tcc5
-rw-r--r--libstdc++-v3/testsuite/27_io/istream_unformatted.cc26
2 files changed, 26 insertions, 5 deletions
diff --git a/libstdc++-v3/include/bits/istream.tcc b/libstdc++-v3/include/bits/istream.tcc
index 8ad2de0..1c42630 100644
--- a/libstdc++-v3/include/bits/istream.tcc
+++ b/libstdc++-v3/include/bits/istream.tcc
@@ -588,11 +588,10 @@ namespace std {
bool __testdelim = __c == __idelim;
bool __testeof = __c == __eof;
bool __testput = true;
- streamsize __n = __this_sb->in_avail();
- while (_M_gcount <= __n && !__testeof && !__testdelim
+ while (!__testeof && !__testdelim
&& (__testput = __sb.sputc(traits_type::to_char_type(__c))
- != __eof))
+ != __eof))
{
++_M_gcount;
__c = __this_sb->sbumpc();
diff --git a/libstdc++-v3/testsuite/27_io/istream_unformatted.cc b/libstdc++-v3/testsuite/27_io/istream_unformatted.cc
index 6757a39..d34e578 100644
--- a/libstdc++-v3/testsuite/27_io/istream_unformatted.cc
+++ b/libstdc++-v3/testsuite/27_io/istream_unformatted.cc
@@ -452,7 +452,28 @@ test06()
return 0;
}
-
+// bug reported by bgarcia@laurelnetworks.com
+// http://sources.redhat.com/ml/libstdc++-prs/2000-q3/msg00041.html
+int
+test07()
+{
+ const char* tfn = "testsuite/istream_unformatted-3.txt";
+ std::ifstream infile;
+ infile.open(tfn);
+ VERIFY( infile );
+ while (infile)
+ {
+ std::string line;
+ std::ostringstream line_ss;
+ while (infile.peek() == '\n')
+ infile.get();
+ infile.get(*(line_ss.rdbuf()));
+ line = line_ss.str();
+ VERIFY( line == "1234567890" || line == "" );
+ }
+ return 0;
+}
+
int
main()
{
@@ -462,7 +483,8 @@ main()
test04();
test05();
test06();
-
+ test07();
+
return 0;
}