Remove tag X macros again

master
Curtis McEnroe 2019-02-25 14:28:44 -05:00
parent 23ec3fd1b7
commit 238f74efac
No known key found for this signature in database
GPG Key ID: CEA2F97ADCFCD77C
1 changed files with 6 additions and 16 deletions

22
tag.c
View File

@ -21,28 +21,18 @@
#include "chat.h" #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 { static struct {
char *name[TagsLen]; char *name[TagsLen];
size_t len; size_t len;
} tags = { } tags = {
.name = { .name = { "<none>", "<status>", "<raw>" },
#define X(_, id, name) [id] = name, .len = 3,
GLOBAL_TAGS
#undef X
},
.len = GlobalTagsLen,
}; };
const struct Tag TagNone = { 0, "<none>" };
const struct Tag TagStatus = { 1, "<status>" };
const struct Tag TagRaw = { 2, "<raw>" };
struct Tag tagFind(const char *name) { struct Tag tagFind(const char *name) {
for (size_t id = 0; id < tags.len; ++id) { for (size_t id = 0; id < tags.len; ++id) {
if (strcmp(tags.name[id], name)) continue; if (strcmp(tags.name[id], name)) continue;