2004-05-21 Paolo Carlini <pcarlini@suse.de>
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 21 May 2004 17:16:21 +0000 (17:16 +0000)
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 21 May 2004 17:16:21 +0000 (17:16 +0000)
* include/bits/istream.tcc (ignore): Remove redundant line.
(readsome): Tidy, closely following 27.6.1.3, p30.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@82103 138bc75d-0d04-0410-961f-82ee72b054a4

libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/istream.tcc

index 1baf1de..fe58a1e 100644 (file)
@@ -1,3 +1,8 @@
+2004-05-21  Paolo Carlini  <pcarlini@suse.de>
+
+       * include/bits/istream.tcc (ignore): Remove redundant line.
+       (readsome): Tidy, closely following 27.6.1.3, p30.
+
 2004-05-20  Paolo Carlini  <pcarlini@suse.de>
 
        * include/bits/istream.tcc (operator>>(basic_istream<>&,
index 5469005..b9dd0b1 100644 (file)
@@ -659,7 +659,6 @@ namespace std
              __streambuf_type* __sb = this->rdbuf();
              int_type __c;
 
-             __n = std::min(__n, numeric_limits<streamsize>::max());
              while (_M_gcount < __n
                     && !traits_type::eq_int_type(__c = __sb->sbumpc(), __eof))
                {
@@ -740,14 +739,10 @@ namespace std
          try
            {
              // Cannot compare int_type with streamsize generically.
-             streamsize __num = this->rdbuf()->in_avail();
-             if (__num >= 0)
-               {
-                 __num = std::min(__num, __n);
-                 if (__num)
-                   _M_gcount = this->rdbuf()->sgetn(__s, __num);
-               }
-             else
+             const streamsize __num = this->rdbuf()->in_avail();
+             if (__num > 0)
+               _M_gcount = this->rdbuf()->sgetn(__s, std::min(__num, __n));
+             else if (__num == -1)
                __err |= ios_base::eofbit;
            }
          catch(...)