~ chicken-core (chicken-5) 19f49f048305fc639a0c2b7db0e442195e0ad78e
commit 19f49f048305fc639a0c2b7db0e442195e0ad78e
Author: felix <felix@call-with-current-continuation.org>
AuthorDate: Mon Jun 2 16:19:55 2025 +0200
Commit: felix <felix@call-with-current-continuation.org>
CommitDate: Mon Jun 2 16:19:55 2025 +0200
typo fixes in posixwin.scm, use correct _wdirent stuff in file.scm
diff --git a/file.scm b/file.scm
index e46925f5..9911e78a 100644
--- a/file.scm
+++ b/file.scm
@@ -53,12 +53,13 @@
#endif
#if defined(_WIN32) && !defined(__CYGWIN__)
+# include <direct.h>
# define C_test_access(fn, m) C_fix(_waccess(C_utf16(fn, 0), C_unfix(m)))
static C_word C_rename(C_word old, C_word new) {
- C_char *s = C_utf16(old, 0), *s2 = C_utf16(new, 1);
+ wchar_t *s = C_utf16(old, 0), *s2 = C_utf16(new, 1);
_wremove(s2);
- return(C_fix(_wrename(s, s2));
+ return(C_fix(_wrename(s, s2)));
}
# define C_remove(str) C_fix(_wremove(C_utf16(str, 0)))
@@ -80,14 +81,14 @@ static C_word C_rename(C_word old, C_word new) {
# define C_opendir(s,h) C_set_block_item(h, 0, (C_word) _wopendir(C_utf16(s, 0)))
static C_word C_foundfile(C_word e,C_word b,C_word l) {
- C_char *s = C_utf8(((struct dirent *) C_block_item(e, 0))->d_name);
+ C_char *s = C_utf8(((struct _wdirent *)C_block_item(e, 0))->d_name);
C_strlcpy(C_c_string(b), s, C_unfix(l));
return(C_fix(strlen(s)));
}
#else
# define C_opendir(s,h) C_set_block_item(h, 0, (C_word) opendir(C_c_string(s)))
-# define C_foundfile(e,b,l) (C_strlcpy(C_c_string(b), ((struct dirent *) C_block_item(e, 0))->d_name, C_unfix(l)), C_fix(strlen(((struct dirent *) C_block_item(e, 0))->d_name)))
+# define C_foundfile(e,b,l) (C_strlcpy(C_c_string(b), ((struct _wdirent *)C_block_item(e, 0))->d_name, C_unfix(l)), C_fix(strlen(((struct dirent *) C_block_item(e, 0))->d_name)))
#endif
#define C_readdir(h,e) C_set_block_item(e, 0, (C_word) readdir((DIR *)C_block_item(h, 0)))
diff --git a/posixwin.scm b/posixwin.scm
index 90f4b209..c4373e62 100644
--- a/posixwin.scm
+++ b/posixwin.scm
@@ -735,7 +735,7 @@ static int set_file_mtime(C_word filename, C_word atime, C_word mtime)
(define c-string->allocated-pointer
(foreign-lambda* c-pointer ((scheme-object o))
- "int len = C_header_size(o) * sizeof(wchar_t)); \n"
+ "int len = C_header_size(o) * sizeof(wchar_t); \n"
"char *ptr = C_malloc(len); \n"
"if (ptr != NULL) {\n"
" wchar_t *u = C_utf16(o, 0); \n"
Trap