StrMerge
Description
Unsuffixed merge – alias for StrMergeL (L-form), per the project convention that an unsuffixed name lands on the L-form. Callers that need to preserve the source must spell out StrMergeR.
Success
Returns true; str grew by str2->length characters; str2 is in its zero-on-take state (ownership taken).
Failure
Returns false on allocation failure; str2 was already zeroed-on-take, str is unchanged.
Usage example (Cross-references)
Usage examples (Cross-references)
- In
Io.c:1653:
}
}
if (!StrPushBackMany(o, "0x") || !StrMerge(o, &hex)) {
StrDeinit(&hex);
return false;- In
Io.c:1741:
}
}
if (!StrPushBackMany(o, "0x") || !StrMerge(o, &hex)) {
StrDeinit(&hex);
return false;- In
Io.c:1842:
}
if (!StrMerge(o, &temp)) {
StrDeinit(&temp);
return false;- In
Io.c:1942:
}
if (!StrMerge(o, &temp)) {
StrDeinit(&temp);
return false;- In
Io.c:2069:
}
if (!StrMerge(o, &temp)) {
StrDeinit(&temp);
return false;- In
Io.c:2145:
}
if (!StrMerge(o, &temp)) {
StrDeinit(&temp);
return false;- In
Io.c:2958:
return false;
}
if (!StrMerge(o, &bit_str)) {
StrDeinit(&bit_str);
return false;- In
Io.c:3024:
}
if (!StrMerge(o, &temp)) {
StrDeinit(&temp);
return false;- In
Float.c:636:
if (value->exponent >= 0) {
if (!StrMerge(&result, &digits)) {
goto fail;
}- In
Float.c:675:
}
if (!StrMerge(&result, &digits)) {
goto fail;
}- In
Str.Insert.c:313:
// Test StrMerge function (unsuffixed = L-form per convention; src zeroed).
bool test_str_merge(void) {
WriteFmt("Testing StrMerge\n");
DefaultAllocator alloc = DefaultAllocatorInit();- In
Str.Insert.c:321:
// Merge s2 into s1 (L-form; ownership of s2's storage transfers to s1)
StrMerge(&s1, &s2);
// Check that the strings were merged correctly
Last updated on