strbuf.c: add `strbuf_join_argv()`

Implement `strbuf_join_argv()` to join arguments
into a strbuf.

Signed-off-by: Paul-Sebastian Ungureanu <ungureanupaulsebastian@gmail.com>
Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Paul-Sebastian Ungureanu 2019-02-25 23:16:06 +00:00 коммит произвёл Junio C Hamano
Родитель f5116f43f6
Коммит e71c4a88f6
2 изменённых файлов: 22 добавлений и 0 удалений

Просмотреть файл

@ -268,6 +268,21 @@ void strbuf_addbuf(struct strbuf *sb, const struct strbuf *sb2)
strbuf_setlen(sb, sb->len + sb2->len);
}
const char *strbuf_join_argv(struct strbuf *buf,
int argc, const char **argv, char delim)
{
if (!argc)
return buf->buf;
strbuf_addstr(buf, *argv);
while (--argc) {
strbuf_addch(buf, delim);
strbuf_addstr(buf, *(++argv));
}
return buf->buf;
}
void strbuf_addchars(struct strbuf *sb, int c, size_t n)
{
strbuf_grow(sb, n);

Просмотреть файл

@ -288,6 +288,13 @@ static inline void strbuf_addstr(struct strbuf *sb, const char *s)
*/
void strbuf_addbuf(struct strbuf *sb, const struct strbuf *sb2);
/**
* Join the arguments into a buffer. `delim` is put between every
* two arguments.
*/
const char *strbuf_join_argv(struct strbuf *buf, int argc,
const char **argv, char delim);
/**
* This function can be used to expand a format string containing
* placeholders. To that end, it parses the string and calls the specified