- File:
-
- 1 edited
-
libcfa/src/collections/string.cfa (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/collections/string.cfa
r829a955 rae0c1c3 10 10 // Created On : Fri Sep 03 11:00:00 2021 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Sep 15 10:26:35 202513 // Update Count : 39 412 // Last Modified On : Sun Apr 13 07:58:55 2025 13 // Update Count : 390 14 14 // 15 15 … … 97 97 } 98 98 99 string str( ssize_t rhs ) { 100 string s = rhs; 101 return s; 102 } 103 104 string str( size_t rhs ) { 105 string s = rhs; 106 return s; 107 } 108 109 string str( double rhs ) { 110 string s = rhs; 111 return s; 112 } 113 114 string str( long double rhs ) { 115 string s = rhs; 116 return s; 117 } 118 119 string str( double _Complex rhs ) { 120 string s = rhs; 121 return s; 122 } 123 124 string str( long double _Complex rhs ) { 125 string s = rhs; 126 return s; 127 } 128 99 129 void ^?{}( string & s ) { 100 130 ^(*s.inner){}; … … 174 204 175 205 //////////////////////////////////////////////////////// 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 196 207 197 208 size_t strnlen( const string & s, size_t maxlen ) { return min( len( s ), maxlen ); } … … 244 255 245 256 string ?()( 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){ "" }; 249 260 if ( start + len > len( s ) ) len = len( s ) - start; 250 261 string ret = { *s.inner, start, len };
Note:
See TracChangeset
for help on using the changeset viewer.