diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/tag/TagTable.cxx | 10 | ||||
-rw-r--r-- | src/tag/TagTable.hxx | 9 |
2 files changed, 19 insertions, 0 deletions
diff --git a/src/tag/TagTable.cxx b/src/tag/TagTable.cxx index b51bc35ba..5224404a9 100644 --- a/src/tag/TagTable.cxx +++ b/src/tag/TagTable.cxx @@ -51,3 +51,13 @@ tag_table_lookup_i(const struct tag_table *table, const char *name) return TAG_NUM_OF_ITEM_TYPES; } + +const char * +tag_table_lookup(const tag_table *table, TagType type) +{ + for (; table->name != nullptr; ++table) + if (table->type == type) + return table->name; + + return nullptr; +} diff --git a/src/tag/TagTable.hxx b/src/tag/TagTable.hxx index c050f61ac..423a1e6ad 100644 --- a/src/tag/TagTable.hxx +++ b/src/tag/TagTable.hxx @@ -47,4 +47,13 @@ gcc_pure TagType tag_table_lookup_i(const tag_table *table, const char *name); +/** + * Looks up a #TagType in a tag translation table and returns its + * string representation. Returns nullptr if the specified type was + * not found in the table. + */ +gcc_pure +const char * +tag_table_lookup(const tag_table *table, TagType type); + #endif |