Index: libcfa/src/collections/string.cfa
===================================================================
--- libcfa/src/collections/string.cfa	(revision 244335bac9fe48993091c4a55d03642bd67e9a62)
+++ libcfa/src/collections/string.cfa	(revision d8a2f988fbdaa37173653d0e459271591e6afdd0)
@@ -10,6 +10,6 @@
 // Created On       : Fri Sep 03 11:00:00 2021
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sun May  3 23:21:25 2026
-// Update Count     : 395
+// Last Modified On : Mon May  4 21:50:03 2026
+// Update Count     : 400
 //
 
@@ -57,12 +57,12 @@
 }
 
-void ?{}( string & s, const char * c ) {
-	(s.inner) { malloc() };
-	?{}( *s.inner, c );
-}
-
-void ?{}( string & s, const char * c, size_t size ) {
-	(s.inner) { malloc() };
-	?{}( *s.inner, c, size );
+void ?{}( string & s, const char * cs ) {
+	(s.inner) { malloc() };
+	?{}( *s.inner, cs );
+}
+
+void ?{}( string & s, const char * cs , size_t size ) {
+	(s.inner) { malloc() };
+	?{}( *s.inner, cs, size );
 }
 
@@ -138,6 +138,6 @@
 }
 
-string & assign( string & s, const char * c, size_t n ) {
-	assign( *s.inner, c, n );
+string & assign( string & s, const char * cs , size_t n ) {
+	assign( *s.inner, cs, n );
 	return s;
 }
@@ -273,6 +273,6 @@
 }
 
-void ?+=?( string & s, const char * c ) {
-	(*s.inner) += c;
+void ?+=?( string & s, const char * cs ) {
+	(*s.inner) += cs;
 }
 
@@ -299,31 +299,31 @@
 }
 
-string ?+?( const char * s,  char c ) {
+string ?+?( const char * cs,  char c ) {
+	string ret = cs;
+	ret += c;
+	return ret;
+}
+
+string ?+?( char c, const char * cs ) {
+	string ret = c;
+	ret += cs;
+	return ret;
+}
+
+string ?+?( const char * cs1, const char * cs2 ) {
+	string ret = cs1;
+	ret += cs2;
+	return ret;
+}
+
+string ?+?( const char * cs, string s ) {
+	string ret = cs;
+	ret += s;
+	return ret;
+}
+
+string ?+?( string s, const char * cs ) {
 	string ret = s;
-	ret += c;
-	return ret;
-}
-
-string ?+?( char c, const char * s ) {
-	string ret = c;
-	ret += s;
-	return ret;
-}
-
-string ?+?( const char * s1, const char * s2 ) {
-	string ret = s1;
-	ret += s2;
-	return ret;
-}
-
-string ?+?( const char * s1, string s2 ) {
-	string ret = s1;
-	ret += s2;
-	return ret;
-}
-
-string ?+?( string s, const char * c ) {
-	string ret = s;
-	ret += c;
+	ret += cs;
 	return ret;
 }
@@ -354,6 +354,6 @@
 }
 
-string ?*?( const char * s, strmul_factor_t factor ) {
-	string ret = s;
+string ?*?( const char * cs, strmul_factor_t factor ) {
+	string ret = cs;
 	ret *= factor;
 	return ret;
@@ -377,25 +377,25 @@
 #define STRNCPY_FMT "**** Error **** strncpy: maximum length %zu is greater than string lengths %zd or %zd."
 
-int strncmp( const string & s1, const string & s2, size_t maxlen ) {
-	if ( maxlen > len( s1 ) || maxlen > len( s2 ) ) {
-		abort( STRNCPY_FMT, maxlen, len( s1 ), len( s2 ) );
+int strncmp( const string & s, const string & s2, size_t maxlen ) {
+	if ( maxlen > len( s ) || maxlen > len( s2 ) ) {
+		abort( STRNCPY_FMT, maxlen, len( s ), len( s2 ) );
 	} // if
-	return strcmp$( s1.inner->Handle.s, maxlen, s2.inner->Handle.s, maxlen );
-}
-
-int strncmp( const string & s1, const char * s2, size_t maxlen ) {
-	size_t s2len = len( s2 );
-	if ( maxlen > len( s1 ) || maxlen > s2len ) {
-		abort( STRNCPY_FMT, maxlen, len( s1 ), s2len );
+	return strcmp$( s.inner->Handle.s, maxlen, s2.inner->Handle.s, maxlen );
+}
+
+int strncmp( const string & s, const char * cs, size_t maxlen ) {
+	size_t cslen = len( cs );
+	if ( maxlen > len( s ) || maxlen > cslen ) {
+		abort( STRNCPY_FMT, maxlen, len( s ), cslen );
 	} // if
-	return strcmp$( s1.inner->Handle.s, maxlen, s2, maxlen );
-}
-
-int strncmp( const char * s1, const string & s2, size_t maxlen ) {
-	size_t s1len = len( s1 );
-	if ( maxlen > s1len || maxlen > len( s2 ) ) {
-		abort( STRNCPY_FMT, maxlen, s1len, len( s2 ) );
+	return strcmp$( s.inner->Handle.s, maxlen, cs, maxlen );
+}
+
+int strncmp( const char * s, const string & cs, size_t maxlen ) {
+	size_t slen = len( s );
+	if ( maxlen > slen || maxlen > len( cs ) ) {
+		abort( STRNCPY_FMT, maxlen, slen, len( cs ) );
 	} // if
-	return strcmp$( s1, maxlen, s2.inner->Handle.s, maxlen );
+	return strcmp$( s, maxlen, cs.inner->Handle.s, maxlen );
 }
 
Index: libcfa/src/collections/string.hfa
===================================================================
--- libcfa/src/collections/string.hfa	(revision 244335bac9fe48993091c4a55d03642bd67e9a62)
+++ libcfa/src/collections/string.hfa	(revision d8a2f988fbdaa37173653d0e459271591e6afdd0)
@@ -10,6 +10,6 @@
 // Created On       : Fri Sep 03 11:00:00 2021
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sun May  3 23:24:08 2026
-// Update Count     : 324
+// Last Modified On : Mon May  4 21:54:23 2026
+// Update Count     : 332
 //
 
@@ -33,6 +33,6 @@
 PBOOST 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, const char * cs );				// copy from string literal (NULL-terminated)
+void ?{}( string & s, const char * cs, size_t size );	// copy specific length from buffer
 
 void ?{}( string & s, signed long int rhs );
@@ -45,8 +45,8 @@
 
 PBOOST string & ?=?( string & s, string c );
-string & ?=?( string & s, const char * c );				// copy from "literal"
+string & ?=?( string & s, const char * cs );			// 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 );
+string & assign( string & s, const char * cs, size_t n );
 string & ?=?( string & s, signed long int rhs );
 string & ?=?( string & s, size_t rhs );
@@ -57,8 +57,16 @@
 static inline string & ?=?( string & s, int rhs ) { return s = ((signed long int) rhs); } // to match cost of (char * int): int
 
-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; }
+static inline string tostr( char c ) { string s = c; return s; }
+static inline string tostr( const char * cs ) { string s = cs; return s; }
+static inline string tostr( signed long int v ) { string s = v; return s; }
+static inline string tostr( size_t v ) { string s = v; return s; }
+static inline string tostr( double v ) { string s = v; return s; }
+static inline string tostr( long double v ) { string s = v; return s; }
+static inline string tostr( long double _Complex v ) { string s = v; return s; }
+
+static inline string & strcpy( string & s, const char * cs ) { s = cs; return s; }
+static inline string & strncpy( string & s, const char * cs, size_t n ) { assign( s, cs, n ); return s; }
+static inline string & strcpy( string & s1, const string & s2 ) { s1 = s2; return s1; }
+static inline string & strncpy( string & s, const string & cs, size_t n ) { assign( s, cs, n ); return s; }
 char * strncpy( char * dst, string & src, size_t n );
 char * ?=?( char *& dst, string & src );
@@ -159,5 +167,5 @@
 PBOOST void ?+=?( string & s, string );
 void append( string & s, const string & s2, size_t maxlen );
-void ?+=?( string & s, const char * s2 );
+void ?+=?( string & s, const char * cs );
 void append( string & s, const char * buffer, size_t bsize );
 
@@ -165,14 +173,14 @@
 string ?+?( char c, string s );
 PBOOST string ?+?( string s, string s2 );
-string ?+?( const char * s, char c );					// not backwards compatible
-string ?+?( char c, const char * s );
-string ?+?( const char * c, const char * s );
-string ?+?( const char * c, string s );
-string ?+?( string s, const char * c );
+string ?+?( const char * cs, char c );					// not backwards compatible
+string ?+?( char c, const char * cs );
+string ?+?( const char * cs1 , const char * cs2 );
+string ?+?( const char * cs , string s );
+string ?+?( string s, const char * cs  );
 string ?+?( char, char );								// not being called 8-(
 
-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 & strcat( string & s1, const string & s2 ) { s1 += s2; return s1; }
+static inline string & strcat( string & s, const char * cs  ) { s += cs; return s; }
+static inline string & strncat( string & s1, const string & s2, size_t maxlen ) { append( s1, s2, maxlen ); return s1; }
 static inline string & strncat( string & s, const char * buffer, size_t bsize ) { append( s, buffer, bsize ); return s; }
 
@@ -187,8 +195,8 @@
 string ?*?( char c, strmul_factor_t factor );					// not backwards compatible
 PBOOST string ?*?( string s, strmul_factor_t factor );
-string ?*?( const char * s, strmul_factor_t factor );
+string ?*?( const char * cs, strmul_factor_t factor );
 static inline string ?*?( strmul_factor_t factor, char c ) { return c * factor; }
 PBOOST static inline string ?*?( strmul_factor_t factor, string s ) { return s * factor; }
-static inline string ?*?( strmul_factor_t factor, const char * s ) { return s * factor; }
+static inline string ?*?( strmul_factor_t factor, const char * cs ) { return cs * factor; }
 
 // Character access
@@ -327,5 +335,5 @@
 
 string replace( const string & s, const string & from, const string & to );
-static inline string replace( const char * s, const char * from, const char * to ) { return replace( (string){ s }, (string){ from }, (string){ to } ); }
+static inline string replace( const char * cs, const char * from, const char * to ) { return replace( (string){ cs }, (string){ from }, (string){ to } ); }
 static inline string replace( const string & s, const char * from, const char * to ) { return replace( s, (string){ from }, (string){ to } ); }
 static inline string replace( const string & s, const char * from, const string & to ) { return replace( s, (string){ from }, to ); }
