All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paul-Sebastian Ungureanu <ungureanupaulsebastian@gmail.com>
To: git@vger.kernel.org
Subject: [GSoC][PATCH v9 06/21] strbuf.c: add `strbuf_join_argv()`
Date: Wed, 26 Sep 2018 01:33:22 +0300	[thread overview]
Message-ID: <ab5bb135401ed4aff45ec95cbcda79c12961a84a.1537911869.git.ungureanupaulsebastian@gmail.com> (raw)
In-Reply-To: <cover.1537911869.git.ungureanupaulsebastian@gmail.com>

Implement `strbuf_join_argv()` to join arguments.

Signed-off-by: Paul-Sebastian Ungureanu <ungureanupaulsebastian@gmail.com>
---
 strbuf.c | 15 +++++++++++++++
 strbuf.h |  7 +++++++
 2 files changed, 22 insertions(+)

diff --git a/strbuf.c b/strbuf.c
index 64041c3c24..3eb431b2b0 100644
--- a/strbuf.c
+++ b/strbuf.c
@@ -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);
diff --git a/strbuf.h b/strbuf.h
index 60a35aef16..7ed859bb8a 100644
--- a/strbuf.h
+++ b/strbuf.h
@@ -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);
 
+
+/**
+ *
+ */
+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
-- 
2.19.0.rc0.23.g1c0a08a5d3


      parent reply	other threads:[~2018-09-25 22:34 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <cover.1537911869.git.ungureanupaulsebastian@gmail.com>
2018-09-25 22:33 ` [GSoC][PATCH v9 02/21] stash: improve option parsing test coverage Paul-Sebastian Ungureanu
2018-09-25 22:33 ` [GSoC][PATCH v9 03/21] stash: update test cases conform to coding guidelines Paul-Sebastian Ungureanu
2018-09-25 22:33 ` [GSoC][PATCH v9 04/21] stash: rename test cases to be more descriptive Paul-Sebastian Ungureanu
2018-09-25 22:33 ` [GSoC][PATCH v9 05/21] stash: add tests for `git stash show` config Paul-Sebastian Ungureanu
2018-09-25 22:33 ` Paul-Sebastian Ungureanu [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ab5bb135401ed4aff45ec95cbcda79c12961a84a.1537911869.git.ungureanupaulsebastian@gmail.com \
    --to=ungureanupaulsebastian@gmail.com \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.