@@ -524,6 +524,18 @@ struct commit_list *commit_list_insert(struct commit *item, struct commit_list *
return new_list;
}
+int commit_list_contains(const struct commit_list *l, struct commit *commit)
+{
+ const struct commit_list *item;
+
+ for (item = l; item != NULL; item = item->next) {
+ if (oideq(&item->item->object.oid, &commit->object.oid))
+ return 1;
+ }
+
+ return 0;
+}
+
unsigned commit_list_count(const struct commit_list *l)
{
unsigned c = 0;
@@ -165,6 +165,7 @@ struct commit_list *commit_list_insert(struct commit *item,
struct commit_list **list);
struct commit_list **commit_list_append(struct commit *commit,
struct commit_list **next);
+int commit_list_contains(const struct commit_list *l, struct commit *commit);
unsigned commit_list_count(const struct commit_list *l);
struct commit_list *commit_list_insert_by_date(struct commit *item,
struct commit_list **list);
To avoid naming some commits, name_rev() will need to check if a commit is part of a commit list. Signed-off-by: Alban Gruin <alban.gruin@gmail.com> --- commit.c | 12 ++++++++++++ commit.h | 1 + 2 files changed, 13 insertions(+)