From 0e3dd1a83f7b18cf853a7eee0dc933c46b17f457 Mon Sep 17 00:00:00 2001
From: biglyderv <eggseggsarecool+git@gmail.com>
Date: Thu, 27 Mar 2025 09:51:49 -0400
Subject: [PATCH] 32-bit support, compile wrapper

---
 .gitignore    |  4 +++-
 src/command.c | 35 ++++-------------------------------
 wrap.sh       |  5 +++++
 3 files changed, 12 insertions(+), 32 deletions(-)
 create mode 100755 wrap.sh

diff --git a/.gitignore b/.gitignore
index 6ffd8c6..7ac3b40 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,7 @@
 /bin/elem
 /bin/elem.exe
+/bin/elem_32.exe
 /inv.txt
 /inv_users.txt
-/polls.txt
\ No newline at end of file
+/polls.txt
+/elem.tar.gz
\ No newline at end of file
diff --git a/src/command.c b/src/command.c
index 0392267..bdd3e1f 100644
--- a/src/command.c
+++ b/src/command.c
@@ -46,16 +46,7 @@ int sort_comp(const void *a, const void *b) {
   return strcmp(*(char **)a, *(char **)b);
 }
 
-#if !defined(_WIN32) && (defined(__unix__) || defined(__unix) ||               \
-                         (defined(__APPLE__) && defined(__MACH__)))
-
-int inv_handler(const void *key, unsigned long size, unsigned long val,
-                void *usr)
-#else
-int inv_handler(const void *key, unsigned long long size,
-                unsigned long long val, void *usr)
-#endif
-{
+int inv_handler(const void *key, size_t size, uintptr_t val, void *usr) {
   struct pager *i = usr;
   i->i++;
   if (i->i < i->page * 10 || i->i >= (i->page + 1) * 10) {
@@ -73,19 +64,10 @@ int inv_handler(const void *key, unsigned long long size,
   return 1;
 }
 
-#if !defined(_WIN32) && (defined(__unix__) || defined(__unix) ||               \
-                         (defined(__APPLE__) && defined(__MACH__)))
-
-int polls_handler(const void *key, unsigned long size, unsigned long val,
-                  void *usr)
-#else
-int polls_handler(const void *key, unsigned long long size,
-                  unsigned long long val, void *usr)
-#endif
-{
+int polls_handler(const void *key, size_t size, uintptr_t val, void *usr) {
   struct verifier *verified = (struct verifier *)usr;
 
-  if (((char*) val)[strlen(((char *)val)) - 1] == '\n') {
+  if (((char *)val)[strlen(((char *)val)) - 1] == '\n') {
     ((char *)val)[strlen(((char *)val)) - 1] = '\0';
   }
 
@@ -96,16 +78,7 @@ int polls_handler(const void *key, unsigned long long size,
   return 0;
 }
 
-#if !defined(_WIN32) && (defined(__unix__) || defined(__unix) ||               \
-                         (defined(__APPLE__) && defined(__MACH__)))
-
-int success_handler(const void *key, unsigned long size, unsigned long val,
-                    void *usr)
-#else
-int success_handler(const void *key, unsigned long long size,
-                    unsigned long long val, void *usr)
-#endif
-{
+int success_handler(const void *key, size_t size, uintptr_t val, void *usr) {
   struct succ *verified = (struct succ *)usr;
 
   if ((char *)val != verified->sugg) {
diff --git a/wrap.sh b/wrap.sh
new file mode 100755
index 0000000..0ef25f0
--- /dev/null
+++ b/wrap.sh
@@ -0,0 +1,5 @@
+make
+CC=x86_64-w64-mingw32-gcc BIN=./bin/elem.exe make
+CC=i686-w64-mingw32-gcc BIN=./bin/elem_32.exe make
+rm ./elem.tar.gz
+tar -cvf ./elem.tar.gz bin
\ No newline at end of file