X-Git-Url: https://git.tokkee.org/?p=tig.git;a=blobdiff_plain;f=tig.h;h=ef298c736a1aea2a922e7f92c91499ad2a653826;hp=85b639bea72a0649869e27383bb056bb16b26936;hb=ec002272b4e4ff0d336b332af615681fe14a4f9f;hpb=c8af48119c23e9cc90bbc02b84cf6dca7400cdfc diff --git a/tig.h b/tig.h index 85b639b..ef298c7 100644 --- a/tig.h +++ b/tig.h @@ -236,6 +236,13 @@ struct enum_map { #define ENUM_MAP(name, value) { name, STRING_SIZE(name), value } +#define ENUM_SYM_MACRO(prefix, name) prefix##_##name +#define ENUM_MAP_MACRO(prefix, name) ENUM_MAP(#name, ENUM_SYM_MACRO(prefix, name)) + +#define DEFINE_ENUM(name, info) \ + enum name { info(ENUM_SYM_MACRO) }; \ + static const struct enum_map name##_map[] = { info(ENUM_MAP_MACRO) } + static inline int string_enum_compare(const char *str1, const char *str2, int len) {