Index: libcfa/src/collections/string_res.cfa
===================================================================
--- libcfa/src/collections/string_res.cfa	(revision 5ad6f0dc3913127d2aabec730c609382d8049811)
+++ libcfa/src/collections/string_res.cfa	(revision 3c1e432e03fc7000fa2ea67c625568252cf4272c)
@@ -10,6 +10,6 @@
 // Created On       : Fri Sep 03 11:00:00 2021
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Apr 11 18:18:42 2025
-// Update Count     : 129
+// Last Modified On : Mon Apr 14 20:45:39 2025
+// Update Count     : 130
 //
 
@@ -269,5 +269,5 @@
 	if ( ! flags.ignore && s != 0p && args == 0 ) s[0] = '\0';
 	if ( args == 1 && eof( is ) ) {						// data but scan ended at EOF
-		clear( is );									// => reset EOF => detect again on next read
+		clearerr( is );									// => reset EOF => detect again on next read
 	} // if
 	return is;
Index: libcfa/src/fstream.cfa
===================================================================
--- libcfa/src/fstream.cfa	(revision 5ad6f0dc3913127d2aabec730c609382d8049811)
+++ libcfa/src/fstream.cfa	(revision 3c1e432e03fc7000fa2ea67c625568252cf4272c)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Oct  1 20:59:45 2024
-// Update Count     : 582
+// Last Modified On : Mon Apr 14 20:41:51 2025
+// Update Count     : 583
 //
 
@@ -109,5 +109,5 @@
 
 bool fail( ofstream & os ) { return os.file$ == 0 || ferror( (FILE *)(os.file$) ); }
-void clear( ofstream & os ) { clearerr( (FILE *)(os.file$) ); }
+void clearerr( ofstream & os ) { clearerr( (FILE *)(os.file$) ); }
 int flush( ofstream & os ) { return fflush( (FILE *)(os.file$) ); }
 
@@ -225,5 +225,5 @@
 
 bool fail( ifstream & is ) { return is.file$ == 0p || ferror( (FILE *)(is.file$) ); }
-void clear( ifstream & is ) { clearerr( (FILE *)(is.file$) ); }
+void clearerr( ifstream & is ) { clearerr( (FILE *)(is.file$) ); }
 
 void nlOn( ifstream & os ) { os.nlOnOff$ = true; }
Index: libcfa/src/fstream.hfa
===================================================================
--- libcfa/src/fstream.hfa	(revision 5ad6f0dc3913127d2aabec730c609382d8049811)
+++ libcfa/src/fstream.hfa	(revision 3c1e432e03fc7000fa2ea67c625568252cf4272c)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Jul 12 05:45:50 2024
-// Update Count     : 275
+// Last Modified On : Mon Apr 14 20:42:01 2025
+// Update Count     : 276
 //
 
@@ -74,5 +74,5 @@
 
 bool fail( ofstream & );
-void clear( ofstream & );
+void clearerr( ofstream & );
 int flush( ofstream & );
 void open( ofstream &, const char name[], const char mode[] ); // FIX ME: use default = "w"
@@ -122,5 +122,5 @@
 
 bool fail( ifstream & is );
-void clear( ifstream & );
+void clearerr( ifstream & );
 void open( ifstream & is, const char name[], const char mode[] ); // FIX ME: use default = "r"
 void open( ifstream & is, const char name[] );
Index: libcfa/src/iostream.cfa
===================================================================
--- libcfa/src/iostream.cfa	(revision 5ad6f0dc3913127d2aabec730c609382d8049811)
+++ libcfa/src/iostream.cfa	(revision 3c1e432e03fc7000fa2ea67c625568252cf4272c)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Apr 11 18:19:09 2025
-// Update Count     : 2080
+// Last Modified On : Mon Apr 14 20:43:14 2025
+// Update Count     : 2081
 //
 
@@ -1026,5 +1026,5 @@
 		if ( ! flags.ignore && s != 0p && args == 0 ) s[0] = '\0';
 		if ( args == 1 && eof( is ) ) {					// data but scan ended at EOF
-			clear( is );								// => reset EOF => detect again on next read
+			clearerr( is );								// => reset EOF => detect again on next read
 		} // if
 		return is;
@@ -1131,5 +1131,5 @@
 		} // if
 		if ( args == 1 && eof( is ) ) {					// data but scan ended at EOF
-			clear( is );								// => reset EOF => detect again on next read
+			clearerr( is );								// => reset EOF => detect again on next read
 		} // if
 		return is;
@@ -1226,5 +1226,5 @@
 	  if ( eof( is ) ) {
 			if ( c == 0 ) return is;					// no characters read ?
-			clear( is );								// => read something => reset EOF => detect again on next read
+			clearerr( is );								// => read something => reset EOF => detect again on next read
 			break;
 		} // if
Index: libcfa/src/iostream.hfa
===================================================================
--- libcfa/src/iostream.hfa	(revision 5ad6f0dc3913127d2aabec730c609382d8049811)
+++ libcfa/src/iostream.hfa	(revision 3c1e432e03fc7000fa2ea67c625568252cf4272c)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Apr 11 18:11:25 2025
-// Update Count     : 766
+// Last Modified On : Mon Apr 14 20:42:53 2025
+// Update Count     : 767
 //
 
@@ -55,5 +55,5 @@
 trait ostream {
 	bool fail( ostype & );								// operation failed?
-	void clear( ostype & );
+	void clearerr( ostype & );
 	int flush( ostype & );
 	void open( ostype &, const char name[], const char mode[] );
@@ -318,5 +318,5 @@
 	istype & ungetc( char, istype & );
 	bool eof( istype & );
-	void clear( istype & );
+	void clearerr( istype & );
 }; // basic_istream
 
Index: libcfa/src/strstream.cfa
===================================================================
--- libcfa/src/strstream.cfa	(revision 5ad6f0dc3913127d2aabec730c609382d8049811)
+++ libcfa/src/strstream.cfa	(revision 3c1e432e03fc7000fa2ea67c625568252cf4272c)
@@ -10,6 +10,6 @@
 // Created On       : Thu Apr 22 22:24:35 2021
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Jul 12 05:45:47 2024
-// Update Count     : 113
+// Last Modified On : Mon Apr 14 20:45:00 2025
+// Update Count     : 116
 //
 
@@ -145,7 +145,4 @@
 void nlOff( istrstream & is ) { is.nlOnOff$ = false; }
 
-void ends( istrstream & is ) {}
-bool eof( istrstream & is ) { return false; }
-
 int fmt( istrstream & is, const char format[], ... ) with(is) {
 	va_list args;
@@ -173,4 +170,8 @@
 } // ungetc
 
+bool eof( istrstream & is ) { return false; }
+void clearerr( istrstream & ) {}						// no error flags to clear
+void ends( istrstream & is ) {}
+
 // Local Variables: //
 // tab-width: 4 //
Index: libcfa/src/strstream.hfa
===================================================================
--- libcfa/src/strstream.hfa	(revision 5ad6f0dc3913127d2aabec730c609382d8049811)
+++ libcfa/src/strstream.hfa	(revision 3c1e432e03fc7000fa2ea67c625568252cf4272c)
@@ -10,6 +10,6 @@
 // Created On       : Thu Apr 22 22:20:59 2021
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Jul 12 05:45:48 2024
-// Update Count     : 56
+// Last Modified On : Mon Apr 14 20:57:15 2025
+// Update Count     : 61
 // 
 
@@ -78,4 +78,7 @@
 
 
+// Currently, this is a placeholder because vsscanf returns number of values read versus buffer position scanned.
+// This issue makes it impossible to know where in the buffer the last read stopped.
+
 struct istrstream {
 	char * buf$;
@@ -83,4 +86,6 @@
 	bool nlOnOff$;
 }; // istrstream
+
+void ?{}( istrstream &, char buf[] );
 
 // Satisfies basic_istream
@@ -93,11 +98,9 @@
 void nlOn( istrstream & );
 void nlOff( istrstream & );
-void ends( istrstream & );
-
 int fmt( istrstream &, const char format[], ... ) __attribute__(( format(scanf, 2, 3) ));
 istrstream & ungetc( char, istrstream & );
 bool eof( istrstream & );
-
-void ?{}( istrstream &, char buf[] );
+void clearerr( istrstream & );
+void ends( istrstream & );
 
 // Local Variables: //
