Hi, My patches had an error, instead of HANDLE there should have been intptr_t
diff -up chicken-5.3.0rc1/file.c.orig chicken-5.3.0rc1/file.c --- chicken-5.3.0rc1/file.c.orig 2021-08-24 15:19:00.847104480 +0300 +++ chicken-5.3.0rc1/file.c 2021-08-24 15:36:10.889230349 +0300 @@ -46,7 +46,7 @@ struct dirent typedef struct { struct _finddata_t fdata; - int handle; + intptr_t handle; struct dirent current; } DIR; diff -up chicken-5.3.0rc1/file.scm.orig chicken-5.3.0rc1/file.scm --- chicken-5.3.0rc1/file.scm.orig 2021-08-24 15:18:56.063761366 +0300 +++ chicken-5.3.0rc1/file.scm 2021-08-24 15:36:02.129211933 +0300 @@ -77,7 +77,7 @@ struct dirent typedef struct { struct _finddata_t fdata; - int handle; + intptr_t handle; struct dirent current; } DIR;
diff -up chicken-5.3.0rc1/file.c.orig chicken-5.3.0rc1/file.c --- chicken-5.3.0rc1/file.c.orig 2021-08-24 15:19:00.847104480 +0300 +++ chicken-5.3.0rc1/file.c 2021-08-24 15:36:10.889230349 +0300 @@ -34,7 +34,7 @@ # define C_mkdir(str) C_fix(mkdir(C_c_string(str))) #endif -#if !defined(_WIN32) || defined(__CYGWIN__) +#if !defined(_WIN32) || defined(__CYGWIN__) || defined(__MINGW32__) # include <sys/types.h> # include <dirent.h> #else @@ -46,7 +46,7 @@ struct dirent typedef struct { struct _finddata_t fdata; - int handle; + intptr_t handle; struct dirent current; } DIR; diff -up chicken-5.3.0rc1/file.scm.orig chicken-5.3.0rc1/file.scm --- chicken-5.3.0rc1/file.scm.orig 2021-08-24 15:18:56.063761366 +0300 +++ chicken-5.3.0rc1/file.scm 2021-08-24 15:36:02.129211933 +0300 @@ -65,7 +65,7 @@ # define C_mkdir(str) C_fix(mkdir(C_c_string(str))) #endif -#if !defined(_WIN32) || defined(__CYGWIN__) +#if !defined(_WIN32) || defined(__CYGWIN__) || defined(__MINGW32__) # include <sys/types.h> # include <dirent.h> #else @@ -77,7 +77,7 @@ struct dirent typedef struct { struct _finddata_t fdata; - int handle; + intptr_t handle; struct dirent current; } DIR;
Jani