tag: added tag_get_value()

This commit is contained in:
Max Kellermann 2009-01-15 00:21:08 +01:00
parent 4847bbaad3
commit 2fad578376
2 changed files with 16 additions and 3 deletions

View File

@ -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 false;
return NULL;
}
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)

View File

@ -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.