Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/collections/string.cfa

    r4dab7e8 rfbe3f03  
    1010// Created On       : Fri Sep 03 11:00:00 2021
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Aug  5 23:12:05 2024
    13 // Update Count     : 273
     12// Last Modified On : Mon Apr 15 21:56:28 2024
     13// Update Count     : 260
    1414//
    1515
     
    4545}
    4646
    47 void ?{}( string & s, const string & s2, size_t maxlen ) {
     47void ?{}( string & s, const string & s2, size_t maxlen) {
    4848    (s.inner) { malloc() };
    4949    ?{}( *s.inner, *s2.inner, COPY_VALUE, maxlen );
     
    6565}
    6666
    67 void ?{}( string & s, const char * c, size_t size ) {
     67void ?{}( string & s, const char * c, size_t size) {
    6868    (s.inner) { malloc() };
    6969    ?{}( *s.inner, c, size );
     
    9898    (s.inner) { malloc() };
    9999    ?{}( *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;
    130100}
    131101
     
    145115
    146116void ?{}( 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);
    148118}
    149119
     
    151121// Assignment
    152122
    153 string & ?=?( string & s, const string & c ) {
     123string & ?=?(string & s, const string & c) {
    154124    (*s.inner) = (*c.inner);
    155125    return s;
    156126}
    157127
    158 string & ?=?( string & s, string & c ) {
     128string & ?=?(string & s, string & c) {
    159129    (*s.inner) = (*c.inner);
    160130    return s;
     
    171141}
    172142
    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 );
     143string & assign(string & s, const string & c, size_t n) {
     144    assign(*s.inner, *c.inner, n);
     145    return s;
     146}
     147
     148string & assign(string & s, const char * c, size_t n) {
     149    assign(*s.inner, c, n);
    180150    return s;
    181151}
     
    235205}
    236206
    237 ifstream & ?|?( ifstream & in, string & s ) {
     207ifstream & ?|?(ifstream & in, string & s) {
    238208    return in | (*s.inner); // read to internal string_res
    239209}
     
    266236// Comparison
    267237
    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; }
     238int  strcmp(const string & s1, const string & s2) { return strcmp(*s1.inner, *s2.inner); }
     239bool ?==?(const string & s1, const string & s2) { return *s1.inner == *s2.inner; }
     240bool ?!=?(const string & s1, const string & s2) { return *s1.inner != *s2.inner; }
     241bool ?>? (const string & s1, const string & s2) { return *s1.inner >  *s2.inner; }
     242bool ?>=?(const string & s1, const string & s2) { return *s1.inner >= *s2.inner; }
     243bool ?<=?(const string & s1, const string & s2) { return *s1.inner <= *s2.inner; }
     244bool ?<? (const string & s1, const string & s2) { return *s1.inner <  *s2.inner; }
     245
     246int  strcmp(const string & s1, const char * s2) { return strcmp(*s1.inner, s2 ); }
     247bool ?==?(const string & s1, const char * s2) { return *s1.inner == s2; }
     248bool ?!=?(const string & s1, const char * s2) { return *s1.inner != s2; }
     249bool ?>? (const string & s1, const char * s2) { return *s1.inner >  s2; }
     250bool ?>=?(const string & s1, const char * s2) { return *s1.inner >= s2; }
     251bool ?<=?(const string & s1, const char * s2) { return *s1.inner <= s2; }
     252bool ?<? (const string & s1, const char * s2) { return *s1.inner <  s2; }
     253
     254int  strcmp(const char * s1, const string & s2) { return strcmp( s1, *s2.inner); }
     255bool ?==?(const char * s1, const string & s2) { return s1 == *s2.inner; }
     256bool ?!=?(const char * s1, const string & s2) { return s1 != *s2.inner; }
     257bool ?>? (const char * s1, const string & s2) { return s1 >  *s2.inner; }
     258bool ?>=?(const char * s1, const string & s2) { return s1 >= *s2.inner; }
     259bool ?<=?(const char * s1, const string & s2) { return s1 <= *s2.inner; }
     260bool ?<? (const char * s1, const string & s2) { return s1 <  *s2.inner; }
    291261
    292262
     
    294264// Getter
    295265
    296 size_t size( const string & s ) {
     266size_t size(const string & s) {
    297267    return size( *s.inner );
    298268}
     
    301271// Concatenation
    302272
    303 void ?+=?( string & s, char c ) {
     273void ?+=?(string & s, char c) {
    304274    (*s.inner) += c;
    305275}
    306276
    307 void ?+=?( string & s, const string & s2 ) {
     277void ?+=?(string & s, const string & s2) {
    308278    (*s.inner) += (*s2.inner);
    309279}
    310280
    311 void append( string & s, const string & s2, size_t maxlen ) {
     281void append(string & s, const string & s2, size_t maxlen) {
    312282    append( (*s.inner), (*s2.inner), maxlen );
    313283}
    314284
    315 void ?+=?( string & s, const char * c ) {
     285void ?+=?(string & s, const char * c) {
    316286    (*s.inner) += c;
    317287}
    318288
    319 void append( string & s, const char * buffer, size_t bsize ) {
     289void append(string & s, const char * buffer, size_t bsize) {
    320290    append( (*s.inner), buffer, bsize );
    321291}
    322292
    323 string ?+?( const string & s, char c ) {
     293string ?+?(const string & s, char c) {
    324294    string ret = s;
    325295    ret += c;
     
    327297}
    328298
    329 string ?+?( char c, const string & s ) {
     299string ?+?(const string & s, const string & s2) {
     300    string ret = s;
     301    ret += s2;
     302    return ret;
     303}
     304
     305string ?+?(const char * s1, const char * s2) {
     306    string ret = s1;
     307    ret += s2;
     308    return ret;
     309}
     310
     311string ?+?(const string & s, const char * c) {
    330312    string ret = s;
    331313    ret += c;
     
    333315}
    334316
    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 
    371317////////////////////////////////////////////////////////
    372318// Repetition
    373319
    374 void ?*=?( string & s, size_t factor ) {
     320void ?*=?(string & s, size_t factor) {
    375321    (*s.inner) *= factor;
    376322}
    377323
    378 string ?*?( const string & s, size_t factor ) {
     324string ?*?(const string & s, size_t factor) {
    379325    string ret = s;
    380326    ret *= factor;
     
    382328}
    383329
    384 string ?*?( char c, size_t factor ) {
     330string ?*?(char c, size_t factor) {
    385331    string ret = c;
    386332    ret *= factor;
     
    388334}
    389335
    390 string ?*?( const char * s, size_t factor ) {
     336string ?*?(const char * s, size_t factor) {
    391337    string ret = s;
    392338    ret *= factor;
     
    397343// Character access
    398344
    399 char ?[?]( const string & s, size_t index ) {
     345char ?[?](const string & s, size_t index) {
    400346    return (*s.inner)[index];
    401347}
    402348
    403 string ?[?]( string & s, size_t index ) {
     349string ?[?](string & s, size_t index) {
    404350    string ret = { *s.inner, index, 1 };
    405351    return ret`shareEdits;
     
    409355// Search
    410356
    411 bool contains( const string & s, char ch ) {
     357bool contains(const string & s, char ch) {
    412358    return contains( *s.inner, ch );
    413359}
    414360
    415 int find( const string & s, char search ) {
     361int find(const string & s, char search) {
    416362    return find( *s.inner, search );
    417363}
    418364
    419 int find( const string & s, const string & search ) {
     365int find(const string & s, const string & search) {
    420366    return find( *s.inner, *search.inner );
    421367}
    422368
    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 ) {
     369int find(const string & s, const char * search) {
     370    return find( *s.inner, search);
     371}
     372
     373int find(const string & s, const char * search, size_t searchsize) {
     374    return find( *s.inner, search, searchsize);
     375}
     376
     377int findFrom(const string & s, size_t fromPos, char search) {
    432378    return findFrom( *s.inner, fromPos, search );
    433379}
    434380
    435 int findFrom( const string & s, size_t fromPos, const string & search ) {
     381int findFrom(const string & s, size_t fromPos, const string & search) {
    436382    return findFrom( *s.inner, fromPos, *search.inner );
    437383}
    438384
    439 int findFrom( const string & s, size_t fromPos, const char * search ) {
     385int findFrom(const string & s, size_t fromPos, const char * search) {
    440386    return findFrom( *s.inner, fromPos, search );
    441387}
    442388
    443 int findFrom( const string & s, size_t fromPos, const char * search, size_t searchsize ) {
     389int findFrom(const string & s, size_t fromPos, const char * search, size_t searchsize) {
    444390    return findFrom( *s.inner, fromPos, search, searchsize );
    445391}
    446392
    447 bool includes( const string & s, const string & search ) {
     393bool includes(const string & s, const string & search) {
    448394    return includes( *s.inner, *search.inner );
    449395}
    450396
    451 bool includes( const string & s, const char * search ) {
     397bool includes(const string & s, const char * search) {
    452398    return includes( *s.inner, search );
    453399}
    454400
    455 bool includes( const string & s, const char * search, size_t searchsize ) {
     401bool includes(const string & s, const char * search, size_t searchsize) {
    456402    return includes( *s.inner, search, searchsize );
    457403}
    458404
    459 bool startsWith( const string & s, const string & prefix ) {
     405bool startsWith(const string & s, const string & prefix) {
    460406    return startsWith( *s.inner, *prefix.inner );
    461407}
    462408
    463 bool startsWith( const string & s, const char * prefix ) {
     409bool startsWith(const string & s, const char * prefix) {
    464410    return startsWith( *s.inner, prefix );
    465411}
    466412
    467 bool startsWith( const string & s, const char * prefix, size_t prefixsize ) {
     413bool startsWith(const string & s, const char * prefix, size_t prefixsize) {
    468414    return startsWith( *s.inner, prefix, prefixsize );
    469415}
    470416
    471 bool endsWith( const string & s, const string & suffix ) {
     417bool endsWith(const string & s, const string & suffix) {
    472418    return endsWith( *s.inner, *suffix.inner );
    473419}
    474420
    475 bool endsWith( const string & s, const char * suffix ) {
     421bool endsWith(const string & s, const char * suffix) {
    476422    return endsWith( *s.inner, suffix );
    477423}
    478424
    479 bool endsWith( const string & s, const char * suffix, size_t suffixsize ) {
     425bool endsWith(const string & s, const char * suffix, size_t suffixsize) {
    480426    return endsWith( *s.inner, suffix, suffixsize );
    481427}
     
    485431// charclass, include, exclude
    486432
    487 void ?{}( charclass & s, const string & chars ) {
     433void ?{}( charclass & s, const string & chars) {
    488434    (s.inner) { malloc() };
    489435    ?{}( *s.inner, *(const string_res *)chars.inner );
     
    507453
    508454
    509 int exclude( const string & s, const charclass & mask ) {
     455int exclude(const string & s, const charclass & mask) {
    510456    return exclude( *s.inner, *mask.inner );
    511457}
    512458/*
    513 StrSlice exclude( string & s, const charclass & mask ) {
     459StrSlice exclude(string & s, const charclass & mask) {
    514460}
    515461*/
    516462
    517 int include( const string & s, const charclass & mask ) {
     463int include(const string & s, const charclass & mask) {
    518464    return include( *s.inner, *mask.inner );
    519465}
    520466
    521467/*
    522 StrSlice include( string & s, const charclass & mask ) {
     468StrSlice include(string & s, const charclass & mask) {
    523469}
    524470*/
     471
Note: See TracChangeset for help on using the changeset viewer.