Changeset 829a955 for libcfa/src
- Timestamp:
- Sep 15, 2025, 5:11:15 PM (10 days ago)
- Branches:
- master
- Children:
- 8317671
- Parents:
- fae93a40
- Location:
- libcfa/src/collections
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/collections/string.cfa
rfae93a40 r829a955 10 10 // Created On : Fri Sep 03 11:00:00 2021 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun Apr 13 07:58:55 202513 // Update Count : 39 012 // Last Modified On : Mon Sep 15 10:26:35 2025 13 // Update Count : 394 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 129 99 void ^?{}( string & s ) { 130 100 ^(*s.inner){}; … … 204 174 205 175 //////////////////////////////////////////////////////// 206 // Getter 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 } 207 196 208 197 size_t strnlen( const string & s, size_t maxlen ) { return min( len( s ), maxlen ); } … … 255 244 256 245 string ?()( string & s, ssize_t start, ssize_t len ) { 257 if ( start < 0 ) { start += len( s ); }258 if ( len < 0 ) { len = -len; start -= len ; }259 if ( start >= len( s ) ) return (string){ "" };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){ "" }; 260 249 if ( start + len > len( s ) ) len = len( s ) - start; 261 250 string ret = { *s.inner, start, len }; -
libcfa/src/collections/string.hfa
rfae93a40 r829a955 10 10 // Created On : Fri Sep 03 11:00:00 2021 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Sep 5 15:51:08 202513 // Update Count : 31 012 // Last Modified On : Sun Sep 14 10:58:28 2025 13 // Update Count : 311 14 14 // 15 15 … … 43 43 void ?{}( string & s, long double _Complex rhs ); 44 44 static inline void ?{}( string & s, int rhs ) { (s){(signed long int) rhs}; } 45 46 // string str( ssize_t rhs );47 // string str( size_t rhs );48 // string str( double rhs );49 // string str( long double rhs );50 // string str( double _Complex rhs );51 // string str( long double _Complex rhs );52 45 53 46 PBOOST string & ?=?( string & s, string c ); … … 68 61 static inline string & strcpy( string & s, const string & c ) { s = c; return s; } 69 62 static inline string & strncpy( string & s, const string & c, size_t n ) { assign( s, c, n ); return s; } 63 char * strncpy( char * dst, string & src, size_t n ); 64 char * ?=?( char *& dst, string & src ); 65 void ?{}( char *& dst, string & src ); 70 66 71 67 // Alternate construction: request shared edits
Note:
See TracChangeset
for help on using the changeset viewer.