Changeset 5ad6f0d for libcfa/src/collections/string.cfa
- Timestamp:
- Apr 13, 2025, 9:15:33 PM (9 months ago)
- Branches:
- master
- Children:
- b0296dba
- Parents:
- a514fed
- File:
-
- 1 edited
-
libcfa/src/collections/string.cfa (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/collections/string.cfa
ra514fed r5ad6f0d 10 10 // Created On : Fri Sep 03 11:00:00 2021 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Apr 11 18:18:07202513 // Update Count : 3 7012 // Last Modified On : Sun Apr 13 07:58:55 2025 13 // Update Count : 390 14 14 // 15 15 … … 202 202 return s; 203 203 } 204 205 //////////////////////////////////////////////////////// 206 // Getter 207 208 size_t strnlen( const string & s, size_t maxlen ) { return min( len( s ), maxlen ); } 204 209 205 210 //////////////////////////////////////////////////////// … … 265 270 266 271 //////////////////////////////////////////////////////// 267 // Comparison268 269 int strcmp( const string & s1, const string & s2 ) { return strcmp( *s1.inner, *s2.inner ); }270 bool ?==?( const string & s1, const string & s2 ) { return *s1.inner == *s2.inner; }271 bool ?!=?( const string & s1, const string & s2 ) { return *s1.inner != *s2.inner; }272 bool ?>? ( const string & s1, const string & s2 ) { return *s1.inner > *s2.inner; }273 bool ?>=?( const string & s1, const string & s2 ) { return *s1.inner >= *s2.inner; }274 bool ?<=?( const string & s1, const string & s2 ) { return *s1.inner <= *s2.inner; }275 bool ?<? ( const string & s1, const string & s2 ) { return *s1.inner < *s2.inner; }276 277 int strcmp( const string & s1, const char * s2 ) { return strcmp( *s1.inner, s2 ); }278 bool ?==?( const string & s1, const char * s2 ) { return *s1.inner == s2; }279 bool ?!=?( const string & s1, const char * s2 ) { return *s1.inner != s2; }280 bool ?>? ( const string & s1, const char * s2 ) { return *s1.inner > s2; }281 bool ?>=?( const string & s1, const char * s2 ) { return *s1.inner >= s2; }282 bool ?<=?( const string & s1, const char * s2 ) { return *s1.inner <= s2; }283 bool ?<? ( const string & s1, const char * s2 ) { return *s1.inner < s2; }284 285 int strcmp( const char * s1, const string & s2 ) { return strcmp( s1, *s2.inner ); }286 bool ?==?( const char * s1, const string & s2 ) { return s1 == *s2.inner; }287 bool ?!=?( const char * s1, const string & s2 ) { return s1 != *s2.inner; }288 bool ?>? ( const char * s1, const string & s2 ) { return s1 > *s2.inner; }289 bool ?>=?( const char * s1, const string & s2 ) { return s1 >= *s2.inner; }290 bool ?<=?( const char * s1, const string & s2 ) { return s1 <= *s2.inner; }291 bool ?<? ( const char * s1, const string & s2 ) { return s1 < *s2.inner; }292 293 ////////////////////////////////////////////////////////294 272 // Concatenation 295 273 … … 403 381 string ret = { *s.inner, index, 1 }; 404 382 return ret`share; 383 } 384 385 //////////////////////////////////////////////////////// 386 // Comparison 387 388 #define STRNCPY_FMT "**** Error **** strncpy: maximum length %zu is greater than string lengths %zd or %zd." 389 390 int strncmp( const string & s1, const string & s2, size_t maxlen ) { 391 if ( maxlen > len( s1 ) || maxlen > len( s2 ) ) { 392 abort( STRNCPY_FMT, maxlen, len( s1 ), len( s2 ) ); 393 } // if 394 return strcmp$( s1.inner->Handle.s, maxlen, s2.inner->Handle.s, maxlen ); 395 } 396 397 int strncmp( const string & s1, const char * s2, size_t maxlen ) { 398 size_t s2len = len( s2 ); 399 if ( maxlen > len( s1 ) || maxlen > s2len ) { 400 abort( STRNCPY_FMT, maxlen, len( s1 ), s2len ); 401 } // if 402 return strcmp$( s1.inner->Handle.s, maxlen, s2, maxlen ); 403 } 404 405 int strncmp( const char * s1, const string & s2, size_t maxlen ) { 406 size_t s1len = len( s1 ); 407 if ( maxlen > s1len || maxlen > len( s2 ) ) { 408 abort( STRNCPY_FMT, maxlen, s1len, len( s2 ) ); 409 } // if 410 return strcmp$( s1, maxlen, s2.inner->Handle.s, maxlen ); 405 411 } 406 412 … … 523 529 } 524 530 525 size_t test( const string & s, int (*f)( int ) ) {531 size_t include( const string & s, int (*f)( int ) ) { 526 532 size_t l = len( s ); 527 533 for ( i; l ) { … … 531 537 } 532 538 533 string replace( string & s, const string & from, const string & to ) { 539 size_t exclude( const string & s, int (*f)( int ) ) { 540 size_t l = len( s ); 541 for ( i; l ) { 542 if ( f( s[i] ) ) return i; 543 } // for 544 return l; 545 } 546 547 string replace( const string & s, const string & from, const string & to ) { 534 548 ssize_t pos; 535 549 string r;
Note:
See TracChangeset
for help on using the changeset viewer.