From 5d36eb91ec7463b48b7c91f8d2f018fc6a3a36a9 Mon Sep 17 00:00:00 2001
From: Kubat <mael.martin31@gmail.com>
Date: Sat, 13 Nov 2021 17:00:01 +0100
Subject: [PATCH] BUILD: Include the STB's dynamic structure header
 implementation in a single source file

---
 CMakeLists.txt      | 1 +
 inc/lektor/stb/ds.h | 2 +-
 src/base/stb.c      | 5 +++++
 3 files changed, 7 insertions(+), 1 deletion(-)
 create mode 100644 src/base/stb.c

diff --git a/CMakeLists.txt b/CMakeLists.txt
index fca00820..a0d44e12 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -133,6 +133,7 @@ set(lektor_base_SOURCES
     src/base/uri.c
     src/base/commands.c
     src/base/os.c
+    src/base/stb.c
 )
 
 set(lektor_net_SOURCES
diff --git a/inc/lektor/stb/ds.h b/inc/lektor/stb/ds.h
index 4c59bcc6..2a0c631e 100644
--- a/inc/lektor/stb/ds.h
+++ b/inc/lektor/stb/ds.h
@@ -535,7 +535,7 @@ extern void *stbds_shmode_func(size_t elemsize, int mode);
 
 #define STBDS_OFFSETOF(var, field) ((char *)&(var)->field - (char *)(var))
 
-#define stbds_header(t)   ((stbds_array_header *)(t)-1)
+#define stbds_header(t)   (((stbds_array_header *)(t)) - 1)
 #define stbds_temp(t)     stbds_header(t)->temp
 #define stbds_temp_key(t) (*(char **)stbds_header(t)->hash_table)
 
diff --git a/src/base/stb.c b/src/base/stb.c
new file mode 100644
index 00000000..28eae51f
--- /dev/null
+++ b/src/base/stb.c
@@ -0,0 +1,5 @@
+/* Include all implementations here to not compile the things or have multiple
+ * defines in multiple places of the same symbols. */
+
+#define STB_DS_IMPLEMENTATION
+#include <lektor/stb/ds.h>
-- 
GitLab