diff options
author | Christian Couder <chriscool@tuxfamily.org> | 2009-04-19 11:55:43 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-05-10 00:30:28 -0700 |
commit | 280e65cbd83a867437cef3543d445013ecbfe29a (patch) | |
tree | 770b0f16b3545239d1924246ab08bf362ac275d7 | |
parent | 1c876546bda5dde35d4ae887ad6d24ed16ec953a (diff) | |
download | git-280e65cbd83a867437cef3543d445013ecbfe29a.tar.gz |
rev-list: refactor printing bisect vars
This simplifies the code, and while at it we create the
"print_commit_list" function that will be reused later.
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | bisect.h | 4 | ||||
-rw-r--r-- | builtin-rev-list.c | 61 |
2 files changed, 37 insertions, 28 deletions
@@ -9,6 +9,10 @@ extern struct commit_list *filter_skipped(struct commit_list *list, struct commit_list **tried, int show_all); +extern void print_commit_list(struct commit_list *list, + const char *format_cur, + const char *format_last); + /* bisect_show_flags flags in struct rev_list_info */ #define BISECT_SHOW_ALL (1<<0) #define BISECT_SHOW_TRIED (1<<1) diff --git a/builtin-rev-list.c b/builtin-rev-list.c index 4c5f5eec0e..35f88ca425 100644 --- a/builtin-rev-list.c +++ b/builtin-rev-list.c @@ -225,20 +225,37 @@ int estimate_bisect_steps(int all) return (e < 3 * x) ? n : n - 1; } +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, sha1_to_hex(list->item->object.sha1)); + } +} + static void show_tried_revs(struct commit_list *tried, int stringed) { printf("bisect_tried='"); - for (;tried; tried = tried->next) { - char *format = tried->next ? "%s|" : "%s"; - printf(format, sha1_to_hex(tried->item->object.sha1)); - } + print_commit_list(tried, "%s|", "%s"); printf(stringed ? "' &&\n" : "'\n"); } +static void print_var_str(const char *var, const char *val, int stringed) +{ + printf("%s='%s'%s\n", var, val, stringed ? " &&" : ""); +} + +static void print_var_int(const char *var, int val, int stringed) +{ + printf("%s=%d%s\n", var, val, stringed ? " &&" : ""); +} + int show_bisect_vars(struct rev_list_info *info, int reaches, int all) { - int cnt, flags = info->bisect_show_flags; - char hex[41] = "", *format; + int cnt, stringed, flags = info->bisect_show_flags; + char hex[41] = ""; struct commit_list *tried; struct rev_info *revs = info->revs; @@ -268,29 +285,17 @@ int show_bisect_vars(struct rev_list_info *info, int reaches, int all) printf("------\n"); } + stringed = flags & BISECT_SHOW_STRINGED; + if (flags & BISECT_SHOW_TRIED) - show_tried_revs(tried, flags & BISECT_SHOW_STRINGED); - format = (flags & BISECT_SHOW_STRINGED) ? - "bisect_rev=%s &&\n" - "bisect_nr=%d &&\n" - "bisect_good=%d &&\n" - "bisect_bad=%d &&\n" - "bisect_all=%d &&\n" - "bisect_steps=%d\n" - : - "bisect_rev=%s\n" - "bisect_nr=%d\n" - "bisect_good=%d\n" - "bisect_bad=%d\n" - "bisect_all=%d\n" - "bisect_steps=%d\n"; - printf(format, - hex, - cnt - 1, - all - reaches - 1, - reaches - 1, - all, - estimate_bisect_steps(all)); + show_tried_revs(tried, stringed); + + print_var_str("bisect_rev", hex, stringed); + print_var_int("bisect_nr", cnt - 1, stringed); + print_var_int("bisect_good", all - reaches - 1, stringed); + print_var_int("bisect_bad", reaches - 1, stringed); + print_var_int("bisect_all", all, stringed); + print_var_int("bisect_steps", estimate_bisect_steps(all), 0); return 0; } |