Code

builtin-branch: factor out merge_filter matching
authorLars Hjemli <hjemli@gmail.com>
Sat, 26 Jul 2008 10:27:24 +0000 (12:27 +0200)
committerJunio C Hamano <gitster@pobox.com>
Sun, 27 Jul 2008 21:14:01 +0000 (14:14 -0700)
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>
builtin-branch.c

index 675a9b163786672fb3f926247efb37a552d89060..c0f1c2ede142e8d5acc0d7b0788600d12cff1041 100644 (file)
@@ -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: