Changeset d8a2f98
- Timestamp:
- May 4, 2026, 9:57:49 PM (5 days ago)
- Branches:
- master
- Children:
- 2f16569
- Parents:
- 9375148
- Location:
- libcfa/src/collections
- Files:
-
- 2 edited
-
string.cfa (modified) (7 diffs)
-
string.hfa (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/collections/string.cfa
r9375148 rd8a2f98 10 10 // Created On : Fri Sep 03 11:00:00 2021 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun May 3 23:21:25202613 // Update Count : 39512 // Last Modified On : Mon May 4 21:50:03 2026 13 // Update Count : 400 14 14 // 15 15 … … 57 57 } 58 58 59 void ?{}( string & s, const char * c ) {60 (s.inner) { malloc() }; 61 ?{}( *s.inner, c );62 } 63 64 void ?{}( string & s, const char * c , size_t size ) {65 (s.inner) { malloc() }; 66 ?{}( *s.inner, c , size );59 void ?{}( string & s, const char * cs ) { 60 (s.inner) { malloc() }; 61 ?{}( *s.inner, cs ); 62 } 63 64 void ?{}( string & s, const char * cs , size_t size ) { 65 (s.inner) { malloc() }; 66 ?{}( *s.inner, cs, size ); 67 67 } 68 68 … … 138 138 } 139 139 140 string & assign( string & s, const char * c , size_t n ) {141 assign( *s.inner, c , n );140 string & assign( string & s, const char * cs , size_t n ) { 141 assign( *s.inner, cs, n ); 142 142 return s; 143 143 } … … 273 273 } 274 274 275 void ?+=?( string & s, const char * c ) {276 (*s.inner) += c ;275 void ?+=?( string & s, const char * cs ) { 276 (*s.inner) += cs; 277 277 } 278 278 … … 299 299 } 300 300 301 string ?+?( const char * s, char c ) { 301 string ?+?( const char * cs, char c ) { 302 string ret = cs; 303 ret += c; 304 return ret; 305 } 306 307 string ?+?( char c, const char * cs ) { 308 string ret = c; 309 ret += cs; 310 return ret; 311 } 312 313 string ?+?( const char * cs1, const char * cs2 ) { 314 string ret = cs1; 315 ret += cs2; 316 return ret; 317 } 318 319 string ?+?( const char * cs, string s ) { 320 string ret = cs; 321 ret += s; 322 return ret; 323 } 324 325 string ?+?( string s, const char * cs ) { 302 326 string ret = s; 303 ret += c; 304 return ret; 305 } 306 307 string ?+?( char c, const char * s ) { 308 string ret = c; 309 ret += s; 310 return ret; 311 } 312 313 string ?+?( const char * s1, const char * s2 ) { 314 string ret = s1; 315 ret += s2; 316 return ret; 317 } 318 319 string ?+?( const char * s1, string s2 ) { 320 string ret = s1; 321 ret += s2; 322 return ret; 323 } 324 325 string ?+?( string s, const char * c ) { 326 string ret = s; 327 ret += c; 327 ret += cs; 328 328 return ret; 329 329 } … … 354 354 } 355 355 356 string ?*?( const char * s, strmul_factor_t factor ) {357 string ret = s;356 string ?*?( const char * cs, strmul_factor_t factor ) { 357 string ret = cs; 358 358 ret *= factor; 359 359 return ret; … … 377 377 #define STRNCPY_FMT "**** Error **** strncpy: maximum length %zu is greater than string lengths %zd or %zd." 378 378 379 int strncmp( const string & s 1, const string & s2, size_t maxlen ) {380 if ( maxlen > len( s 1) || maxlen > len( s2 ) ) {381 abort( STRNCPY_FMT, maxlen, len( s 1), len( s2 ) );379 int strncmp( const string & s, const string & s2, size_t maxlen ) { 380 if ( maxlen > len( s ) || maxlen > len( s2 ) ) { 381 abort( STRNCPY_FMT, maxlen, len( s ), len( s2 ) ); 382 382 } // if 383 return strcmp$( s 1.inner->Handle.s, maxlen, s2.inner->Handle.s, maxlen );384 } 385 386 int strncmp( const string & s 1, const char * s2, size_t maxlen ) {387 size_t s2len = len( s2);388 if ( maxlen > len( s 1 ) || maxlen > s2len ) {389 abort( STRNCPY_FMT, maxlen, len( s 1 ), s2len );383 return strcmp$( s.inner->Handle.s, maxlen, s2.inner->Handle.s, maxlen ); 384 } 385 386 int strncmp( const string & s, const char * cs, size_t maxlen ) { 387 size_t cslen = len( cs ); 388 if ( maxlen > len( s ) || maxlen > cslen ) { 389 abort( STRNCPY_FMT, maxlen, len( s ), cslen ); 390 390 } // if 391 return strcmp$( s 1.inner->Handle.s, maxlen, s2, maxlen );392 } 393 394 int strncmp( const char * s 1, const string & s2, size_t maxlen ) {395 size_t s 1len = len( s1);396 if ( maxlen > s 1len || maxlen > len( s2) ) {397 abort( STRNCPY_FMT, maxlen, s 1len, len( s2) );391 return strcmp$( s.inner->Handle.s, maxlen, cs, maxlen ); 392 } 393 394 int strncmp( const char * s, const string & cs, size_t maxlen ) { 395 size_t slen = len( s ); 396 if ( maxlen > slen || maxlen > len( cs ) ) { 397 abort( STRNCPY_FMT, maxlen, slen, len( cs ) ); 398 398 } // if 399 return strcmp$( s 1, maxlen, s2.inner->Handle.s, maxlen );399 return strcmp$( s, maxlen, cs.inner->Handle.s, maxlen ); 400 400 } 401 401 -
libcfa/src/collections/string.hfa
r9375148 rd8a2f98 10 10 // Created On : Fri Sep 03 11:00:00 2021 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun May 3 23:24:08202613 // Update Count : 3 2412 // Last Modified On : Mon May 4 21:54:23 2026 13 // Update Count : 332 14 14 // 15 15 … … 33 33 PBOOST void ?{}( string & s, string s2 ); 34 34 void ?{}( string & s, char ); 35 void ?{}( string & s, const char * c );// copy from string literal (NULL-terminated)36 void ?{}( string & s, const char * c , size_t size ); // copy specific length from buffer35 void ?{}( string & s, const char * cs ); // copy from string literal (NULL-terminated) 36 void ?{}( string & s, const char * cs, size_t size ); // copy specific length from buffer 37 37 38 38 void ?{}( string & s, signed long int rhs ); … … 45 45 46 46 PBOOST string & ?=?( string & s, string c ); 47 string & ?=?( string & s, const char * c );// copy from "literal"47 string & ?=?( string & s, const char * cs ); // copy from "literal" 48 48 string & ?=?( string & s, char c ); // copy from 'l' 49 49 string & assign( string & s, const string & c, size_t n ); 50 string & assign( string & s, const char * c , size_t n );50 string & assign( string & s, const char * cs, size_t n ); 51 51 string & ?=?( string & s, signed long int rhs ); 52 52 string & ?=?( string & s, size_t rhs ); … … 57 57 static inline string & ?=?( string & s, int rhs ) { return s = ((signed long int) rhs); } // to match cost of (char * int): int 58 58 59 static inline string & strcpy( string & s, const char * c ) { s = c; return s; } 60 static inline string & strncpy( string & s, const char * c, size_t n ) { assign( s, c, n ); return s; } 61 static inline string & strcpy( string & s, const string & c ) { s = c; return s; } 62 static inline string & strncpy( string & s, const string & c, size_t n ) { assign( s, c, n ); return s; } 59 static inline string tostr( char c ) { string s = c; return s; } 60 static inline string tostr( const char * cs ) { string s = cs; return s; } 61 static inline string tostr( signed long int v ) { string s = v; return s; } 62 static inline string tostr( size_t v ) { string s = v; return s; } 63 static inline string tostr( double v ) { string s = v; return s; } 64 static inline string tostr( long double v ) { string s = v; return s; } 65 static inline string tostr( long double _Complex v ) { string s = v; return s; } 66 67 static inline string & strcpy( string & s, const char * cs ) { s = cs; return s; } 68 static inline string & strncpy( string & s, const char * cs, size_t n ) { assign( s, cs, n ); return s; } 69 static inline string & strcpy( string & s1, const string & s2 ) { s1 = s2; return s1; } 70 static inline string & strncpy( string & s, const string & cs, size_t n ) { assign( s, cs, n ); return s; } 63 71 char * strncpy( char * dst, string & src, size_t n ); 64 72 char * ?=?( char *& dst, string & src ); … … 159 167 PBOOST void ?+=?( string & s, string ); 160 168 void append( string & s, const string & s2, size_t maxlen ); 161 void ?+=?( string & s, const char * s2);169 void ?+=?( string & s, const char * cs ); 162 170 void append( string & s, const char * buffer, size_t bsize ); 163 171 … … 165 173 string ?+?( char c, string s ); 166 174 PBOOST string ?+?( string s, string s2 ); 167 string ?+?( const char * s, char c ); // not backwards compatible168 string ?+?( char c, const char * s );169 string ?+?( const char * c , const char * s);170 string ?+?( const char * c , string s );171 string ?+?( string s, const char * c );175 string ?+?( const char * cs, char c ); // not backwards compatible 176 string ?+?( char c, const char * cs ); 177 string ?+?( const char * cs1 , const char * cs2 ); 178 string ?+?( const char * cs , string s ); 179 string ?+?( string s, const char * cs ); 172 180 string ?+?( char, char ); // not being called 8-( 173 181 174 static inline string & strcat( string & s , const string & s2 ) { s += s2; return s; }175 static inline string & strcat( string & s, const char * c ) { s += c; return s; }176 static inline string & strncat( string & s , const string & s2, size_t maxlen ) { append( s, s2, maxlen ); return s; }182 static inline string & strcat( string & s1, const string & s2 ) { s1 += s2; return s1; } 183 static inline string & strcat( string & s, const char * cs ) { s += cs; return s; } 184 static inline string & strncat( string & s1, const string & s2, size_t maxlen ) { append( s1, s2, maxlen ); return s1; } 177 185 static inline string & strncat( string & s, const char * buffer, size_t bsize ) { append( s, buffer, bsize ); return s; } 178 186 … … 187 195 string ?*?( char c, strmul_factor_t factor ); // not backwards compatible 188 196 PBOOST string ?*?( string s, strmul_factor_t factor ); 189 string ?*?( const char * s, strmul_factor_t factor );197 string ?*?( const char * cs, strmul_factor_t factor ); 190 198 static inline string ?*?( strmul_factor_t factor, char c ) { return c * factor; } 191 199 PBOOST static inline string ?*?( strmul_factor_t factor, string s ) { return s * factor; } 192 static inline string ?*?( strmul_factor_t factor, const char * s ) { returns * factor; }200 static inline string ?*?( strmul_factor_t factor, const char * cs ) { return cs * factor; } 193 201 194 202 // Character access … … 327 335 328 336 string replace( const string & s, const string & from, const string & to ); 329 static inline string replace( const char * s, const char * from, const char * to ) { return replace( (string){s }, (string){ from }, (string){ to } ); }337 static inline string replace( const char * cs, const char * from, const char * to ) { return replace( (string){ cs }, (string){ from }, (string){ to } ); } 330 338 static inline string replace( const string & s, const char * from, const char * to ) { return replace( s, (string){ from }, (string){ to } ); } 331 339 static inline string replace( const string & s, const char * from, const string & to ) { return replace( s, (string){ from }, to ); }
Note:
See TracChangeset
for help on using the changeset viewer.