From 2fad5783762c2f2868c8b5239835d54de23912d3 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 15 Jan 2009 00:21:08 +0100 Subject: tag: added tag_get_value() --- src/tag.c | 12 +++++++++--- src/tag.h | 7 +++++++ 2 files changed, 16 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/tag.c b/src/tag.c index 285afe84c..edef3aedd 100644 --- a/src/tag.c +++ b/src/tag.c @@ -365,16 +365,22 @@ tag_merge(const struct tag *base, const struct tag *add) return ret; } -bool tag_has_type(const struct tag *tag, enum tag_type type) +const char * +tag_get_value(const struct tag *tag, enum tag_type type) { assert(tag != NULL); assert(type < TAG_NUM_OF_ITEM_TYPES); for (unsigned i = 0; i < tag->numOfItems; i++) if (tag->items[i]->type == type) - return true; + return tag->items[i]->value; + + return NULL; +} - return false; +bool tag_has_type(const struct tag *tag, enum tag_type type) +{ + return tag_get_value(tag, type) != NULL; } int tag_equal(const struct tag *tag1, const struct tag *tag2) diff --git a/src/tag.h b/src/tag.h index a37408819..2347801e3 100644 --- a/src/tag.h +++ b/src/tag.h @@ -109,6 +109,13 @@ tag_is_empty(const struct tag *tag) return tag->numOfItems == 0; } +/** + * Returns the first value of the specified tag type, or NULL if none + * is present in this tag object. + */ +const char * +tag_get_value(const struct tag *tag, enum tag_type type); + /** * Checks whether the tag contains one or more items with * the specified type. -- cgit v1.2.3