diff options
-rw-r--r-- | tag.c | 22 |
1 files changed, 6 insertions, 16 deletions
diff --git a/tag.c b/tag.c index 13e06f3..cae5f03 100644 --- a/tag.c +++ b/tag.c @@ -21,28 +21,18 @@ #include "chat.h" -#define GLOBAL_TAGS \ - X(TagNone, 0, "<none>") \ - X(TagStatus, 1, "<status>") \ - X(TagRaw, 2, "<raw>") -enum { GlobalTagsLen = 3 }; - -#define X(tag, id, name) const struct Tag tag = { id, name }; -GLOBAL_TAGS -#undef X - static struct { char *name[TagsLen]; size_t len; } tags = { - .name = { -#define X(_, id, name) [id] = name, - GLOBAL_TAGS -#undef X - }, - .len = GlobalTagsLen, + .name = { "<none>", "<status>", "<raw>" }, + .len = 3, }; +const struct Tag TagNone = { 0, "<none>" }; +const struct Tag TagStatus = { 1, "<status>" }; +const struct Tag TagRaw = { 2, "<raw>" }; + struct Tag tagFind(const char *name) { for (size_t id = 0; id < tags.len; ++id) { if (strcmp(tags.name[id], name)) continue; |