From f9b9535c6921e096583d1872cbf05cfea2252c11 Mon Sep 17 00:00:00 2001 From: Dirk Hohndel Date: Tue, 11 Nov 2014 02:20:13 -0800 Subject: Add tag helper functions to allow us to count dives with a given tag Signed-off-by: Dirk Hohndel --- dive.c | 22 ++++++++++++++++++++++ dive.h | 3 +++ 2 files changed, 25 insertions(+) diff --git a/dive.c b/dive.c index ccd071ca4..d20c11b68 100644 --- a/dive.c +++ b/dive.c @@ -2490,6 +2490,28 @@ void taglist_init_global() taglist_add_tag(&g_tag_list, default_tags[i]); } +bool taglist_contains(struct tag_entry *tag_list, const char *tag) +{ + while (tag_list) { + if (same_string(tag_list->tag->name, tag)) + return true; + tag_list = tag_list->next; + } + return false; +} + +int count_dives_with_tag(const char *tag) +{ + int i, counter = 0; + struct dive *d; + + for_each_dive (i, d) { + if (taglist_contains(d->tag_list, tag)) + counter++; + } + return counter; +} + struct dive *merge_dives(struct dive *a, struct dive *b, int offset, bool prefer_downloaded) { struct dive *res = alloc_dive(); diff --git a/dive.h b/dive.h index e3c4c74e7..43c322e63 100644 --- a/dive.h +++ b/dive.h @@ -233,6 +233,9 @@ void taglist_cleanup(struct tag_entry **tag_list); void taglist_init_global(); void taglist_free(struct tag_entry *tag_list); +bool taglist_contains(struct tag_entry *tag_list, const char *tag); +int count_dives_with_tag(const char *tag); + struct extra_data { const char *key; const char *value; -- cgit v1.2.3-70-g09d2