Ignore:
File:
1 edited

Legend:

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

    r829a955 rae0c1c3  
    1010// Created On       : Fri Sep 03 11:00:00 2021
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Sep 15 10:26:35 2025
    13 // Update Count     : 394
     12// Last Modified On : Sun Apr 13 07:58:55 2025
     13// Update Count     : 390
    1414//
    1515
     
    9797}
    9898
     99string str( ssize_t rhs ) {
     100        string s = rhs;
     101        return s;
     102}
     103
     104string str( size_t rhs ) {
     105        string s = rhs;
     106        return s;
     107}
     108
     109string str( double rhs ) {
     110        string s = rhs;
     111        return s;
     112}
     113
     114string str( long double rhs ) {
     115        string s = rhs;
     116        return s;
     117}
     118
     119string str( double _Complex rhs ) {
     120        string s = rhs;
     121        return s;
     122}
     123
     124string str( long double _Complex rhs ) {
     125        string s = rhs;
     126        return s;
     127}
     128
    99129void ^?{}( string & s ) {
    100130        ^(*s.inner){};
     
    174204
    175205////////////////////////////////////////////////////////
    176 // C-style
    177 
    178 // safe conversion from string to char *
    179 char * strncpy( char * dst, string & src, size_t n ) {
    180         size_t l = min( n - 1, len( src ) );                            // ensure null terminated
    181         for ( i; l ) dst[i] = src[i];
    182         dst[l] = '\0';
    183         return dst;
    184 }
    185 char * ?=?( char *& dst, string & src ) {
    186         dst = aalloc( len( src ) + 1 );                                 // ensure null terminated
    187         for ( i; len( src ) ) dst[i] = src[i];
    188         dst[len(src)] = '\0';
    189         return dst;
    190 }
    191 void ?{}( char *& dst, string & src ) {
    192         dst = aalloc( len( src ) + 1 );                                 // ensure null terminated
    193         for ( i; len( src ) ) dst[i] = src[i];
    194         dst[len(src)] = '\0';
    195 }
     206// Getter
    196207
    197208size_t strnlen( const string & s, size_t maxlen ) { return min( len( s ), maxlen ); }
     
    244255
    245256string ?()( string & s, ssize_t start, ssize_t len ) {
    246         if ( start < 0 ) start += len( s );
    247         if ( len < 0 ) { len = -len; start -= len - 1; }
    248         if ( start < 0 || start >= len( s ) ) return (string){ "" };
     257        if ( start < 0 ) { start += len( s ); }
     258        if ( len < 0 ) { len = -len; start -= len; }
     259        if ( start >= len( s ) ) return (string){ "" };
    249260        if ( start + len > len( s ) ) len = len( s ) - start;
    250261        string ret = { *s.inner, start, len };
Note: See TracChangeset for help on using the changeset viewer.