mdz_wchar_insertUtf16_async - maxdz-gmbh/mdz_unicode GitHub Wiki
Insert nCount
UTF-16
characters in string. UTF-16
characters are converted to "wide"-characters before isertion. Size
grows on added "wide"-characters count. Length
grows on added symbols count.
String reserved area and pItems
should not overlap.
mdz_bool mdz_wchar_insertUtf16_async(
struct mdz_Wchar* pWchar,
size_t nLeftPos,
const uint16_t* pItems,
size_t nCount,
enum mdz_endianness enEndianness,
mdz_bool bReserve,
struct mdz_asyncData* pAsyncData);
Synchronous version:
mdz_wchar_insertUtf16(pWchar, nLeftPos, pItems, nCount, enEndianness, bReserve);
Parameter | Description |
---|---|
pWchar |
pointer to string returned by mdz_wchar_create() or mdz_wchar_create_attached()
|
nLeftPos |
0-based position to insert in symbols. "surrogate pairs" count as 1 symbol. If nLeftPos == Length or -1, items are appended. nLeftPos > Length is not allowed |
pItems |
UTF-16 characters to insert |
nCount |
number of UTF-16 characters to insert |
enEndianness |
endianness of UTF-16 characters in pItems . Can be MDZ_ENDIAN_LITTLE for "little-endian" or MDZ_ENDIAN_BIG for "big-endian" |
bReserve |
if mdz_true reserve capacity when there is not enough space for insertion, otherwise mdz_false |
pAsyncData |
pointer to shared async data for asynchronous call, or NULL if call should be synchronous |
Return | Description |
---|---|
mdz_false | if pWchar is NULL
|
mdz_false | if bReserve == mdz_true and memory allocation failed (MDZ_ERROR_ALLOCATION) |
mdz_false | if bReserve == mdz_true and there is not enough capacity for inserted data, but m_pData is attached using mdz_wchar_attachData() (MDZ_ERROR_ATTACHED) |
mdz_false | if bReserve == mdz_false and there is not enough free Capacity in the string (MDZ_ERROR_CAPACITY) |
mdz_false | if pItems contain invalid UTF-16 character(s) (MDZ_ERROR_CONTENT), or invalid enEndianness (MDZ_ERROR_ENDIANNESS) |
mdz_false | if string reserved area and pItems overlap (MDZ_ERROR_OVERLAP) |
mdz_true | if pItems == NULL (MDZ_ERROR_ITEMS), or nCount == 0 (MDZ_ERROR_ZEROCOUNT), or nLeftPos > Length (MDZ_ERROR_BIGLEFT). No insertion is made |
mdz_true | insertion succeeded |