- File:
-
- 1 edited
-
libcfa/src/collections/string.cfa (modified) (19 diffs)
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/collections/string.cfa
r4dab7e8 rfbe3f03 10 10 // Created On : Fri Sep 03 11:00:00 2021 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon A ug 5 23:12:05202413 // Update Count : 2 7312 // Last Modified On : Mon Apr 15 21:56:28 2024 13 // Update Count : 260 14 14 // 15 15 … … 45 45 } 46 46 47 void ?{}( string & s, const string & s2, size_t maxlen ) {47 void ?{}( string & s, const string & s2, size_t maxlen) { 48 48 (s.inner) { malloc() }; 49 49 ?{}( *s.inner, *s2.inner, COPY_VALUE, maxlen ); … … 65 65 } 66 66 67 void ?{}( string & s, const char * c, size_t size ) {67 void ?{}( string & s, const char * c, size_t size) { 68 68 (s.inner) { malloc() }; 69 69 ?{}( *s.inner, c, size ); … … 98 98 (s.inner) { malloc() }; 99 99 ?{}( *s.inner, rhs ); 100 }101 102 string str( ssize_t rhs ) {103 string s = rhs;104 return s;105 }106 107 string str( size_t rhs ) {108 string s = rhs;109 return s;110 }111 112 string str( double rhs ) {113 string s = rhs;114 return s;115 }116 117 string str( long double rhs ) {118 string s = rhs;119 return s;120 }121 122 string str( double _Complex rhs ) {123 string s = rhs;124 return s;125 }126 127 string str( long double _Complex rhs ) {128 string s = rhs;129 return s;130 100 } 131 101 … … 145 115 146 116 void ?{}( string & s, string_WithSharedEdits src ) { 147 ?{}( s, *src.s->inner, 0, src.s->inner->Handle.lnth );117 ?{}( s, *src.s->inner, 0, src.s->inner->Handle.lnth); 148 118 } 149 119 … … 151 121 // Assignment 152 122 153 string & ?=?( string & s, const string & c) {123 string & ?=?(string & s, const string & c) { 154 124 (*s.inner) = (*c.inner); 155 125 return s; 156 126 } 157 127 158 string & ?=?( string & s, string & c) {128 string & ?=?(string & s, string & c) { 159 129 (*s.inner) = (*c.inner); 160 130 return s; … … 171 141 } 172 142 173 string & assign( string & s, const string & c, size_t n) {174 assign( *s.inner, *c.inner, n);175 return s; 176 } 177 178 string & assign( string & s, const char * c, size_t n) {179 assign( *s.inner, c, n);143 string & assign(string & s, const string & c, size_t n) { 144 assign(*s.inner, *c.inner, n); 145 return s; 146 } 147 148 string & assign(string & s, const char * c, size_t n) { 149 assign(*s.inner, c, n); 180 150 return s; 181 151 } … … 235 205 } 236 206 237 ifstream & ?|?( ifstream & in, string & s) {207 ifstream & ?|?(ifstream & in, string & s) { 238 208 return in | (*s.inner); // read to internal string_res 239 209 } … … 266 236 // Comparison 267 237 268 int strcmp( const string & s1, const string & s2 ) { return strcmp( *s1.inner, *s2.inner); }269 bool ?==?( const string & s1, const string & s2) { return *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 276 int strcmp( const string & s1, const char * s2 ) { return strcmp(*s1.inner, s2 ); }277 bool ?==?( const string & s1, const char * s2) { return *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 284 int strcmp( const char * s1, const string & s2 ) { return strcmp( s1, *s2.inner); }285 bool ?==?( const char * s1, const string & s2) { return 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; }238 int strcmp(const string & s1, const string & s2) { return strcmp(*s1.inner, *s2.inner); } 239 bool ?==?(const string & s1, const string & s2) { return *s1.inner == *s2.inner; } 240 bool ?!=?(const string & s1, const string & s2) { return *s1.inner != *s2.inner; } 241 bool ?>? (const string & s1, const string & s2) { return *s1.inner > *s2.inner; } 242 bool ?>=?(const string & s1, const string & s2) { return *s1.inner >= *s2.inner; } 243 bool ?<=?(const string & s1, const string & s2) { return *s1.inner <= *s2.inner; } 244 bool ?<? (const string & s1, const string & s2) { return *s1.inner < *s2.inner; } 245 246 int strcmp(const string & s1, const char * s2) { return strcmp(*s1.inner, s2 ); } 247 bool ?==?(const string & s1, const char * s2) { return *s1.inner == s2; } 248 bool ?!=?(const string & s1, const char * s2) { return *s1.inner != s2; } 249 bool ?>? (const string & s1, const char * s2) { return *s1.inner > s2; } 250 bool ?>=?(const string & s1, const char * s2) { return *s1.inner >= s2; } 251 bool ?<=?(const string & s1, const char * s2) { return *s1.inner <= s2; } 252 bool ?<? (const string & s1, const char * s2) { return *s1.inner < s2; } 253 254 int strcmp(const char * s1, const string & s2) { return strcmp( s1, *s2.inner); } 255 bool ?==?(const char * s1, const string & s2) { return s1 == *s2.inner; } 256 bool ?!=?(const char * s1, const string & s2) { return s1 != *s2.inner; } 257 bool ?>? (const char * s1, const string & s2) { return s1 > *s2.inner; } 258 bool ?>=?(const char * s1, const string & s2) { return s1 >= *s2.inner; } 259 bool ?<=?(const char * s1, const string & s2) { return s1 <= *s2.inner; } 260 bool ?<? (const char * s1, const string & s2) { return s1 < *s2.inner; } 291 261 292 262 … … 294 264 // Getter 295 265 296 size_t size( const string & s) {266 size_t size(const string & s) { 297 267 return size( *s.inner ); 298 268 } … … 301 271 // Concatenation 302 272 303 void ?+=?( string & s, char c) {273 void ?+=?(string & s, char c) { 304 274 (*s.inner) += c; 305 275 } 306 276 307 void ?+=?( string & s, const string & s2) {277 void ?+=?(string & s, const string & s2) { 308 278 (*s.inner) += (*s2.inner); 309 279 } 310 280 311 void append( string & s, const string & s2, size_t maxlen) {281 void append(string & s, const string & s2, size_t maxlen) { 312 282 append( (*s.inner), (*s2.inner), maxlen ); 313 283 } 314 284 315 void ?+=?( string & s, const char * c) {285 void ?+=?(string & s, const char * c) { 316 286 (*s.inner) += c; 317 287 } 318 288 319 void append( string & s, const char * buffer, size_t bsize) {289 void append(string & s, const char * buffer, size_t bsize) { 320 290 append( (*s.inner), buffer, bsize ); 321 291 } 322 292 323 string ?+?( const string & s, char c) {293 string ?+?(const string & s, char c) { 324 294 string ret = s; 325 295 ret += c; … … 327 297 } 328 298 329 string ?+?( char c, const string & s ) { 299 string ?+?(const string & s, const string & s2) { 300 string ret = s; 301 ret += s2; 302 return ret; 303 } 304 305 string ?+?(const char * s1, const char * s2) { 306 string ret = s1; 307 ret += s2; 308 return ret; 309 } 310 311 string ?+?(const string & s, const char * c) { 330 312 string ret = s; 331 313 ret += c; … … 333 315 } 334 316 335 string ?+?( const string & s, const string & s2 ) {336 string ret = s;337 ret += s2;338 return ret;339 }340 341 string ?+?( const char * s, char c ) {342 string ret = s;343 ret += c;344 return ret;345 }346 347 string ?+?( char c, const char * s ) {348 string ret = c;349 ret += s;350 return ret;351 }352 353 string ?+?( const char * s1, const char * s2 ) {354 string ret = s1;355 ret += s2;356 return ret;357 }358 359 string ?+?( const char * s1, string & s2 ) {360 string ret = s1;361 ret += s2;362 return ret;363 }364 365 string ?+?( const string & s, const char * c ) {366 string ret = s;367 ret += c;368 return ret;369 }370 371 317 //////////////////////////////////////////////////////// 372 318 // Repetition 373 319 374 void ?*=?( string & s, size_t factor) {320 void ?*=?(string & s, size_t factor) { 375 321 (*s.inner) *= factor; 376 322 } 377 323 378 string ?*?( const string & s, size_t factor) {324 string ?*?(const string & s, size_t factor) { 379 325 string ret = s; 380 326 ret *= factor; … … 382 328 } 383 329 384 string ?*?( char c, size_t factor) {330 string ?*?(char c, size_t factor) { 385 331 string ret = c; 386 332 ret *= factor; … … 388 334 } 389 335 390 string ?*?( const char * s, size_t factor) {336 string ?*?(const char * s, size_t factor) { 391 337 string ret = s; 392 338 ret *= factor; … … 397 343 // Character access 398 344 399 char ?[?]( const string & s, size_t index) {345 char ?[?](const string & s, size_t index) { 400 346 return (*s.inner)[index]; 401 347 } 402 348 403 string ?[?]( string & s, size_t index) {349 string ?[?](string & s, size_t index) { 404 350 string ret = { *s.inner, index, 1 }; 405 351 return ret`shareEdits; … … 409 355 // Search 410 356 411 bool contains( const string & s, char ch) {357 bool contains(const string & s, char ch) { 412 358 return contains( *s.inner, ch ); 413 359 } 414 360 415 int find( const string & s, char search) {361 int find(const string & s, char search) { 416 362 return find( *s.inner, search ); 417 363 } 418 364 419 int find( const string & s, const string & search) {365 int find(const string & s, const string & search) { 420 366 return find( *s.inner, *search.inner ); 421 367 } 422 368 423 int find( const string & s, const char * search) {424 return find( *s.inner, search );425 } 426 427 int find( const string & s, const char * search, size_t searchsize) {428 return find( *s.inner, search, searchsize );429 } 430 431 int findFrom( const string & s, size_t fromPos, char search) {369 int find(const string & s, const char * search) { 370 return find( *s.inner, search); 371 } 372 373 int find(const string & s, const char * search, size_t searchsize) { 374 return find( *s.inner, search, searchsize); 375 } 376 377 int findFrom(const string & s, size_t fromPos, char search) { 432 378 return findFrom( *s.inner, fromPos, search ); 433 379 } 434 380 435 int findFrom( const string & s, size_t fromPos, const string & search) {381 int findFrom(const string & s, size_t fromPos, const string & search) { 436 382 return findFrom( *s.inner, fromPos, *search.inner ); 437 383 } 438 384 439 int findFrom( const string & s, size_t fromPos, const char * search) {385 int findFrom(const string & s, size_t fromPos, const char * search) { 440 386 return findFrom( *s.inner, fromPos, search ); 441 387 } 442 388 443 int findFrom( const string & s, size_t fromPos, const char * search, size_t searchsize) {389 int findFrom(const string & s, size_t fromPos, const char * search, size_t searchsize) { 444 390 return findFrom( *s.inner, fromPos, search, searchsize ); 445 391 } 446 392 447 bool includes( const string & s, const string & search) {393 bool includes(const string & s, const string & search) { 448 394 return includes( *s.inner, *search.inner ); 449 395 } 450 396 451 bool includes( const string & s, const char * search) {397 bool includes(const string & s, const char * search) { 452 398 return includes( *s.inner, search ); 453 399 } 454 400 455 bool includes( const string & s, const char * search, size_t searchsize) {401 bool includes(const string & s, const char * search, size_t searchsize) { 456 402 return includes( *s.inner, search, searchsize ); 457 403 } 458 404 459 bool startsWith( const string & s, const string & prefix) {405 bool startsWith(const string & s, const string & prefix) { 460 406 return startsWith( *s.inner, *prefix.inner ); 461 407 } 462 408 463 bool startsWith( const string & s, const char * prefix) {409 bool startsWith(const string & s, const char * prefix) { 464 410 return startsWith( *s.inner, prefix ); 465 411 } 466 412 467 bool startsWith( const string & s, const char * prefix, size_t prefixsize) {413 bool startsWith(const string & s, const char * prefix, size_t prefixsize) { 468 414 return startsWith( *s.inner, prefix, prefixsize ); 469 415 } 470 416 471 bool endsWith( const string & s, const string & suffix) {417 bool endsWith(const string & s, const string & suffix) { 472 418 return endsWith( *s.inner, *suffix.inner ); 473 419 } 474 420 475 bool endsWith( const string & s, const char * suffix) {421 bool endsWith(const string & s, const char * suffix) { 476 422 return endsWith( *s.inner, suffix ); 477 423 } 478 424 479 bool endsWith( const string & s, const char * suffix, size_t suffixsize) {425 bool endsWith(const string & s, const char * suffix, size_t suffixsize) { 480 426 return endsWith( *s.inner, suffix, suffixsize ); 481 427 } … … 485 431 // charclass, include, exclude 486 432 487 void ?{}( charclass & s, const string & chars ) {433 void ?{}( charclass & s, const string & chars) { 488 434 (s.inner) { malloc() }; 489 435 ?{}( *s.inner, *(const string_res *)chars.inner ); … … 507 453 508 454 509 int exclude( const string & s, const charclass & mask) {455 int exclude(const string & s, const charclass & mask) { 510 456 return exclude( *s.inner, *mask.inner ); 511 457 } 512 458 /* 513 StrSlice exclude( string & s, const charclass & mask) {459 StrSlice exclude(string & s, const charclass & mask) { 514 460 } 515 461 */ 516 462 517 int include( const string & s, const charclass & mask) {463 int include(const string & s, const charclass & mask) { 518 464 return include( *s.inner, *mask.inner ); 519 465 } 520 466 521 467 /* 522 StrSlice include( string & s, const charclass & mask) {468 StrSlice include(string & s, const charclass & mask) { 523 469 } 524 470 */ 471
Note:
See TracChangeset
for help on using the changeset viewer.