svn commit: trunk/uClibc++/include

gkajmowi at uclibc.org gkajmowi at uclibc.org
Sun Jul 23 01:04:04 UTC 2006


Author: gkajmowi
Date: 2006-07-22 18:04:04 -0700 (Sat, 22 Jul 2006)
New Revision: 15741

Log:
Make sure to set failbit in the event that we don't open the file requested.



Modified:
   trunk/uClibc++/include/fstream


Changeset:
Modified: trunk/uClibc++/include/fstream
===================================================================
--- trunk/uClibc++/include/fstream	2006-07-23 01:03:36 UTC (rev 15740)
+++ trunk/uClibc++/include/fstream	2006-07-23 01:04:04 UTC (rev 15741)
@@ -545,7 +545,9 @@
 			return sb.is_open();
 		}
 		_UCXXEXPORT void open(const char* s, ios_base::openmode mode = ios_base::in){
-			sb.open(s, mode);
+			if(sb.open(s, mode) == 0){
+				basic_ios<charT,traits>::setstate(ios_base::failbit);
+			}
 		}
 		_UCXXEXPORT void close(){
 			sb.close();
@@ -586,7 +588,9 @@
 			return sb.is_open();
 		}
 		_UCXXEXPORT void open(const char* s, ios_base::openmode mode = ios_base::out | ios_base::trunc){
-			sb.open(s, mode);
+			if(sb.open(s, mode) == 0){
+				basic_ios<charT,traits>::setstate(ios_base::failbit);
+			}
 		}
 		_UCXXEXPORT void close(){
 			sb.close();
@@ -614,7 +618,9 @@
 		explicit _UCXXEXPORT basic_fstream(const char* s, ios_base::openmode mode = ios_base::in|ios_base::out):
 			basic_ios<charT, traits>(&sb), basic_iostream<charT,traits>(&sb)
 		{
-			sb.open(s, mode);
+			if(sb.open(s, mode) == 0){
+				basic_ios<charT,traits>::setstate(ios_base::failbit);
+			}
 		}
 
 		_UCXXEXPORT basic_filebuf<charT,traits>* rdbuf() const{
@@ -624,7 +630,9 @@
 			return sb.is_open();
 		}
 		_UCXXEXPORT void open(const char* s, ios_base::openmode mode = ios_base::in|ios_base::out){
-			sb.open(s, mode);
+			if(sb.open(s, mode) == 0){
+				basic_ios<charT,traits>::setstate(ios_base::failbit);
+			}
 		}
 		_UCXXEXPORT void close(){
 			sb.close();




More information about the uClibc-cvs mailing list