From ae57b6ca8664e00ff4d9544339dbf29a41138040 Mon Sep 17 00:00:00 2001
From: James R <justsomejames2@gmail.com>
Date: Tue, 6 Jul 2021 20:23:38 -0700
Subject: [PATCH] MORE MACROS

I just can't stop myself!
---
 src/lua_hook.h    | 10 +++++++---
 src/lua_hooklib.c | 12 +++++++-----
 2 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/src/lua_hook.h b/src/lua_hook.h
index 223b83c61f..1af1697a7b 100644
--- a/src/lua_hook.h
+++ b/src/lua_hook.h
@@ -90,9 +90,13 @@ grepped and found in the lists above.
 #define        HOOK(name)       hook_ ## name
 #define STRING_HOOK(name) stringhook_ ## name
 
-enum {   MOBJ_HOOK_LIST   (MOBJ_HOOK)    MOBJ_HOOK(MAX) };
-enum {        HOOK_LIST        (HOOK)         HOOK(MAX) };
-enum { STRING_HOOK_LIST (STRING_HOOK)  STRING_HOOK(MAX) };
+#define ENUM(X) enum { X ## _LIST (X)  X(MAX) }
+
+ENUM   (MOBJ_HOOK);
+ENUM        (HOOK);
+ENUM (STRING_HOOK);
+
+#undef ENUM
 
 /* dead simple, LUA_HOOK(GameQuit) */
 #define LUA_HOOK(type) LUA_HookVoid(HOOK(type))
diff --git a/src/lua_hooklib.c b/src/lua_hooklib.c
index ce1b16f75f..5815f17b32 100644
--- a/src/lua_hooklib.c
+++ b/src/lua_hooklib.c
@@ -31,12 +31,14 @@
                                   ABSTRACTION
    ========================================================================= */
 
-static const char * const mobjHookNames[] = { MOBJ_HOOK_LIST (TOSTR)  NULL };
-static const char * const     hookNames[] = {      HOOK_LIST (TOSTR)  NULL };
+#define LIST(id, M) \
+	static const char * const id [] = { M (TOSTR)  NULL }
 
-static const char * const stringHookNames[] = {
-	STRING_HOOK_LIST (TOSTR)  NULL
-};
+LIST   (mobjHookNames,   MOBJ_HOOK_LIST);
+LIST       (hookNames,        HOOK_LIST);
+LIST (stringHookNames, STRING_HOOK_LIST);
+
+#undef LIST
 
 typedef struct {
 	int numHooks;
-- 
GitLab