diff options
author | Jeff King <peff@peff.net> | 2016-07-08 12:25:23 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-07-08 20:11:23 +0300 |
commit | fa262cac766d383c51e0ead04c62e114a79bd738 (patch) | |
tree | 2f70b803554a41d5eee0e2b5ee4f7bcd846e591e | |
parent | 5c589a73de4394ad125a4effac227b3aec856fa1 (diff) |
walker: let walker_say take arbitrary formats
We take a printf-style format and a single "char *"
parameter, and the format must therefore have at most one
"%s" in it. Besides being error-prone (and tickling
-Wformat-nonliteral), this is unnecessarily restrictive. We
can just provide the usual varargs interface.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | walker.c | 10 | ||||
-rw-r--r-- | walker.h | 3 |
2 files changed, 9 insertions, 4 deletions
@@ -9,10 +9,14 @@ static unsigned char current_commit_sha1[20]; -void walker_say(struct walker *walker, const char *fmt, const char *hex) +void walker_say(struct walker *walker, const char *fmt, ...) { - if (walker->get_verbosely) - fprintf(stderr, fmt, hex); + if (walker->get_verbosely) { + va_list ap; + va_start(ap, fmt); + vfprintf(stderr, fmt, ap); + va_end(ap); + } } static void report_missing(const struct object *obj) @@ -19,7 +19,8 @@ struct walker { }; /* Report what we got under get_verbosely */ -void walker_say(struct walker *walker, const char *, const char *); +__attribute__((format (printf, 2, 3))) +void walker_say(struct walker *walker, const char *fmt, ...); /* Load pull targets from stdin */ int walker_targets_stdin(char ***target, const char ***write_ref); |