From a7b8e2e80fdd42a4f24f4543608eff02deb99b04 Mon Sep 17 00:00:00 2001
From: FunkyFr3sh <cc.red.alert.1@googlemail.com>
Date: Mon, 30 Sep 2024 23:46:04 +0200
Subject: [PATCH] move crc32 function

---
 inc/crc32.h |  1 +
 src/crc32.c | 25 +++++++++++++++++++++++++
 src/debug.c |  3 ++-
 src/utils.c | 26 --------------------------
 4 files changed, 28 insertions(+), 27 deletions(-)

diff --git a/inc/crc32.h b/inc/crc32.h
index d842810..f2ddf4b 100644
--- a/inc/crc32.h
+++ b/inc/crc32.h
@@ -6,5 +6,6 @@
 
 
 unsigned long Crc32_ComputeBuf(unsigned long inCrc32, const void* buf, size_t bufLen);
+unsigned long Crc32_FromFile(char* filename);
 
 #endif
diff --git a/src/crc32.c b/src/crc32.c
index 826842f..0befe8e 100644
--- a/src/crc32.c
+++ b/src/crc32.c
@@ -77,6 +77,31 @@ unsigned long Crc32_ComputeBuf( unsigned long inCrc32, const void *buf,
     return( crc32 ^ 0xFFFFFFFF );
 }
 
+unsigned long Crc32_FromFile(char* filename)
+{
+    if (!filename)
+        return 0;
+
+    unsigned long crc32 = 0;
+
+    FILE* fp = fopen(filename, "rb");
+    if (fp)
+    {
+        char buf[1024];
+        for (size_t s = 0; (s = fread(buf, 1, sizeof(buf), fp)) && !ferror(fp);)
+        {
+            crc32 = Crc32_ComputeBuf(crc32, buf, s);
+        }
+
+        if (ferror(fp))
+            crc32 = 0;
+
+        fclose(fp);
+    }
+
+    return crc32;
+}
+
 /*----------------------------------------------------------------------------*\
  *  END OF MODULE: crc32.c
 \*----------------------------------------------------------------------------*/
diff --git a/src/debug.c b/src/debug.c
index 67ef352..ce8fe85 100644
--- a/src/debug.c
+++ b/src/debug.c
@@ -13,6 +13,7 @@
 #include "git.h"
 #include "versionhelpers.h"
 #include "utils.h"
+#include "crc32.h"
 #include "dllmain.h"
 #include "config.h"
 
@@ -268,7 +269,7 @@ void dbg_init()
             TRACE("Wine sysname = %s, release = %s\n", sysname, release);
         }
 
-        TRACE("crc32 = %08X\n", util_get_crc32(exe_path));
+        TRACE("crc32 = %08X\n", Crc32_FromFile(exe_path));
 
         DWORD timestamp = util_get_timestamp(GetModuleHandleA(NULL));
         if (timestamp)
diff --git a/src/utils.c b/src/utils.c
index f057a4e..5db8159 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -12,7 +12,6 @@
 #include "utils.h"
 #include "config.h"
 #include "versionhelpers.h"
-#include "crc32.h"
 
 
 /*
@@ -107,31 +106,6 @@ DWORD util_get_timestamp(HMODULE mod)
     return nt_headers->FileHeader.TimeDateStamp;
 }
 
-unsigned long util_get_crc32(char* filename)
-{
-    if (!filename)
-        return 0;
-
-    unsigned long crc32 = 0;
-
-    FILE* fp = fopen(filename, "rb");
-    if (fp)
-    {
-        char buf[1024];
-        for (size_t s = 0; (s = fread(buf, 1, sizeof(buf), fp)) && !ferror(fp);)
-        {
-            crc32 = Crc32_ComputeBuf(crc32, buf, s);
-        }
-
-        if (ferror(fp))
-            crc32 = 0;
-
-        fclose(fp);
-    }
-
-    return crc32;
-}
-
 FARPROC util_get_iat_proc(HMODULE mod, char* module_name, char* function_name)
 {
     if (!mod || mod == INVALID_HANDLE_VALUE)