Changeset d8a2f98


Ignore:
Timestamp:
May 4, 2026, 9:57:49 PM (5 days ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
master
Children:
2f16569
Parents:
9375148
Message:

formatting, add some tostr conversion routines

Location:
libcfa/src/collections
Files:
2 edited

Legend:

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

    r9375148 rd8a2f98  
    1010// Created On       : Fri Sep 03 11:00:00 2021
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun May  3 23:21:25 2026
    13 // Update Count     : 395
     12// Last Modified On : Mon May  4 21:50:03 2026
     13// Update Count     : 400
    1414//
    1515
     
    5757}
    5858
    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 );
     59void ?{}( string & s, const char * cs ) {
     60        (s.inner) { malloc() };
     61        ?{}( *s.inner, cs );
     62}
     63
     64void ?{}( string & s, const char * cs , size_t size ) {
     65        (s.inner) { malloc() };
     66        ?{}( *s.inner, cs, size );
    6767}
    6868
     
    138138}
    139139
    140 string & assign( string & s, const char * c, size_t n ) {
    141         assign( *s.inner, c, n );
     140string & assign( string & s, const char * cs , size_t n ) {
     141        assign( *s.inner, cs, n );
    142142        return s;
    143143}
     
    273273}
    274274
    275 void ?+=?( string & s, const char * c ) {
    276         (*s.inner) += c;
     275void ?+=?( string & s, const char * cs ) {
     276        (*s.inner) += cs;
    277277}
    278278
     
    299299}
    300300
    301 string ?+?( const char * s,  char c ) {
     301string ?+?( const char * cs,  char c ) {
     302        string ret = cs;
     303        ret += c;
     304        return ret;
     305}
     306
     307string ?+?( char c, const char * cs ) {
     308        string ret = c;
     309        ret += cs;
     310        return ret;
     311}
     312
     313string ?+?( const char * cs1, const char * cs2 ) {
     314        string ret = cs1;
     315        ret += cs2;
     316        return ret;
     317}
     318
     319string ?+?( const char * cs, string s ) {
     320        string ret = cs;
     321        ret += s;
     322        return ret;
     323}
     324
     325string ?+?( string s, const char * cs ) {
    302326        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;
    328328        return ret;
    329329}
     
    354354}
    355355
    356 string ?*?( const char * s, strmul_factor_t factor ) {
    357         string ret = s;
     356string ?*?( const char * cs, strmul_factor_t factor ) {
     357        string ret = cs;
    358358        ret *= factor;
    359359        return ret;
     
    377377#define STRNCPY_FMT "**** Error **** strncpy: maximum length %zu is greater than string lengths %zd or %zd."
    378378
    379 int strncmp( const string & s1, const string & s2, size_t maxlen ) {
    380         if ( maxlen > len( s1 ) || maxlen > len( s2 ) ) {
    381                 abort( STRNCPY_FMT, maxlen, len( s1 ), len( s2 ) );
     379int 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 ) );
    382382        } // if
    383         return strcmp$( s1.inner->Handle.s, maxlen, s2.inner->Handle.s, maxlen );
    384 }
    385 
    386 int strncmp( const string & s1, const char * s2, size_t maxlen ) {
    387         size_t s2len = len( s2 );
    388         if ( maxlen > len( s1 ) || maxlen > s2len ) {
    389                 abort( STRNCPY_FMT, maxlen, len( s1 ), s2len );
     383        return strcmp$( s.inner->Handle.s, maxlen, s2.inner->Handle.s, maxlen );
     384}
     385
     386int 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 );
    390390        } // if
    391         return strcmp$( s1.inner->Handle.s, maxlen, s2, maxlen );
    392 }
    393 
    394 int strncmp( const char * s1, const string & s2, size_t maxlen ) {
    395         size_t s1len = len( s1 );
    396         if ( maxlen > s1len || maxlen > len( s2 ) ) {
    397                 abort( STRNCPY_FMT, maxlen, s1len, len( s2 ) );
     391        return strcmp$( s.inner->Handle.s, maxlen, cs, maxlen );
     392}
     393
     394int 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 ) );
    398398        } // if
    399         return strcmp$( s1, maxlen, s2.inner->Handle.s, maxlen );
     399        return strcmp$( s, maxlen, cs.inner->Handle.s, maxlen );
    400400}
    401401
  • libcfa/src/collections/string.hfa

    r9375148 rd8a2f98  
    1010// Created On       : Fri Sep 03 11:00:00 2021
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun May  3 23:24:08 2026
    13 // Update Count     : 324
     12// Last Modified On : Mon May  4 21:54:23 2026
     13// Update Count     : 332
    1414//
    1515
     
    3333PBOOST void ?{}( string & s, string s2 );
    3434void ?{}( 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 buffer
     35void ?{}( string & s, const char * cs );                                // copy from string literal (NULL-terminated)
     36void ?{}( string & s, const char * cs, size_t size );   // copy specific length from buffer
    3737
    3838void ?{}( string & s, signed long int rhs );
     
    4545
    4646PBOOST string & ?=?( string & s, string c );
    47 string & ?=?( string & s, const char * c );                             // copy from "literal"
     47string & ?=?( string & s, const char * cs );                    // copy from "literal"
    4848string & ?=?( string & s, char c );                                             // copy from 'l'
    4949string & assign( string & s, const string & c, size_t n );
    50 string & assign( string & s, const char * c, size_t n );
     50string & assign( string & s, const char * cs, size_t n );
    5151string & ?=?( string & s, signed long int rhs );
    5252string & ?=?( string & s, size_t rhs );
     
    5757static inline string & ?=?( string & s, int rhs ) { return s = ((signed long int) rhs); } // to match cost of (char * int): int
    5858
    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; }
     59static inline string tostr( char c ) { string s = c; return s; }
     60static inline string tostr( const char * cs ) { string s = cs; return s; }
     61static inline string tostr( signed long int v ) { string s = v; return s; }
     62static inline string tostr( size_t v ) { string s = v; return s; }
     63static inline string tostr( double v ) { string s = v; return s; }
     64static inline string tostr( long double v ) { string s = v; return s; }
     65static inline string tostr( long double _Complex v ) { string s = v; return s; }
     66
     67static inline string & strcpy( string & s, const char * cs ) { s = cs; return s; }
     68static inline string & strncpy( string & s, const char * cs, size_t n ) { assign( s, cs, n ); return s; }
     69static inline string & strcpy( string & s1, const string & s2 ) { s1 = s2; return s1; }
     70static inline string & strncpy( string & s, const string & cs, size_t n ) { assign( s, cs, n ); return s; }
    6371char * strncpy( char * dst, string & src, size_t n );
    6472char * ?=?( char *& dst, string & src );
     
    159167PBOOST void ?+=?( string & s, string );
    160168void append( string & s, const string & s2, size_t maxlen );
    161 void ?+=?( string & s, const char * s2 );
     169void ?+=?( string & s, const char * cs );
    162170void append( string & s, const char * buffer, size_t bsize );
    163171
     
    165173string ?+?( char c, string s );
    166174PBOOST string ?+?( string s, string s2 );
    167 string ?+?( const char * s, char c );                                   // not backwards compatible
    168 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 );
     175string ?+?( const char * cs, char c );                                  // not backwards compatible
     176string ?+?( char c, const char * cs );
     177string ?+?( const char * cs1 , const char * cs2 );
     178string ?+?( const char * cs , string s );
     179string ?+?( string s, const char * cs );
    172180string ?+?( char, char );                                                               // not being called 8-(
    173181
    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; }
     182static inline string & strcat( string & s1, const string & s2 ) { s1 += s2; return s1; }
     183static inline string & strcat( string & s, const char * cs  ) { s += cs; return s; }
     184static inline string & strncat( string & s1, const string & s2, size_t maxlen ) { append( s1, s2, maxlen ); return s1; }
    177185static inline string & strncat( string & s, const char * buffer, size_t bsize ) { append( s, buffer, bsize ); return s; }
    178186
     
    187195string ?*?( char c, strmul_factor_t factor );                                   // not backwards compatible
    188196PBOOST string ?*?( string s, strmul_factor_t factor );
    189 string ?*?( const char * s, strmul_factor_t factor );
     197string ?*?( const char * cs, strmul_factor_t factor );
    190198static inline string ?*?( strmul_factor_t factor, char c ) { return c * factor; }
    191199PBOOST static inline string ?*?( strmul_factor_t factor, string s ) { return s * factor; }
    192 static inline string ?*?( strmul_factor_t factor, const char * s ) { return s * factor; }
     200static inline string ?*?( strmul_factor_t factor, const char * cs ) { return cs * factor; }
    193201
    194202// Character access
     
    327335
    328336string 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 } ); }
     337static inline string replace( const char * cs, const char * from, const char * to ) { return replace( (string){ cs }, (string){ from }, (string){ to } ); }
    330338static inline string replace( const string & s, const char * from, const char * to ) { return replace( s, (string){ from }, (string){ to } ); }
    331339static 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.