strv: introduce strv_join_prefix()
This commit is contained in:
parent
7c1cb6f198
commit
2b9a7d2e96
|
@ -339,21 +339,22 @@ int strv_split_extract(char ***t, const char *s, const char *separators, Extract
|
|||
return (int) n;
|
||||
}
|
||||
|
||||
char *strv_join(char **l, const char *separator) {
|
||||
char *strv_join_prefix(char **l, const char *separator, const char *prefix) {
|
||||
char *r, *e;
|
||||
char **s;
|
||||
size_t n, k;
|
||||
size_t n, k, m;
|
||||
|
||||
if (!separator)
|
||||
separator = " ";
|
||||
|
||||
k = strlen(separator);
|
||||
m = strlen_ptr(prefix);
|
||||
|
||||
n = 0;
|
||||
STRV_FOREACH(s, l) {
|
||||
if (s != l)
|
||||
n += k;
|
||||
n += strlen(*s);
|
||||
n += m + strlen(*s);
|
||||
}
|
||||
|
||||
r = new(char, n+1);
|
||||
|
@ -365,6 +366,9 @@ char *strv_join(char **l, const char *separator) {
|
|||
if (s != l)
|
||||
e = stpcpy(e, separator);
|
||||
|
||||
if (prefix)
|
||||
e = stpcpy(e, prefix);
|
||||
|
||||
e = stpcpy(e, *s);
|
||||
}
|
||||
|
||||
|
|
|
@ -71,7 +71,10 @@ char **strv_split_newlines(const char *s);
|
|||
|
||||
int strv_split_extract(char ***t, const char *s, const char *separators, ExtractFlags flags);
|
||||
|
||||
char *strv_join(char **l, const char *separator);
|
||||
char *strv_join_prefix(char **l, const char *separator, const char *prefix);
|
||||
static inline char *strv_join(char **l, const char *separator) {
|
||||
return strv_join_prefix(l, separator, NULL);
|
||||
}
|
||||
|
||||
char **strv_parse_nulstr(const char *s, size_t l);
|
||||
char **strv_split_nulstr(const char *s);
|
||||
|
|
Loading…
Reference in a new issue