mirror of
https://github.com/subsurface/subsurface.git
synced 2025-01-31 21:23:24 +00:00
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 <dirk@hohndel.org>
This commit is contained in:
parent
5810aedeac
commit
e077206bb8
2 changed files with 24 additions and 0 deletions
22
dive.c
22
dive.c
|
@ -2645,7 +2645,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
|
||||
|
|
2
dive.h
2
dive.h
|
@ -224,6 +224,8 @@ struct tag_entry {
|
|||
extern struct tag_entry *g_tag_list;
|
||||
|
||||
struct divetag *taglist_add_tag(struct tag_entry **tag_list, const char *tag);
|
||||
struct tag_entry *taglist_added(struct tag_entry *original_list, struct tag_entry *new_list);
|
||||
void dump_taglist(const char *intro, struct tag_entry *tl);
|
||||
|
||||
/*
|
||||
* Writes all divetags in tag_list to buffer, limited by the buffer's (len)gth.
|
||||
|
|
Loading…
Add table
Reference in a new issue