All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paul-Sebastian Ungureanu <ungureanupaulsebastian@gmail.com>
To: git@vger.kernel.org
Cc: t.gummerer@gmail.com
Subject: [PATCH v10 02/21] strbuf.c: add `strbuf_join_argv()`
Date: Mon, 15 Oct 2018 01:11:08 +0300	[thread overview]
Message-ID: <ed065178766fd1f1f5856422af0db785dde40f40.1539553398.git.ungureanupaulsebastian@gmail.com> (raw)
In-Reply-To: <cover.1539553398.git.ungureanupaulsebastian@gmail.com>

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

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

diff --git a/strbuf.c b/strbuf.c
index 64041c3c24..c8a104099a 100644
--- a/strbuf.c
+++ b/strbuf.c
@@ -259,6 +259,19 @@ void strbuf_addbuf(struct strbuf *sb, const struct strbuf *sb2)
 	strbuf_setlen(sb, sb->len + sb2->len);
 }
 
+void strbuf_join_argv(struct strbuf *buf,
+		      int argc, const char **argv, char delim)
+{
+	if (!argc)
+		return;
+
+	strbuf_addstr(buf, *argv);
+	while (--argc) {
+		strbuf_addch(buf, delim);
+		strbuf_addstr(buf, *(++argv));
+	}
+}
+
 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..4ec912f4b7 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);
 
+/**
+ * Join the arguments into a buffer. `delim` is put between every
+ * two arguments.
+ */
+extern void 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.g10a62394e7


  parent reply	other threads:[~2018-10-14 22:13 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <https://public-inbox.org/git/cover.1537913094.git.ungureanupaulsebastian@gmail.com/>
2018-10-14 22:11 ` [PATCH v10 00/21] Convert "git stash" to C builtin Paul-Sebastian Ungureanu
2018-10-14 22:11   ` [PATCH v10 01/21] sha1-name.c: add `get_oidf()` which acts like `get_oid()` Paul-Sebastian Ungureanu
2018-10-14 22:11   ` Paul-Sebastian Ungureanu [this message]
2018-10-14 22:11   ` [PATCH v10 03/21] stash: improve option parsing test coverage Paul-Sebastian Ungureanu
2018-10-14 22:11   ` [PATCH v10 04/21] t3903: modernize style Paul-Sebastian Ungureanu
2018-10-14 22:11   ` [PATCH v10 05/21] stash: rename test cases to be more descriptive Paul-Sebastian Ungureanu
2018-10-14 22:11   ` [PATCH v10 06/21] stash: add tests for `git stash show` config Paul-Sebastian Ungureanu
2018-10-14 22:11   ` [PATCH v10 07/21] stash: mention options in `show` synopsis Paul-Sebastian Ungureanu
2018-10-14 22:11   ` [PATCH v10 08/21] stash: convert apply to builtin Paul-Sebastian Ungureanu
2018-10-15  9:10     ` Johannes Schindelin
2018-10-15 20:32       ` Thomas Gummerer
2018-10-14 22:11   ` [PATCH v10 09/21] stash: convert drop and clear " Paul-Sebastian Ungureanu
2018-10-14 22:11   ` [PATCH v10 10/21] stash: convert branch " Paul-Sebastian Ungureanu
2018-10-14 22:11   ` [PATCH v10 11/21] stash: convert pop " Paul-Sebastian Ungureanu
2018-10-14 22:11   ` [PATCH v10 12/21] stash: convert list " Paul-Sebastian Ungureanu
2018-10-14 22:11   ` [PATCH v10 13/21] stash: convert show " Paul-Sebastian Ungureanu
2018-10-14 22:11   ` [PATCH v10 14/21] stash: convert store " Paul-Sebastian Ungureanu
2018-10-14 22:11   ` [PATCH v10 15/21] stash: convert create " Paul-Sebastian Ungureanu
2018-10-14 22:11   ` [PATCH v10 16/21] stash: convert push " Paul-Sebastian Ungureanu
2018-10-14 22:11   ` [PATCH v10 17/21] stash: make push -q quiet Paul-Sebastian Ungureanu
2018-10-14 22:11   ` [PATCH v10 18/21] stash: convert save to builtin Paul-Sebastian Ungureanu
2018-10-15 22:05     ` Thomas Gummerer
2018-10-14 22:11   ` [PATCH v10 19/21] stash: convert `stash--helper.c` into `stash.c` Paul-Sebastian Ungureanu
2018-10-15 22:03     ` Thomas Gummerer
2018-10-14 22:11   ` [PATCH v10 20/21] stash: optimize `get_untracked_files()` and `check_changes()` Paul-Sebastian Ungureanu
2018-10-14 22:11   ` [PATCH v10 21/21] stash: replace all `write-tree` child processes with API calls Paul-Sebastian Ungureanu
2018-10-15 22:10   ` [PATCH v10 00/21] Convert "git stash" to C builtin Thomas Gummerer
2018-10-16  3:41     ` Junio C Hamano
2018-10-16 10:22     ` Johannes Schindelin
2018-10-16 19:59       ` Thomas Gummerer

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=ed065178766fd1f1f5856422af0db785dde40f40.1539553398.git.ungureanupaulsebastian@gmail.com \
    --to=ungureanupaulsebastian@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=t.gummerer@gmail.com \
    /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.