This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[v3] Allow filebuf::setbuf(__s, 1) too


Hi,

tested x86-linux, reviewed by Benjamin.

Paolo.

///////
2003-06-18  Nathan C. Myers  <ncm-nospam@cantrip.org>
	    Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/fstream.tcc (setbuf): Allow (__s, 1) too,
	simply equivalent to the unbuffered case (0, 0) as far as
	_M_buf_size is concerned.
diff -urN libstdc++-v3-orig/include/bits/fstream.tcc libstdc++-v3/include/bits/fstream.tcc
--- libstdc++-v3-orig/include/bits/fstream.tcc	2003-06-11 00:00:42.000000000 +0200
+++ libstdc++-v3/include/bits/fstream.tcc	2003-06-17 22:04:29.000000000 +0200
@@ -429,15 +429,16 @@
     {
       if (!this->is_open() && __s == 0 && __n == 0)
 	this->_M_buf_size = 1;
-      else if (__s && __n > 1)
+      else if (__s && __n >= 1)
 	{
 	  // This is implementation-defined behavior, and assumes that
-	  // an external char_type array of length (__s + __n) exists
-	  // and has been pre-allocated. If this is not the case,
-	  // things will quickly blow up. The length argument __n must
-	  // be greater than 1 because __n - 1 positions will be used
-	  // for the get and put areas, and 1 position is needed to
-	  // host the overflow char of a full put area.
+	  // an external char_type array of length __n exists and has
+	  // been pre-allocated. If this is not the case, things will
+	  // quickly blow up. When __n > 1, __n - 1 positions will be
+	  // used for the get area, __n - 1 for the put area and 1
+	  // position to host the overflow char of a full put area.
+	  // When __n == 1, 1 position will bes used for the get area 
+	  // and 0 for the put area, as in the unbuffered case above.
 
 	  // Step 1: Destroy the current internal array.
 	  _M_destroy_internal_buffer();

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]