From 51183f4ee7b78505af97bae9c28521cb6aed51b4 Mon Sep 17 00:00:00 2001 From: Dirk Hohndel Date: Sat, 2 May 2015 12:16:03 -0700 Subject: Tag list handling: add two new helpers taglist_added() simply figures out the tags that are in the new list but not in the original list. taglist_dump() makes debugging things easier. Signed-off-by: Dirk Hohndel --- dive.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'dive.c') diff --git a/dive.c b/dive.c index 07b057be6..2ecb56d06 100644 --- a/dive.c +++ b/dive.c @@ -2642,7 +2642,29 @@ static bool taglist_contains_all(struct tag_entry *subtl, struct tag_entry *supe subtl = subtl->next; } return true; +} +struct tag_entry *taglist_added(struct tag_entry *original_list, struct tag_entry *new_list) +{ + struct tag_entry *added_list = NULL; + while (new_list) { + if (!taglist_contains(original_list, new_list->tag->name)) + taglist_add_tag(&added_list, new_list->tag->name); + new_list = new_list->next; + } + return added_list; +} + +void dump_taglist(const char *intro, struct tag_entry *tl) +{ + char *comma = ""; + fprintf(stderr, "%s", intro); + while(tl) { + fprintf(stderr, "%s %s", comma, tl->tag->name); + comma = ","; + tl = tl->next; + } + fprintf(stderr, "\n"); } // if tl1 is both a subset and superset of tl2 they must be the same -- cgit v1.2.3-70-g09d2