diff options
author | Jacob Keller <jacob.keller@gmail.com> | 2016-02-29 14:58:34 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-03-01 12:24:15 -0800 |
commit | e70986d72515b7601aea7d8d86a9d3bed53866f3 (patch) | |
tree | 96d0f36576ee89c454913b92d372096215a70cd7 | |
parent | submodule: fix segmentation fault in submodule--helper clone (diff) | |
download | tgif-e70986d72515b7601aea7d8d86a9d3bed53866f3.tar.xz |
quote: implement sq_quotef()
Signed-off-by: Jacob Keller <jacob.keller@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | quote.c | 13 | ||||
-rw-r--r-- | quote.h | 3 |
2 files changed, 16 insertions, 0 deletions
@@ -43,6 +43,19 @@ void sq_quote_buf(struct strbuf *dst, const char *src) free(to_free); } +void sq_quotef(struct strbuf *dst, const char *fmt, ...) +{ + struct strbuf src = STRBUF_INIT; + + va_list ap; + va_start(ap, fmt); + strbuf_vaddf(&src, fmt, ap); + va_end(ap); + + sq_quote_buf(dst, src.buf); + strbuf_release(&src); +} + void sq_quote_argv(struct strbuf *dst, const char** argv, size_t maxlen) { int i; @@ -25,10 +25,13 @@ struct strbuf; * sq_quote_buf() writes to an existing buffer of specified size; it * will return the number of characters that would have been written * excluding the final null regardless of the buffer size. + * + * sq_quotef() quotes the entire formatted string as a single result. */ extern void sq_quote_buf(struct strbuf *, const char *src); extern void sq_quote_argv(struct strbuf *, const char **argv, size_t maxlen); +extern void sq_quotef(struct strbuf *, const char *fmt, ...); /* This unwraps what sq_quote() produces in place, but returns * NULL if the input does not look like what sq_quote would have |