BLI_string_utils: add BLI_string_join_array_by_sep_char
Utility to join strings into a fixed size buffer.
This commit is contained in:
@@ -434,6 +434,29 @@ char *BLI_string_join_array(char *result,
|
||||
return c;
|
||||
}
|
||||
|
||||
/**
|
||||
* A version of #BLI_string_join that takes a separator which can be any character including '\0'.
|
||||
*/
|
||||
char *BLI_string_join_array_by_sep_char(
|
||||
char *result, size_t result_len, char sep, const char *strings[], uint strings_len)
|
||||
{
|
||||
char *c = result;
|
||||
char *c_end = &result[result_len - 1];
|
||||
for (uint i = 0; i < strings_len; i++) {
|
||||
if (i != 0) {
|
||||
if (c < c_end) {
|
||||
*c++ = sep;
|
||||
}
|
||||
}
|
||||
const char *p = strings[i];
|
||||
while (*p && (c < c_end)) {
|
||||
*c++ = *p++;
|
||||
}
|
||||
}
|
||||
*c = '\0';
|
||||
return c;
|
||||
}
|
||||
|
||||
/**
|
||||
* Join an array of strings into a newly allocated, null terminated string.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user