void UArray_replaceAnyCase_with_(UArray *self, const UArray *a1, const UArray *a2) { long i; size_t start = 0; UArray visible = UArray_stackRange(self, start, self->size); while ((i = UArray_findAnyCase_(&visible, a1)) != -1) { size_t index = start + i; UArray_removeRange(self, index, a1->size); UArray_at_putAll_(self, index, a2); start = index + a2->size; visible = UArray_stackRange(self, start, self->size - start); } UArray_changed(self); }
void UArray_convertToEncoding_(UArray *self, CENCODING encoding) { switch(encoding) { case CENCODING_ASCII: case CENCODING_UTF8: UArray_convertToUTF8(self); break; case CENCODING_UCS2: UArray_convertToUCS2(self); break; case CENCODING_UCS4: UArray_convertToUCS4(self); break; case CENCODING_NUMBER: UArray_setItemType_(self, CTYPE_uint8_t); break; } self->encoding = encoding; UArray_changed(self); }