Re: [PATCH 2/2] avoid using sha1_to_hex output as printf format
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jul 8, 2016, 17:09 UTC
- Message-ID
- <xmqqeg74m4zb.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <xmqqinwgm5aa.fsf@gitster.mtv.corp.google.com>
Junio C Hamano <gitster@pobox.com> writes:
> As to the hunk to commit.c that was dropped in this round, the only > caller of print_commit_list() is bisect.c, and it passes "%s\n" to > format_cur and format_last, it seems, so that suggests a more > obvious direction for cleaning things up, I would say.
And the result is a pleasing diffstat.
-- >8 -- Subject: commit.c: remove print_commit_list()
The helper function tries to offer a way to conveniently show the last one differently from others, presumably to allow you to say something like
A, B, and C.
while iterating over a list that has these three elements.
However, there is only one caller, and it passes the same format string "%s\n" for both the last one and the other ones. Retire the helper function and update the caller with a simplified version.
Signed-off-by: Junio C Hamano <gitster@pobox.com> --- bisect.c | 5 ++++- commit.c | 10 ---------- commit.h | 4 ---- 3 files changed, 4 insertions(+), 15 deletions(-)
diff --git a/bisect.c b/bisect.c index dc13319..02f76f0 100644 --- a/bisect.c +++ b/bisect.c @@ -646,7 +646,10 @@ static void exit_if_skipped_commits(struct commit_list *tried, printf("There are only 'skip'ped commits left to test.\n" "The first %s commit could be any of:\n", term_bad); - print_commit_list(tried, "%s\n", "%s\n"); + + for ( ; tried; tried = tried->next) + printf("%s\n", oid_to_hex(&tried->item->object.oid)); + if (bad) printf("%s\n", oid_to_hex(bad)); printf("We cannot bisect more!\n"); diff --git a/commit.c b/commit.c index 3f4f371..bf27972 100644 --- a/commit.c +++ b/commit.c @@ -1617,16 +1617,6 @@ struct commit_list **commit_list_append(struct commit *commit, return &new->next; } -void print_commit_list(struct commit_list *list, - const char *format_cur, - const char *format_last) -{ - for ( ; list; list = list->next) { - const char *format = list->next ? format_cur : format_last; - printf(format, oid_to_hex(&list->item->object.oid)); - } -} - const char *find_commit_header(const char *msg, const char *key, size_t *out_len) { int key_len = strlen(key); diff --git a/commit.h b/commit.h index 78ed513..71693ce 100644 --- a/commit.h +++ b/commit.h @@ -376,10 +376,6 @@ extern int parse_signed_commit(const struct commit *commit, struct strbuf *message, struct strbuf *signature); extern int remove_signature(struct strbuf *buf); -extern void print_commit_list(struct commit_list *list, - const char *format_cur, - const char *format_last); - /* * Check the signature of the given commit. The result of the check is stored * in sig->check_result, 'G' for a good signature, 'U' for a good signature