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