mdz_utf8_insertUtf32_string_async - maxdz-gmbh/mdz_unicode GitHub Wiki
Insert UTF-32
string pUtf32Source
in string. UTF-32
characters are converted to UTF-8
before isertion. Size
grows on added bytes. Length
grows on symbols count.
String reserved area and pUtf32Source
->m_pData
should not overlap.
Unicode "combining characters" are not specially-distinguished and counted as a separate UTF-8
symbol.
mdz_bool mdz_utf8_insertUtf32_string_async(
struct mdz_Utf8* pUtf8,
size_t nLeftPos,
const void* pUtf32Source,
mdz_bool bReserve,
struct mdz_asyncData* pAsyncData);
Synchronous version:
mdz_utf8_insertUtf32_string(pUtf8, nLeftPos, pUtf32Source, bReserve);
Parameter | Description |
---|---|
pUtf8 |
pointer to string returned by mdz_utf8_create() or mdz_utf8_create_attached()
|
nLeftPos |
0-based position to insert in symbols. If nLeftPos == Length or -1, items are appended. nLeftPos > Length is not allowed |
pUtf32Source |
pointer to UTF-32 string to insert. String is returned by mdz_utf32_create() or mdz_utf32_create_attached() |
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 pUtf8 == 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_utf8_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 string reserved area and pUtf32Source ->m_pData overlap (MDZ_ERROR_OVERLAP) |
mdz_true | if pUtf32Source == NULL (MDZ_ERROR_SOURCE), or pUtf32Source .Size == 0 (MDZ_ERROR_ZEROCOUNT), or nLeftPos > Length (MDZ_ERROR_BIGLEFT). No insertion is made |
mdz_true | insertion succeeded |