| 339 | } |
| 340 | |
| 341 | void StringBuffer::cut(const U32 start, const U32 len) |
| 342 | { |
| 343 | AssertFatal(start < length(), "StringBuffer::cut - invalid start!"); |
| 344 | AssertFatal(start+len <= length(), "StringBuffer::cut - invalid len!"); |
| 345 | AssertFatal(len > 0, "StringBuffer::cut - len >= 1."); |
| 346 | |
| 347 | AssertFatal(mBuffer.last() == 0, "StringBuffer::cut - not a null terminated string! (pre)"); |
| 348 | |
| 349 | // Now snip things. |
| 350 | for(U32 i=start; i<mBuffer.size()-len; i++) |
| 351 | mBuffer[i] = mBuffer[i+len]; |
| 352 | mBuffer.decrement(len); |
| 353 | mBuffer.compact(); |
| 354 | |
| 355 | AssertFatal(mBuffer.last() == 0, "StringBuffer::cut - not a null terminated string! (post)"); |
| 356 | |
| 357 | // mark utf8 buffer dirty |
| 358 | mDirty8 = true; |
| 359 | } |
| 360 | |
| 361 | const UTF16 StringBuffer::getChar(const U32 offset) const |
| 362 | { |