Changeset bc547d3


Ignore:
Timestamp:
May 8, 2026, 6:09:22 PM (7 hours ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
master
Parents:
2f16569
Message:

formatting

Location:
libcfa/src/collections
Files:
2 edited

Legend:

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

    r2f16569 rbc547d3  
    1010// Created On       : Fri Sep 03 11:00:00 2021
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri May  8 07:41:00 2026
    13 // Update Count     : 409
     12// Last Modified On : Fri May  8 08:38:51 2026
     13// Update Count     : 413
    1414//
    1515
     
    5757}
    5858
    59 void ?{}( string & s, const char * cs ) {
     59void ?{}( string & s, const char cs[] ) {
    6060        (s.inner) { malloc() };
    6161        ?{}( *s.inner, cs );
    6262}
    6363
    64 void ?{}( string & s, const char * cs , size_t size ) {
     64void ?{}( string & s, const char cs[] , size_t size ) {
    6565        (s.inner) { malloc() };
    6666        ?{}( *s.inner, cs, size );
     
    128128}
    129129
    130 string & ?=?( string & s, const char * rhs ) {
     130string & ?=?( string & s, const char rhs[] ) {
    131131        (*s.inner) = rhs;
    132132        return s;
     
    138138}
    139139
    140 string & assign( string & s, const char * rhs, size_t n ) {
     140string & assign( string & s, const char rhs[], size_t n ) {
    141141        assign( *s.inner, rhs, n );
    142142        return s;
     
    177177
    178178// safe conversion from string to char *
    179 char * strncpy( char * dst, string & src, size_t n ) {
     179char * strncpy( char dst[], string & src, size_t n ) {
    180180        size_t l = min( n - 1, len( src ) );                            // ensure null terminated
    181181        for ( i; l ) dst[i] = src[i];
     
    273273}
    274274
    275 void ?+=?( string & s, const char * cs ) {
     275void ?+=?( string & s, const char cs[] ) {
    276276        (*s.inner) += cs;
    277277}
    278278
    279 void append( string & s, const char * buffer, size_t bsize ) {
     279void append( string & s, const char buffer[], size_t bsize ) {
    280280        append( (*s.inner), buffer, bsize );
    281281}
     
    299299}
    300300
    301 string ?+?( const char * cs,  char c ) {
     301string ?+?( const char cs[],  char c ) {
    302302        string ret = cs;
    303303        ret += c;
     
    305305}
    306306
    307 string ?+?( char c, const char * cs ) {
     307string ?+?( char c, const char cs[] ) {
    308308        string ret = c;
    309309        ret += cs;
     
    311311}
    312312
    313 string ?+?( const char * cs1, const char * cs2 ) {
     313string ?+?( const char cs1[], const char cs2[] ) {
    314314        string ret = cs1;
    315315        ret += cs2;
     
    317317}
    318318
    319 string ?+?( const char * cs, string s ) {
     319string ?+?( const char cs[], string s ) {
    320320        string ret = cs;
    321321        ret += s;
     
    323323}
    324324
    325 string ?+?( string s, const char * cs ) {
     325string ?+?( string s, const char cs[] ) {
    326326        string ret = s;
    327327        ret += cs;
     
    354354}
    355355
    356 string ?*?( const char * cs, strmul_factor_t factor ) {
     356string ?*?( const char cs[], strmul_factor_t factor ) {
    357357        string ret = cs;
    358358        ret *= factor;
     
    384384}
    385385
    386 int strncmp( const string & s, const char * cs, size_t maxlen ) {
     386int strncmp( const string & s, const char cs[], size_t maxlen ) {
    387387        size_t cslen = len( cs );
    388388        if ( maxlen > len( s ) || maxlen > cslen ) {
     
    392392}
    393393
    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 ) );
     394int strncmp( const char cs[], const string & s, size_t maxlen ) {
     395        size_t slen = len( cs );
     396        if ( maxlen > slen || maxlen > len( s ) ) {
     397                abort( STRNCPY_FMT, maxlen, slen, len( s ) );
    398398        } // if
    399         return strcmp$( s, maxlen, cs.inner->Handle.s, maxlen );
     399        return strcmp$( cs, maxlen, s.inner->Handle.s, maxlen );
    400400}
    401401
     
    425425}
    426426
    427 size_t find( const string & s, const char * key ) {
     427size_t find( const string & s, const char key[] ) {
    428428        return find( *s.inner, key );
    429429}
    430430
    431 size_t find( const string & s, const char * key, size_t keysize ) {
     431size_t find( const string & s, const char key[], size_t keysize ) {
    432432        return find( *s.inner, key, keysize );
    433433}
     
    437437}
    438438
    439 size_t find( const string & s, size_t start, const char * key ) {
     439size_t find( const string & s, size_t start, const char key[] ) {
    440440        return findFrom( *s.inner, start, key );
    441441}
    442442
    443 size_t find( const string & s, size_t start, const char * key, size_t keysize ) {
     443size_t find( const string & s, size_t start, const char key[], size_t keysize ) {
    444444        return findFrom( *s.inner, start, key, keysize );
    445445}
     
    449449// }
    450450
    451 // bool includes( const string & s, const char * search ) {
     451// bool includes( const string & s, const char search[] ) {
    452452//      return includes( *s.inner, search );
    453453// }
    454454
    455 // bool includes( const string & s, const char * search, size_t searchsize ) {
     455// bool includes( const string & s, const char search[], size_t searchsize ) {
    456456//      return includes( *s.inner, search, searchsize );
    457457// }
     
    461461}
    462462
    463 bool startsWith( const string & s, const char * prefix ) {
     463bool startsWith( const string & s, const char prefix[] ) {
    464464        return startsWith( *s.inner, prefix );
    465465}
    466466
    467 bool startsWith( const string & s, const char * prefix, size_t prefixsize ) {
     467bool startsWith( const string & s, const char prefix[], size_t prefixsize ) {
    468468        return startsWith( *s.inner, prefix, prefixsize );
    469469}
     
    473473}
    474474
    475 bool endsWith( const string & s, const char * suffix ) {
     475bool endsWith( const string & s, const char suffix[] ) {
    476476        return endsWith( *s.inner, suffix );
    477477}
    478478
    479 bool endsWith( const string & s, const char * suffix, size_t suffixsize ) {
     479bool endsWith( const string & s, const char suffix[], size_t suffixsize ) {
    480480        return endsWith( *s.inner, suffix, suffixsize );
    481481}
     
    490490}
    491491
    492 void ?{}( charclass & s, const char * chars ) {
     492void ?{}( charclass & s, const char chars[] ) {
    493493        (s.inner) { malloc() };
    494494        ?{}( *s.inner, chars );
    495495}
    496496
    497 void ?{}( charclass & s, const char * chars, size_t charssize ) {
     497void ?{}( charclass & s, const char chars[], size_t charssize ) {
    498498        (s.inner) { malloc() };
    499499        ?{}( *s.inner, chars, charssize );
  • libcfa/src/collections/string.hfa

    r2f16569 rbc547d3  
    1010// Created On       : Fri Sep 03 11:00:00 2021
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri May  8 07:40:57 2026
    13 // Update Count     : 353
     12// Last Modified On : Fri May  8 18:07:38 2026
     13// Update Count     : 367
    1414//
    1515
     
    3333PBOOST void ?{}( string & s, string s2 );
    3434void ?{}( string & s, char );
    35 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
     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
    3737void ?{}( string & s, size_t rhs );
    3838void ?{}( string & s, ssize_t rhs );
     
    4444PBOOST string & ?=?( string & s, string rhs );
    4545string & ?=?( string & s, char rhs );                                   // copy from 'l'
    46 string & ?=?( string & s, const char * rhs );                   // copy from "literal"
     46string & ?=?( string & s, const char rhs[] );                   // copy from "literal"
    4747string & assign( string & s, const string & rhs, size_t n );
    48 string & assign( string & s, const char * rhs, size_t n );
     48string & assign( string & s, const char rhs[], size_t n );
    4949string & ?=?( string & s, size_t rhs );
    5050string & ?=?( string & s, ssize_t rhs );
     
    5656// Conversion
    5757static inline string tostr( char c ) { string s = c; return s; }
    58 static inline string tostr( const char * cs ) { string s = cs; return s; }
     58static inline string tostr( const char cs[] ) { string s = cs; return s; }
    5959static inline string tostr( size_t v ) { string s = v; return s; }
    6060static inline string tostr( ssize_t v ) { string s = v; return s; }
     
    6464
    6565// C compatibility
    66 static inline string & strcpy( string & s, const char * cs ) { s = cs; return s; }
    67 static inline string & strncpy( string & s, const char * cs, size_t n ) { assign( s, cs, n ); return s; }
     66static inline string & strcpy( string & s, const char cs[] ) { s = cs; return s; }
     67static inline string & strncpy( string & s, const char cs[], size_t n ) { assign( s, cs, n ); return s; }
    6868static inline string & strcpy( string & s1, const string & s2 ) { s1 = s2; return s1; }
    6969static inline string & strncpy( string & s, const string & cs, size_t n ) { assign( s, cs, n ); return s; }
    70 char * strncpy( char * dst, string & src, size_t n );
     70char * strncpy( char dst[], string & src, size_t n );
    7171char * ?=?( char *& dst, string & src );
    7272void ?{}( char *& dst, string & src );
     
    8181// Getters
    8282static inline size_t len( const string & s ) { return len( *s.inner ); }
    83 static inline size_t len( const char * cs ) { return strlen( cs ); };
     83static inline size_t len( const char cs[] ) { return strlen( cs ); };
    8484static inline size_t strlen( const string & s ) { return len( s ); }
    8585size_t strnlen( const string & s, size_t maxlen );
     
    119119        inline _Istream_str_base;
    120120}; // _Istream_Swidth
     121
     122// Restrict nesting of input manipulators to those combinations that make sense.
    121123
    122124struct _Istream_Squote {
     
    166168PBOOST void ?+=?( string & s, string );
    167169void append( string & s, const string & s2, size_t maxlen );
    168 void ?+=?( string & s, const char * cs );
    169 void append( string & s, const char * buffer, size_t bsize );
     170void ?+=?( string & s, const char cs[] );
     171void append( string & s, const char buffer[], size_t bsize );
    170172
    171173string ?+?( string s, char c );
    172174string ?+?( char c, string s );
    173175PBOOST string ?+?( string s, string s2 );
    174 string ?+?( const char * cs, char c );                                  // not backwards compatible
    175 string ?+?( char c, const char * cs );
    176 string ?+?( const char * cs1 , const char * cs2 );
    177 string ?+?( const char * cs , string s );
    178 string ?+?( string s, const char * cs  );
     176string ?+?( const char cs[], char c );                                  // not backwards compatible
     177string ?+?( char c, const char cs[] );
     178string ?+?( const char cs1[] , const char cs2[] );
     179string ?+?( const char cs[] , string s );
     180string ?+?( string s, const char cs[]  );
    179181string ?+?( char, char );                                                               // not being called 8-(
    180182
    181183static inline string & strcat( string & s1, const string & s2 ) { s1 += s2; return s1; }
    182 static inline string & strcat( string & s, const char * cs  ) { s += cs; return s; }
     184static inline string & strcat( string & s, const char cs[]  ) { s += cs; return s; }
    183185static inline string & strncat( string & s1, const string & s2, size_t maxlen ) { append( s1, s2, maxlen ); return s1; }
    184 static inline string & strncat( string & s, const char * buffer, size_t bsize ) { append( s, buffer, bsize ); return s; }
     186static inline string & strncat( string & s, const char buffer[], size_t bsize ) { append( s, buffer, bsize ); return s; }
    185187
    186188// Repetition
     
    194196string ?*?( char c, strmul_factor_t factor );                                   // not backwards compatible
    195197PBOOST string ?*?( string s, strmul_factor_t factor );
    196 string ?*?( const char * cs, strmul_factor_t factor );
     198string ?*?( const char cs[], strmul_factor_t factor );
    197199static inline string ?*?( strmul_factor_t factor, char c ) { return c * factor; }
    198200PBOOST static inline string ?*?( strmul_factor_t factor, string s ) { return s * factor; }
    199 static inline string ?*?( strmul_factor_t factor, const char * cs ) { return cs * factor; }
     201static inline string ?*?( strmul_factor_t factor, const char cs[] ) { return cs * factor; }
    200202
    201203// Character access
     
    214216static inline bool ?<? ( const string & s1, const string & s2 ) { return *s1.inner <  *s2.inner; }
    215217
    216 static inline int strcmp( const string & s1, const char * s2 ) { return strcmp( *s1.inner, s2 ); }
    217 int strncmp( const string & s1, const char * s2, size_t maxlen );
    218 static inline bool ?==?( const string & s1, const char * s2 ) { return *s1.inner == s2; }
    219 static inline bool ?!=?( const string & s1, const char * s2 ) { return *s1.inner != s2; }
    220 static inline bool ?>? ( const string & s1, const char * s2 ) { return *s1.inner >  s2; }
    221 static inline bool ?>=?( const string & s1, const char * s2 ) { return *s1.inner >= s2; }
    222 static inline bool ?<=?( const string & s1, const char * s2 ) { return *s1.inner <= s2; }
    223 static inline bool ?<? ( const string & s1, const char * s2 ) { return *s1.inner <  s2; }
    224 
    225 static inline int strcmp( const char * s1, const string & s2 ) { return strcmp( s1, *s2.inner ); }
    226 int strncmp( const char * s1, const string & s2, size_t maxlen );
    227 static inline bool ?==?( const char * s1, const string & s2 ) { return s1 == *s2.inner; }
    228 static inline bool ?!=?( const char * s1, const string & s2 ) { return s1 != *s2.inner; }
    229 static inline bool ?>? ( const char * s1, const string & s2 ) { return s1 >  *s2.inner; }
    230 static inline bool ?>=?( const char * s1, const string & s2 ) { return s1 >= *s2.inner; }
    231 static inline bool ?<=?( const char * s1, const string & s2 ) { return s1 <= *s2.inner; }
    232 static inline bool ?<? ( const char * s1, const string & s2 ) { return s1 <  *s2.inner; }
     218static inline int strcmp( const string & s, const char cs[] ) { return strcmp( *s.inner, cs ); }
     219int strncmp( const string & s1, const char cs[], size_t maxlen );
     220static inline bool ?==?( const string & s, const char cs[] ) { return *s.inner == cs; }
     221static inline bool ?!=?( const string & s, const char cs[] ) { return *s.inner != cs; }
     222static inline bool ?>? ( const string & s, const char cs[] ) { return *s.inner >  cs; }
     223static inline bool ?>=?( const string & s, const char cs[] ) { return *s.inner >= cs; }
     224static inline bool ?<=?( const string & s, const char cs[] ) { return *s.inner <= cs; }
     225static inline bool ?<? ( const string & s, const char cs[] ) { return *s.inner <  cs; }
     226
     227static inline int strcmp( const char cs[], const string & s ) { return strcmp( cs, *s.inner ); }
     228int strncmp( const char cs[], const string & s, size_t maxlen );
     229static inline bool ?==?( const char cs[], const string & s ) { return cs == *s.inner; }
     230static inline bool ?!=?( const char cs[], const string & s ) { return cs != *s.inner; }
     231static inline bool ?>? ( const char cs[], const string & s ) { return cs >  *s.inner; }
     232static inline bool ?>=?( const char cs[], const string & s ) { return cs >= *s.inner; }
     233static inline bool ?<=?( const char cs[], const string & s ) { return cs <= *s.inner; }
     234static inline bool ?<? ( const char cs[], const string & s ) { return cs <  *s.inner; }
    233235
    234236// String search
    235237
    236238size_t find( const string & s, char key );
    237 size_t find( const string & s, const char * key );
     239size_t find( const string & s, const char key[] );
    238240size_t find( const string & s, const string & key );
    239 size_t find( const string & s, const char * key, size_t keysize );
     241size_t find( const string & s, const char key[], size_t keysize );
    240242
    241243size_t find( const string & s, size_t start, char key );
    242244size_t find( const string & s, size_t start, const string & key );
    243 size_t find( const string & s, size_t start, const char * key );
    244 size_t find( const string & s, size_t start, const char * key, size_t keysize );
     245size_t find( const string & s, size_t start, const char key[] );
     246size_t find( const string & s, size_t start, const char key[], size_t keysize );
    245247
    246248static inline bool includes( const string & s, char key ) { return find( s, key ) < len( s ); }
    247 static inline bool includes( const string & s, const char * key ) { return find( s, key ) < len( s ); }
     249static inline bool includes( const string & s, const char key[] ) { return find( s, key ) < len( s ); }
    248250static inline bool includes( const string & s, const string & key ) { return find( s, key ) < len( s ); }
    249 static inline bool includes( const string & s, const char * key, size_t keysize ){ return find( s, key, keysize ) < len( s ); }
     251static inline bool includes( const string & s, const char key[], size_t keysize ){ return find( s, key, keysize ) < len( s ); }
    250252
    251253bool startsWith( const string & s, const string & prefix );
    252 bool startsWith( const string & s, const char * prefix );
    253 bool startsWith( const string & s, const char * prefix, size_t prefixsize );
     254bool startsWith( const string & s, const char prefix[] );
     255bool startsWith( const string & s, const char prefix[], size_t prefixsize );
    254256
    255257bool endsWith( const string & s, const string & suffix );
    256 bool endsWith( const string & s, const char * suffix );
    257 bool endsWith( const string & s, const char * suffix, size_t suffixsize );
     258bool endsWith( const string & s, const char suffix[] );
     259bool endsWith( const string & s, const char suffix[], size_t suffixsize );
    258260
    259261// Slicing
     
    264266static inline string ?()( string & s, char m ) { return s( find( s, m ), 1 )`share; }
    265267static inline string ?()( const string & s, char m ) { string & w = (string &)s; return w( find( s, m ), 1 )`share; } // FIX ME
    266 static inline string ?()( string & s, const char * m ) { return s( find( s, m ), len( m ) )`share; }
    267 static inline string ?()( const string & s, const char * m ) { string & w = (string &)s; return w( find( s, m ), len( m ) )`share; } // FIX ME
     268static inline string ?()( string & s, const char m[] ) { return s( find( s, m ), len( m ) )`share; }
     269static inline string ?()( const string & s, const char m[] ) { string & w = (string &)s; return w( find( s, m ), len( m ) )`share; } // FIX ME
    268270static inline string ?()( string & s, const string & m ) { return s( find( s, m ), len( m ) )`share; }
    269271static inline string ?()( const string & s, const string & m ) { string & w = (string &)s; return w( find( s, m ), len( m ) )`share; } // FIX ME
     
    278280
    279281void ?{}( charclass &, const string & chars );
    280 void ?{}( charclass &, const char * chars );
    281 void ?{}( charclass &, const char * chars, size_t charssize );
     282void ?{}( charclass &, const char chars[] );
     283void ?{}( charclass &, const char chars[], size_t charssize );
    282284void ^?{}( charclass & );
    283285
    284286size_t include( const string & s, const charclass & mask );
    285 static inline size_t include( const string & s, const char * mask ) { return include( s, (charclass){ mask } ); }
     287static inline size_t include( const string & s, const char mask[] ) { return include( s, (charclass){ mask } ); }
    286288static inline size_t include( const string & s, const string & mask ) { return include( s, (charclass){ mask } ); }
    287 static inline size_t include( const char * cs, const charclass & mask ) { return include( (string){ cs }, mask ); }
    288 static inline size_t include( const char * cs, const char * mask ) { return include( (string){ cs }, (charclass){ mask } ); }
    289 static inline size_t include( const char * cs, const string & mask ) { return include( (string){ cs }, (charclass){ mask } ); }
     289static inline size_t include( const char cs[], const charclass & mask ) { return include( (string){ cs }, mask ); }
     290static inline size_t include( const char cs[], const char mask[] ) { return include( (string){ cs }, (charclass){ mask } ); }
     291static inline size_t include( const char cs[], const string & mask ) { return include( (string){ cs }, (charclass){ mask } ); }
    290292
    291293static inline string include( const string & s, const charclass & mask ) { return s( 0, include( s, mask ) ); }
    292 static inline string include( const string & s, const char * mask ) { return s( 0, include( s, (charclass){ mask } ) ); }
     294static inline string include( const string & s, const char mask[] ) { return s( 0, include( s, (charclass){ mask } ) ); }
    293295static inline string include( const string & s, const string & mask ) { return s( 0, include( s, (charclass){ mask } ) ); }
    294 static inline string include( const char * cs, const charclass & mask ) { const string s = cs; return s( 0, include( s, mask ) ); }
    295 static inline string include( const char * cs, const char * mask ) { const string s = cs; return s( 0, include( s, (charclass){ mask } ) ); }
    296 static inline string include( const char * cs, const string & mask ) { const string s = cs; return s( 0, include( s, (charclass){ mask } ) ); }
     296static inline string include( const char cs[], const charclass & mask ) { const string s = cs; return s( 0, include( s, mask ) ); }
     297static inline string include( const char cs[], const char mask[] ) { const string s = cs; return s( 0, include( s, (charclass){ mask } ) ); }
     298static inline string include( const char cs[], const string & mask ) { const string s = cs; return s( 0, include( s, (charclass){ mask } ) ); }
    297299
    298300size_t exclude( const string & s, const charclass & mask );
    299 static inline size_t exclude( const string & s, const char * mask ) { return exclude( s, (charclass){ mask } ); }
     301static inline size_t exclude( const string & s, const char mask[] ) { return exclude( s, (charclass){ mask } ); }
    300302static inline size_t exclude( const string & s, const string & mask ) { return exclude( s, (charclass){ mask } ); }
    301 static inline size_t exclude( const char * cs, const charclass & mask ) { return exclude( (string){ cs }, mask ); }
    302 static inline size_t exclude( const char * cs, const string & mask ) { return exclude( (string){ cs }, (charclass){ mask } ); }
    303 static inline size_t exclude( const char * cs, const char * mask ) { return exclude( (string){ cs }, (charclass){ mask } ); }
     303static inline size_t exclude( const char cs[], const charclass & mask ) { return exclude( (string){ cs }, mask ); }
     304static inline size_t exclude( const char cs[], const string & mask ) { return exclude( (string){ cs }, (charclass){ mask } ); }
     305static inline size_t exclude( const char cs[], const char mask[] ) { return exclude( (string){ cs }, (charclass){ mask } ); }
    304306
    305307static inline string exclude( const string & s, const charclass & mask ) { return s( 0, exclude( s, mask ) ); }
    306 static inline string exclude( const string & s, const char * mask ) { return s( 0, exclude( s, (charclass){ mask } ) ); }
     308static inline string exclude( const string & s, const char mask[] ) { return s( 0, exclude( s, (charclass){ mask } ) ); }
    307309static inline string exclude( const string & s, const string & mask ) { return s( 0, exclude( s, (charclass){ mask } ) ); }
    308 static inline string exclude( const char * cs, const charclass & mask ) { const string s = cs; return s( 0, exclude( s, mask ) ); }
    309 static inline string exclude( const char * cs, const string & mask ) { const string s = cs; return s( 0, exclude( s, (charclass){ mask } ) ); }
    310 static inline string exclude( const char * cs, const char * mask ) { const string s = cs; return s( 0, exclude( s, (charclass){ mask } ) ); }
     310static inline string exclude( const char cs[], const charclass & mask ) { const string s = cs; return s( 0, exclude( s, mask ) ); }
     311static inline string exclude( const char cs[], const string & mask ) { const string s = cs; return s( 0, exclude( s, (charclass){ mask } ) ); }
     312static inline string exclude( const char cs[], const char mask[] ) { const string s = cs; return s( 0, exclude( s, (charclass){ mask } ) ); }
    311313
    312314size_t include( const string & s, int (* f)( int ) );   // for C character-class functions, e.g., isdigit
    313 static inline size_t include( const char * cs, int (* f)( int ) ) { return include( (string){ cs }, f ); }
     315static inline size_t include( const char cs[], int (* f)( int ) ) { return include( (string){ cs }, f ); }
    314316static inline string include( const string & s, int (* f)( int ) ) { return s( 0, include( s, f ) ); }
    315 static inline string include( const char * cs, int (* f)( int ) ) { const string s = cs; return s( 0, include( s, f ) ); }
     317static inline string include( const char cs[], int (* f)( int ) ) { const string s = cs; return s( 0, include( s, f ) ); }
    316318
    317319static inline size_t include( const string & s, bool (* f)( char ) ) { return include( s, (int (*)( int ))f ); }
    318 static inline size_t include( const char * cs, bool (* f)( char ) ) { return include( (string){ cs }, f ); }
     320static inline size_t include( const char cs[], bool (* f)( char ) ) { return include( (string){ cs }, f ); }
    319321static inline string include( const string & s, bool (* f)( char ) ) { return s( 0, include( s, f ) ); }
    320 static inline string include( const char * cs, bool (* f)( char ) ) { const string s = cs; return s( 0, include( s, f ) ); }
     322static inline string include( const char cs[], bool (* f)( char ) ) { const string s = cs; return s( 0, include( s, f ) ); }
    321323
    322324size_t exclude( const string & s, int (* f)( int ) );   // for C character-class functions, e.g., isdigit
    323 static inline size_t exclude( const char * cs, int (* f)( int ) ) { return exclude( (string){ cs }, f ); }
     325static inline size_t exclude( const char cs[], int (* f)( int ) ) { return exclude( (string){ cs }, f ); }
    324326static inline string exclude( const string & s, int (* f)( int ) ) { return s( 0, exclude( s, f ) ); }
    325 static inline string exclude( const char * cs, int (* f)( int ) ) { const string s = cs; return s( 0, exclude( s, f ) ); }
     327static inline string exclude( const char cs[], int (* f)( int ) ) { const string s = cs; return s( 0, exclude( s, f ) ); }
    326328
    327329static inline size_t exclude( const string & s, bool (* f)( char ) ) { return exclude( s, (int (*)( int ))f ); }
    328 static inline size_t exclude( const char * cs, bool (* f)( char ) ) { return exclude( (string){ cs }, f ); }
     330static inline size_t exclude( const char cs[], bool (* f)( char ) ) { return exclude( (string){ cs }, f ); }
    329331static inline string exclude( const string & s, bool (* f)( char ) ) { return s( 0, exclude( s, f ) ); }
    330 static inline string exclude( const char * cs, bool (* f)( char ) ) { const string s = cs; return s( 0, exclude( s, f ) ); }
     332static inline string exclude( const char cs[], bool (* f)( char ) ) { const string s = cs; return s( 0, exclude( s, f ) ); }
    331333
    332334string replace( const string & s, const string & from, const string & to );
    333 static inline string replace( const char * cs, const char * from, const char * to ) { return replace( (string){ cs }, (string){ from }, (string){ to } ); }
    334 static inline string replace( const string & s, const char * from, const char * to ) { return replace( s, (string){ from }, (string){ to } ); }
    335 static inline string replace( const string & s, const char * from, const string & to ) { return replace( s, (string){ from }, to ); }
    336 static inline string replace( const string & s, string & from, const char * to ) { return replace( s, from, (string){ to } ); }
     335static inline string replace( const char cs[], const char from[], const char to[] ) { return replace( (string){ cs }, (string){ from }, (string){ to } ); }
     336static inline string replace( const string & s, const char from[], const char to[] ) { return replace( s, (string){ from }, (string){ to } ); }
     337static inline string replace( const string & s, const char from[], const string & to ) { return replace( s, (string){ from }, to ); }
     338static inline string replace( const string & s, string & from, const char to[] ) { return replace( s, from, (string){ to } ); }
    337339
    338340string translate( const string & s, int (* f)( int ) ); // for C character-class functions, e.g., isdigit
    339 static inline string translate( const char * cs, int (* f)( int ) ) { return translate( (string){ cs }, f ); }
     341static inline string translate( const char cs[], int (* f)( int ) ) { return translate( (string){ cs }, f ); }
    340342
    341343static inline string translate( const string & s, bool (* f)( char ) ) { return translate( s, (int (*)( int ))f ); }
    342 static inline string translate( const char * cs, bool (* f)( char ) ) { return translate( (string){ cs }, f ); }
     344static inline string translate( const char cs[], bool (* f)( char ) ) { return translate( (string){ cs }, f ); }
    343345
    344346#ifndef _COMPILING_STRING_CFA_
Note: See TracChangeset for help on using the changeset viewer.