Skip to content

Commit

Permalink
strbuf.c: add strbuf_join_argv()
Browse files Browse the repository at this point in the history
Implement `strbuf_join_argv()` to join arguments
into a strbuf.

Signed-off-by: Paul-Sebastian Ungureanu <[email protected]>
  • Loading branch information
ungps authored and dscho committed Nov 15, 2018
1 parent ab992eb commit 59db786
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 0 deletions.
15 changes: 15 additions & 0 deletions strbuf.c
Original file line number Diff line number Diff line change
Expand Up @@ -259,6 +259,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);
Expand Down
7 changes: 7 additions & 0 deletions strbuf.h
Original file line number Diff line number Diff line change
Expand Up @@ -284,6 +284,13 @@ static inline void strbuf_addstr(struct strbuf *sb, const char *s)
*/
extern void strbuf_addbuf(struct strbuf *sb, const struct strbuf *sb2);

/**
* Join the arguments into a buffer. `delim` is put between every
* two arguments.
*/
extern 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
Expand Down

0 comments on commit 59db786

Please sign in to comment.