[uClibc-cvs] CVS uClibc++/include
CVS User gkajmowi
gkajmowi at codepoet.org
Tue Jan 18 00:06:30 UTC 2005
Update of /var/cvs/uClibc++/include
In directory nail:/tmp/cvs-serv7130/include
Modified Files:
fstream
Log Message:
Extending fstream tests
--- /var/cvs/uClibc++/include/fstream 2005/01/11 21:55:47 1.14
+++ /var/cvs/uClibc++/include/fstream 2005/01/18 00:06:29 1.15
@@ -239,7 +239,7 @@
//Can't do much
return traits::eof();
}
- if(basic_streambuf<charT,traits>::pbase() == 0){ //Unbuffered
+ if(basic_streambuf<charT,traits>::pbase() == 0){ //Unbuffered - elliminate dupe code below
if(fputc(c, fp) == EOF){
return traits::eof();
}
@@ -281,6 +281,8 @@
return traits::eof();
}
basic_streambuf<charT,traits>::pbump(-retval);
+ fprintf(stderr, "***** Did not write the full buffer out. Should be: %d, actually: %d\n",
+ s, retval);
}else{
basic_streambuf<charT,traits>::pbump(-r);
}
@@ -366,24 +368,26 @@
//Check to see if we can buffer the data
streamsize buffer_avail = basic_streambuf<charT,traits>::epptr() - basic_streambuf<charT,traits>::pptr();
- streamsize len = traits::length(s);
- if(len > n){
- len = n;
- }
+// streamsize len = traits::length(s);
+// if(len > n){
+// len = n;
+// }
+// streamsize len = n; //FIXME by ellimination
- if(len > buffer_avail){ //Flush buffer and write directly
+ if(n > buffer_avail){ //Flush buffer and write directly
overflow(); //Flush the buffer
- char buffer[30];
- snprintf(buffer, 29, "%%.%ds", static_cast<unsigned int>(len) );
- return fprintf(fp, buffer, s);
+// char buffer[30];
+// snprintf(buffer, 29, "%%.%ds", static_cast<unsigned int>(len) );
+// return fprintf(fp, buffer, s);
+ return fwrite(s, sizeof(charT), n, fp);
}
//Add to buffer to be written later
- traits::copy(basic_streambuf<charT,traits>::pptr(), s, len);
- basic_streambuf<charT,traits>::pbump(len);
+ traits::copy(basic_streambuf<charT,traits>::pptr(), s, n);
+ basic_streambuf<charT,traits>::pbump(n);
- return len;
+ return n;
}
FILE * fp;
More information about the uClibc-cvs
mailing list