4e39f563c0
Similar to the bugs I fixed recently in istream::ignore, we incorrectly set eofbit too often in operator>>(istream&, string&) and operator>>(istream&. char(&)[N]). We should only set eofbit if we reach EOF but would have kept going otherwise. If we've already extracted the maximum number of characters (whether that's because of the buffer size or the istream's width()) then we should not set eofbit. libstdc++-v3/ChangeLog: * include/bits/basic_string.tcc (operator>>(basic_istream&, basic_string&)): Do not set eofbit if extraction stopped after in.width() characters. * src/c++98/istream-string.cc (operator>>(istream&, string&)): Likewise. * include/bits/istream.tcc (__istream_extract): Do not set eofbit if extraction stopped after n-1 characters. * src/c++98/istream.cc (__istream_extract): Likewise. * testsuite/21_strings/basic_string/inserters_extractors/char/13.cc: New test. * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/13.cc: New test. * testsuite/27_io/basic_istream/extractors_character/char/5.cc: New test. * testsuite/27_io/basic_istream/extractors_character/wchar_t/5.cc: New test. |
||
---|---|---|
.. | ||
config | ||
doc | ||
include | ||
libsupc++ | ||
po | ||
python | ||
scripts | ||
src | ||
testsuite | ||
acinclude.m4 | ||
aclocal.m4 | ||
ChangeLog | ||
ChangeLog-1998 | ||
ChangeLog-1999 | ||
ChangeLog-2000 | ||
ChangeLog-2001 | ||
ChangeLog-2002 | ||
ChangeLog-2003 | ||
ChangeLog-2004 | ||
ChangeLog-2005 | ||
ChangeLog-2006 | ||
ChangeLog-2007 | ||
ChangeLog-2008 | ||
ChangeLog-2009 | ||
ChangeLog-2010 | ||
ChangeLog-2011 | ||
ChangeLog-2012 | ||
ChangeLog-2013 | ||
ChangeLog-2014 | ||
ChangeLog-2015 | ||
ChangeLog-2016 | ||
ChangeLog-2017 | ||
ChangeLog-2018 | ||
ChangeLog-2019 | ||
config.h.in | ||
configure | ||
configure.ac | ||
configure.host | ||
crossconfig.m4 | ||
fragment.am | ||
linkage.m4 | ||
Makefile.am | ||
Makefile.in | ||
README |
file: libstdc++-v3/README New users may wish to point their web browsers to the file index.html in the 'doc/html' subdirectory. It contains brief building instructions and notes on how to configure the library in interesting ways.