From e71c4a88f65ca1d325f52b19bf79c3660eab50f7 Mon Sep 17 00:00:00 2001 From: Paul-Sebastian Ungureanu Date: Mon, 25 Feb 2019 23:16:06 +0000 Subject: strbuf.c: add `strbuf_join_argv()` Implement `strbuf_join_argv()` to join arguments into a strbuf. Signed-off-by: Paul-Sebastian Ungureanu Signed-off-by: Thomas Gummerer Signed-off-by: Junio C Hamano --- strbuf.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'strbuf.h') diff --git a/strbuf.h b/strbuf.h index fc40873b65..be02150df3 100644 --- a/strbuf.h +++ b/strbuf.h @@ -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 -- cgit v1.2.3 From 5ef264dbdbc48b44ad5fc37e7542f3dc70e3e8c5 Mon Sep 17 00:00:00 2001 From: Paul-Sebastian Ungureanu Date: Mon, 25 Feb 2019 23:16:07 +0000 Subject: strbuf.c: add `strbuf_insertf()` and `strbuf_vinsertf()` Implement `strbuf_insertf()` and `strbuf_vinsertf()` to insert data using a printf format string. Original-idea-by: Johannes Schindelin Signed-off-by: Paul-Sebastian Ungureanu Helped-by: Johannes Sixt Signed-off-by: Thomas Gummerer Signed-off-by: Junio C Hamano --- strbuf.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'strbuf.h') diff --git a/strbuf.h b/strbuf.h index be02150df3..8f8fe01e68 100644 --- a/strbuf.h +++ b/strbuf.h @@ -244,6 +244,15 @@ void strbuf_addchars(struct strbuf *sb, int c, size_t n); */ void strbuf_insert(struct strbuf *sb, size_t pos, const void *, size_t); +/** + * Insert data to the given position of the buffer giving a printf format + * string. The contents will be shifted, not overwritten. + */ +void strbuf_vinsertf(struct strbuf *sb, size_t pos, const char *fmt, + va_list ap); + +void strbuf_insertf(struct strbuf *sb, size_t pos, const char *fmt, ...); + /** * Remove given amount of data from a given position of the buffer. */ -- cgit v1.2.3