Index: libcfa/src/collections/string.hfa
===================================================================
--- libcfa/src/collections/string.hfa	(revision 211def2deb11c8023a27b456a18e3b3aa6f53f7e)
+++ libcfa/src/collections/string.hfa	(revision 4dab7e8ffa69d52964660a976601bcdb615d006e)
@@ -10,6 +10,6 @@
 // Created On       : Fri Sep 03 11:00:00 2021
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Feb  6 20:59:18 2024
-// Update Count     : 118
+// Last Modified On : Mon Aug  5 23:06:14 2024
+// Update Count     : 128
 //
 
@@ -28,16 +28,16 @@
 
 // Getters
-size_t size(const string & s);
-static inline size_t strlen(const string & s) { return size( s ); }
+size_t size( const string & s );
+static inline size_t strlen( const string & s ) { return size( s ); }
 
 // RAII, assignment
-void ?{}(string & s); // empty string
-void ?{}(string & s, const string & s2);
-void ?{}(string & s, const string & s2, size_t maxlen);
-void ?{}(string & s, string & s2);
-
-void ?{}(string & s, char);
-void ?{}(string & s, const char * c); // copy from string literal (NULL-terminated)
-void ?{}(string & s, const char * c, size_t size); // copy specific length from buffer
+void ?{}( string & s ); // empty string
+void ?{}( string & s, const string & s2 );
+void ?{}( string & s, const string & s2, size_t maxlen );
+void ?{}( string & s, string & s2 );
+
+void ?{}( string & s, char );
+void ?{}( string & s, const char * c );					// copy from string literal (NULL-terminated)
+void ?{}( string & s, const char * c, size_t size );	// copy specific length from buffer
 
 void ?{}( string & s, ssize_t rhs );
@@ -48,15 +48,22 @@
 void ?{}( string & s, long double _Complex rhs );
 
-string & ?=?(string & s, const string & c);
-string & ?=?(string & s, string & c);
-string & ?=?(string & s, const char * c); // copy from "literal"
-string & ?=?(string & s, char c);  // copy from 'l'
-string & assign(string & s, const string & c, size_t n);
-string & assign(string & s, const char * c, size_t n);
-
-static inline string & strcpy(string & s, const char * c) { s = c; return s; }
-static inline string & strncpy(string & s, const char * c, size_t n) { assign( s, c, n); return s; }
-static inline string & strcpy(string & s, const string & c) { s = c; return s; }
-static inline string & strncpy(string & s, const string & c, size_t n) { assign(s, c, n); return s; }
+string str( ssize_t rhs );
+string str( size_t rhs );
+string str( double rhs );
+string str( long double rhs );
+string str( double _Complex rhs );
+string str( long double _Complex rhs );
+
+string & ?=?( string & s, const string & c );
+string & ?=?( string & s, string & c );
+string & ?=?( string & s, const char * c );				// copy from "literal"
+string & ?=?( string & s, char c );						// copy from 'l'
+string & assign( string & s, const string & c, size_t n );
+string & assign( string & s, const char * c, size_t n );
+
+static inline string & strcpy( string & s, const char * c ) { s = c; return s; }
+static inline string & strncpy( string & s, const char * c, size_t n ) { assign( s, c, n ); return s; }
+static inline string & strcpy( string & s, const string & c ) { s = c; return s; }
+static inline string & strncpy( string & s, const string & c, size_t n ) { assign( s, c, n ); return s; }
 
 string & ?=?( string & s, ssize_t rhs );
@@ -67,5 +74,5 @@
 string & ?=?( string & s, long double _Complex rhs );
 
-void ^?{}(string & s);
+void ^?{}( string & s );
 
 // Alternate construction: request shared edits
@@ -77,7 +84,7 @@
 
 // IO Operator
-ofstream & ?|?(ofstream & out, const string & s);
-void ?|?(ofstream & out, const string & s);
-ifstream & ?|?(ifstream & in, string & s);
+ofstream & ?|?( ofstream & out, const string & s );
+void ?|?( ofstream & out, const string & s );
+ifstream & ?|?( ifstream & in, string & s );
 
 static inline {
@@ -145,91 +152,95 @@
 
 // Concatenation
-void ?+=?(string & s, char c); // append a character
-void ?+=?(string & s, const string & s2); // append-concatenate to first string
-void append(string & s, const string & s2, size_t maxlen);  // append-concatenate to first string, up to maxlen
-void ?+=?(string & s, const char * s2); // append-concatenate NULL-terminated string to first string
-void append(string & s, const char * buffer, size_t bsize);  // append-concatenate given range to first string
-
-string ?+?(const string & s, char c); // add a character to a copy of the string
-string ?+?(const string & s, const string & s2); // copy and concatenate both strings
-string ?+?(const char * s1, const char * s2); // copy and concatenate both strings
-string ?+?(const string & s, const char * c); // copy and concatenate with NULL-terminated string
-
-static inline string & strcat(string & s, const string & s2) { s += s2; return s; }
-static inline string & strcat(string & s, const char * c) { s += c; return s; }
-static inline string & strncat(string & s, const string & s2, size_t maxlen) { append(s, s2, maxlen); return s; }
-static inline string & strncat(string & s, const char * buffer, size_t bsize) { append(s, buffer, bsize); return s; }
+void ?+=?( string & s, char c );						// append a character
+void ?+=?( string & s, const string & s2 );				// append-concatenate to first string
+void append( string & s, const string & s2, size_t maxlen );  // append-concatenate to first string, up to maxlen
+void ?+=?( string & s, const char * s2 );				// append-concatenate NULL-terminated string to first string
+void append( string & s, const char * buffer, size_t bsize ); // append-concatenate given range to first string
+
+string ?+?( const string & s, char c );					// add a character to a copy of the string
+string ?+?( char c, const string & s );					// add a character to a copy of the string
+string ?+?( const string & s, const string & s2 );		// copy and concatenate both strings
+string ?+?( const char * s, char c );					// copy and concatenate both strings
+string ?+?( char c, const char * s );					// copy and concatenate both strings
+string ?+?( const char * s1, const char * s2 );			// copy and concatenate both strings
+string ?+?( const char * s1, string & s2 );				// copy and concatenate both strings
+string ?+?( const string & s, const char * c );			// copy and concatenate with NULL-terminated string
+
+static inline string & strcat( string & s, const string & s2 ) { s += s2; return s; }
+static inline string & strcat( string & s, const char * c ) { s += c; return s; }
+static inline string & strncat( string & s, const string & s2, size_t maxlen ) { append( s, s2, maxlen ); return s; }
+static inline string & strncat( string & s, const char * buffer, size_t bsize ) { append( s, buffer, bsize ); return s; }
 
 // Repetition
-string ?*?(const string & s, size_t factor);
-void ?*=?(string & s, size_t factor);
-string ?*?(char c, size_t factor);
-string ?*?(const char *s, size_t factor);
+string ?*?( const string & s, size_t factor );
+void ?*=?( string & s, size_t factor );
+string ?*?( char c, size_t factor );
+string ?*?( const char *s, size_t factor );
 
 // Character access
-char ?[?](const string & s, size_t index);
-string ?[?](string & s, size_t index);  // mutable length-1 slice of original
-//char codePointAt(const string & s, size_t index);  // to revisit under Unicode
+char ?[?]( const string & s, size_t index );
+string ?[?]( string & s, size_t index );				// mutable length-1 slice of original
+//char codePointAt(const string & s, size_t index );		// to revisit under Unicode
 
 // Comparisons
-int  strcmp (const string &, const string &);
-bool ?==?(const string &, const string &);
-bool ?!=?(const string &, const string &);
-bool ?>? (const string &, const string &);
-bool ?>=?(const string &, const string &);
-bool ?<=?(const string &, const string &);
-bool ?<? (const string &, const string &);
-
-int  strcmp (const string &, const char *);
-bool ?==?(const string &, const char *);
-bool ?!=?(const string &, const char *);
-bool ?>? (const string &, const char *);
-bool ?>=?(const string &, const char *);
-bool ?<=?(const string &, const char *);
-bool ?<? (const string &, const char *);
-
-int  strcmp (const char *, const string &);
-bool ?==?(const char *, const string &);
-bool ?!=?(const char *, const string &);
-bool ?>? (const char *, const string &);
-bool ?>=?(const char *, const string &);
-bool ?<=?(const char *, const string &);
-bool ?<? (const char *, const string &);
+int strcmp ( const string &, const string &);
+bool ?==?( const string &, const string &);
+bool ?!=?( const string &, const string &);
+bool ?>? ( const string &, const string &);
+bool ?>=?( const string &, const string &);
+bool ?<=?( const string &, const string &);
+bool ?<? ( const string &, const string &);
+
+int strcmp( const string &, const char *);
+bool ?==?( const string &, const char *);
+bool ?!=?( const string &, const char *);
+bool ?>? ( const string &, const char *);
+bool ?>=?( const string &, const char *);
+bool ?<=?( const string &, const char *);
+bool ?<? ( const string &, const char *);
+
+int strcmp( const char *, const string &);
+bool ?==?( const char *, const string &);
+bool ?!=?( const char *, const string &);
+bool ?>? ( const char *, const string &);
+bool ?>=?( const char *, const string &);
+bool ?<=?( const char *, const string &);
+bool ?<? ( const char *, const string &);
 
 
 // Slicing
-string ?()( string & s, size_t start, size_t len );  // TODO const?
-string ?()( string & s, size_t start);
+string ?()( string & s, size_t start, size_t len );		// TODO const?
+string ?()( string & s, size_t start );
 
 // String search
-bool contains(const string & s, char ch); // single character
-
-int find(const string & s, char search);
-int find(const string & s, const string & search);
-int find(const string & s, const char * search);
-int find(const string & s, const char * search, size_t searchsize);
-
-int findFrom(const string & s, size_t fromPos, char search);
-int findFrom(const string & s, size_t fromPos, const string & search);
-int findFrom(const string & s, size_t fromPos, const char * search);
-int findFrom(const string & s, size_t fromPos, const char * search, size_t searchsize);
-
-bool includes(const string & s, const string & search);
-bool includes(const string & s, const char * search);
-bool includes(const string & s, const char * search, size_t searchsize);
-
-bool startsWith(const string & s, const string & prefix);
-bool startsWith(const string & s, const char * prefix);
-bool startsWith(const string & s, const char * prefix, size_t prefixsize);
-
-bool endsWith(const string & s, const string & suffix);
-bool endsWith(const string & s, const char * suffix);
-bool endsWith(const string & s, const char * suffix, size_t suffixsize);
+bool contains( const string & s, char ch );				// single character
+
+int find( const string & s, char search );
+int find( const string & s, const string & search );
+int find( const string & s, const char * search );
+int find( const string & s, const char * search, size_t searchsize );
+
+int findFrom( const string & s, size_t fromPos, char search );
+int findFrom( const string & s, size_t fromPos, const string & search );
+int findFrom( const string & s, size_t fromPos, const char * search );
+int findFrom( const string & s, size_t fromPos, const char * search, size_t searchsize );
+
+bool includes( const string & s, const string & search );
+bool includes( const string & s, const char * search );
+bool includes( const string & s, const char * search, size_t searchsize );
+
+bool startsWith( const string & s, const string & prefix );
+bool startsWith( const string & s, const char * prefix );
+bool startsWith( const string & s, const char * prefix, size_t prefixsize );
+
+bool endsWith( const string & s, const string & suffix );
+bool endsWith( const string & s, const char * suffix );
+bool endsWith( const string & s, const char * suffix, size_t suffixsize );
 
 // Modifiers
-void padStart(string & s, size_t n);
-void padStart(string & s, size_t n, char padding);
-void padEnd(string & s, size_t n);
-void padEnd(string & s, size_t n, char padding);
+void padStart( string & s, size_t n );
+void padStart( string & s, size_t n, char padding );
+void padEnd( string & s, size_t n );
+void padEnd( string & s, size_t n, char padding );
 
 
@@ -239,19 +250,19 @@
 
 void ?{}( charclass & ) = void;
-void ?{}( charclass &, charclass) = void;
-charclass ?=?( charclass &, charclass) = void;
-
-void ?{}( charclass &, const string & chars);
+void ?{}( charclass &, charclass ) = void;
+charclass ?=?( charclass &, charclass ) = void;
+
+void ?{}( charclass &, const string & chars );
 void ?{}( charclass &, const char * chars );
 void ?{}( charclass &, const char * chars, size_t charssize );
 void ^?{}( charclass & );
 
-int include(const string & s, const charclass & mask);
-
-int exclude(const string & s, const charclass & mask);
+int include( const string & s, const charclass & mask );
+
+int exclude( const string & s, const charclass & mask );
 
 /*
 What to do with?
-StrRet include(string & s, const charclass & mask);
-StrRet exclude(string & s, const charclass & mask);
+StrRet include( string & s, const charclass & mask );
+StrRet exclude( string & s, const charclass & mask );
 */
