- File:
-
- 1 edited
-
libcfa/src/containers/string_res.hfa (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/containers/string_res.hfa
r08ed947 r6cc87c0 17 17 18 18 #include <fstream.hfa> 19 #include <string.h> // e.g. strlen20 19 21 20 … … 28 27 HandleNode *flink; // forward link 29 28 HandleNode *blink; // backward link 30 VbyteHeap *ulink; // upward link31 29 32 30 char *s; // pointer to byte string … … 34 32 }; // HandleNode 35 33 36 VbyteHeap * DEBUG_string_heap(); 37 size_t DEBUG_string_bytes_in_heap( VbyteHeap * heap ); 34 void ?{}( HandleNode & ); // constructor for header node 35 36 void ?{}( HandleNode &, VbyteHeap & ); // constructor for nodes in the handle list 37 void ^?{}( HandleNode & ); // destructor for handle nodes 38 39 extern VbyteHeap * DEBUG_string_heap; 38 40 size_t DEBUG_string_bytes_avail_until_gc( VbyteHeap * heap ); 39 41 const char * DEBUG_string_heap_start( VbyteHeap * heap ); 40 42 41 void TUNING_set_string_heap_liveness_threshold( double val );42 43 43 44 //######################### String ######################### … … 46 47 struct string_res { 47 48 HandleNode Handle; // chars, start, end, global neighbours 48 bool shareEditSet_owns_ulink;49 49 string_res * shareEditSet_prev; 50 50 string_res * shareEditSet_next; … … 74 74 // Constructors, Assignment Operators, Destructor 75 75 void ?{}(string_res &s); // empty string 76 void ?{}(string_res &s, const char* initial); // copy from string literal (NULL-terminated) 76 77 void ?{}(string_res &s, const char* buffer, size_t bsize); // copy specific length from buffer 77 static inline void ?{}(string_res &s, const char* rhs) { // copy from string literal (NULL-terminated)78 (s){ rhs, strlen(rhs) };79 }80 78 81 79 void ?{}(string_res &s, const string_res & s2) = void; … … 88 86 } 89 87 90 string_res & assign(string_res &s, const char* buffer, size_t bsize); // copy specific length from buffer 91 static inline string_res & ?=?(string_res &s, const char* other) { // copy from string literal (NULL-terminated) 92 return assign(s, other, strlen(other)); 93 } 94 string_res & ?=?(string_res &s, const string_res &other); 95 string_res & ?=?(string_res &s, string_res &other); 96 string_res & ?=?(string_res &s, char other); 88 void assign(string_res &s, const char* buffer, size_t bsize); // copy specific length from buffer 89 void ?=?(string_res &s, const char* other); // copy from string literal (NULL-terminated) 90 void ?=?(string_res &s, const string_res &other); 91 void ?=?(string_res &s, string_res &other); 92 void ?=?(string_res &s, char other); 97 93 98 94 void ^?{}(string_res &s); … … 103 99 104 100 // Concatenation 105 void append(string_res &s, const char* buffer, size_t bsize);106 101 void ?+=?(string_res &s, char other); // append a character 107 102 void ?+=?(string_res &s, const string_res &s2); // append-concatenate to first string 108 static inline void ?+=?(string_res &s, const char* other) { 109 append( s, other, strlen(other) ); 110 } 103 void ?+=?(string_res &s, const char* other); 104 void append(string_res &s, const char* buffer, size_t bsize); 111 105 112 106 // Character access 113 void assignAt(const string_res &s, size_t index, char val);114 107 char ?[?](const string_res &s, size_t index); // Mike changed to ret by val from Sunjay's ref, to match Peter's 115 108 //char codePointAt(const string_res &s, size_t index); // revisit under Unicode … … 128 121 int find(const string_res &s, const char* search); 129 122 int find(const string_res &s, const char* search, size_t searchsize); 130 131 int findFrom(const string_res &s, size_t fromPos, char search);132 int findFrom(const string_res &s, size_t fromPos, const string_res &search);133 int findFrom(const string_res &s, size_t fromPos, const char* search);134 int findFrom(const string_res &s, size_t fromPos, const char* search, size_t searchsize);135 123 136 124 bool includes(const string_res &s, const string_res &search);
Note:
See TracChangeset
for help on using the changeset viewer.