summaryrefslogtreecommitdiff
path: root/builtin-branch.c
diff options
context:
space:
mode:
authorLars Hjemli <hjemli@gmail.com>2008-07-26 12:27:24 +0200
committerJunio C Hamano <gitster@pobox.com>2008-07-27 14:14:01 -0700
commit7950cda782fc313569a8a09be0bfab234689627a (patch)
tree188ac29069e3f228fb781fb907ed584ef222b138 /builtin-branch.c
parent346d437aab2496872f477bb759db10a43b5dfb5e (diff)
downloadgit-7950cda782fc313569a8a09be0bfab234689627a.tar.gz
builtin-branch: factor out merge_filter matching
The logic for checking commits against merge_filter will be reused when we recalculate the maxwidth of refnames. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin-branch.c')
-rw-r--r--builtin-branch.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/builtin-branch.c b/builtin-branch.c
index 675a9b1637..c0f1c2ede1 100644
--- a/builtin-branch.c
+++ b/builtin-branch.c
@@ -294,6 +294,17 @@ static void fill_tracking_info(char *stat, const char *branch_name)
sprintf(stat, "[ahead %d, behind %d] ", ours, theirs);
}
+static int matches_merge_filter(struct commit *commit)
+{
+ int is_merged;
+
+ if (merge_filter == NO_FILTER)
+ return 1;
+
+ is_merged = !!(commit->object.flags & UNINTERESTING);
+ return (is_merged == (merge_filter == SHOW_MERGED));
+}
+
static void print_ref_item(struct ref_item *item, int maxwidth, int verbose,
int abbrev, int current)
{
@@ -301,11 +312,8 @@ static void print_ref_item(struct ref_item *item, int maxwidth, int verbose,
int color;
struct commit *commit = item->commit;
- if (merge_filter != NO_FILTER) {
- int is_merged = !!(item->commit->object.flags & UNINTERESTING);
- if (is_merged != (merge_filter == SHOW_MERGED))
- return;
- }
+ if (!matches_merge_filter(commit))
+ return;
switch (item->kind) {
case REF_LOCAL_BRANCH: