$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: technews_at_[hidden]
Date: 2008-02-23 02:44:59
Author: turkanis
Date: 2008-02-23 02:44:58 EST (Sat, 23 Feb 2008)
New Revision: 43399
URL: http://svn.boost.org/trac/boost/changeset/43399
Log:
merged changes from iostreams_dev
Text files modified: 
   trunk/boost/iostreams/close.hpp                           |     2 +-                                      
   trunk/libs/iostreams/doc/classes/filtering_stream.html    |     1 -                                       
   trunk/libs/iostreams/doc/classes/filtering_streambuf.html |     1 -                                       
   trunk/libs/iostreams/doc/functions/close.html             |     6 +++---                                  
   4 files changed, 4 insertions(+), 6 deletions(-)
Modified: trunk/boost/iostreams/close.hpp
==============================================================================
--- trunk/boost/iostreams/close.hpp	(original)
+++ trunk/boost/iostreams/close.hpp	2008-02-23 02:44:58 EST (Sat, 23 Feb 2008)
@@ -207,7 +207,7 @@
         typedef typename category_of<T>::type category;
         const bool in =  is_convertible<category, input>::value &&
                         !is_convertible<category, output>::value;
-        if (in == (which == BOOST_IOS::in))
+        if (in == (which == BOOST_IOS::in) && t.is_complete())
             t.pop();
     }
 };
Modified: trunk/libs/iostreams/doc/classes/filtering_stream.html
==============================================================================
--- trunk/libs/iostreams/doc/classes/filtering_stream.html	(original)
+++ trunk/libs/iostreams/doc/classes/filtering_stream.html	2008-02-23 02:44:58 EST (Sat, 23 Feb 2008)
@@ -110,7 +110,6 @@
     size_type <A CLASS="documented" HREF="#size">size</A>() <SPAN CLASS="keyword">const</SPAN>;
     <SPAN CLASS="keyword">void</SPAN> <A CLASS="documented" HREF="#reset">reset</A>();
     <SPAN CLASS="keyword">bool</SPAN> <A CLASS="documented" HREF="#is_complete">is_complete</A>() <SPAN CLASS="keyword">const</SPAN>;
-    <SPAN CLASS="keyword">bool</SPAN> <A CLASS="documented" HREF="#is_complete">is_complete</A>() <SPAN CLASS="keyword">const</SPAN>;
     <SPAN CLASS="keyword">bool</SPAN> <A CLASS="documented" HREF="#auto_close">auto_close</A>() <SPAN CLASS="keyword">const</SPAN>;
     <SPAN CLASS="keyword">void</SPAN> <A CLASS="documented" HREF="#set_auto_close">set_auto_close</A>(<SPAN CLASS='keyword'>bool</SPAN> close);
     <SPAN CLASS="keyword">bool</SPAN> <A CLASS="documented" HREF="#sync">sync</A>();
Modified: trunk/libs/iostreams/doc/classes/filtering_streambuf.html
==============================================================================
--- trunk/libs/iostreams/doc/classes/filtering_streambuf.html	(original)
+++ trunk/libs/iostreams/doc/classes/filtering_streambuf.html	2008-02-23 02:44:58 EST (Sat, 23 Feb 2008)
@@ -106,7 +106,6 @@
     size_type <A CLASS="documented" HREF="#size">size</A>() <SPAN CLASS="keyword">const</SPAN>;
     <SPAN CLASS="keyword">void</SPAN> <A CLASS="documented" HREF="#reset">reset</A>();
     <SPAN CLASS="keyword">bool</SPAN> <A CLASS="documented" HREF="#is_complete">is_complete</A>() <SPAN CLASS="keyword">const</SPAN>;
-    <SPAN CLASS="keyword">bool</SPAN> <A CLASS="documented" HREF="#is_complete">is_complete</A>() <SPAN CLASS="keyword">const</SPAN>;
     <SPAN CLASS="keyword">bool</SPAN> <A CLASS="documented" HREF="#auto_close">auto_close</A>() <SPAN CLASS="keyword">const</SPAN>;
     <SPAN CLASS="keyword">void</SPAN> <A CLASS="documented" HREF="#set_auto_close">set_auto_close</A>(<SPAN CLASS='keyword'>bool</SPAN> close);
     <SPAN CLASS="keyword">bool</SPAN> <A CLASS="documented" HREF="#sync">sync</A>();
Modified: trunk/libs/iostreams/doc/functions/close.html
==============================================================================
--- trunk/libs/iostreams/doc/functions/close.html	(original)
+++ trunk/libs/iostreams/doc/functions/close.html	2008-02-23 02:44:58 EST (Sat, 23 Feb 2008)
@@ -156,17 +156,17 @@
 <PRE CLASS="broken_ie"><SPAN CLASS="keyword">template</SPAN><<SPAN CLASS="keyword">typename</SPAN> T>     
 <SPAN CLASS="keyword">void</SPAN> <A CLASS="documented" HREF="#close_device">close</A>(T& t, std::ios_base::openmode which);</PRE>
 
-<P>If <CODE>t</CODE> is a filtering stream or stream buffer, <CODE>close</CODE> calls pop. The semantics depends on its category as follows:</P>
+<P>If <CODE>t</CODE> is a filtering stream or stream buffer, <CODE>close</CODE> calls pop if <CODE>t</CODE> is complete. The semantics depends on its category as follows:</P>
 
 <TABLE STYLE="margin-left:2em" BORDER=1 CELLPADDING=4>
     <TR><TH><CODE>category<T>::type</CODE></TH><TH>semantics</TH></TR>
     <TR>
         <TD VALIGN="top">convertible to input but not to output</TD>
-        <TD>calls <CODE>t.pop()</CODE> if <CODE>which == ios_base::in</CODE></TD>
+        <TD>calls <CODE>t.pop()</CODE> if <code>t</CODE> is complete and which == ios_base::in</CODE></TD>
     </TR>
     <TR>
         <TD VALIGN="top">otherwise</TD>
-        <TD>calls <CODE>t.pop()</CODE> if <CODE>which == ios_base::out</CODE></TD>
+        <TD>calls <CODE>t.pop()</CODE> if <code>t</CODE> is complete and <CODE>which == ios_base::out</CODE></TD>
     </TR>
 </TABLE>