diff options
Diffstat (limited to 'tag.c')
| -rw-r--r-- | tag.c | 49 |
1 files changed, 0 insertions, 49 deletions
@@ -1,53 +1,4 @@ #include "tag.h" #include "link.h" -static struct link * -tagrefs_ffind(struct link *head, struct tag *tag) -{ - struct link *iter; - for (iter = head->next; iter; iter = iter->next) { - if (UPCAST(iter, struct tag_ref)->tag == tag) - return iter; - } - - return NULL; -} - -int -tagrefs_incl(struct link *head, struct tag *tag) -{ - struct link *ref; - - ref = tagrefs_ffind(head, tag); - return ref != NULL; -} - -void -tagrefs_add(struct link *head, struct tag *tag) -{ - struct tag_ref *ref; - - if (tagrefs_incl(head, tag)) - return; - - ref = malloc(sizeof(struct tag_ref)); - ASSERT(ref != NULL); - ref->link = LINK_EMPTY; - ref->tag = tag; - link_push_back(head, &ref->link); -} - -void -tagrefs_rm(struct link *head, struct tag *tag) -{ - struct link *ref; - struct tag_ref *tagref; - - ref = tagrefs_ffind(head, tag); - if (!ref) return; - - tagref = UPCAST(ref, struct tag_ref); - link_pop(ref); - free(tagref); -} |
