ref: cd75b6537aced08663b6dc4885bea01f974a1475
parent: 03194fff9769bbca6991e8ab92ed70d6eacc06d0
author: Lennart Augustsson <lennart.augustsson@epicgames.com>
date: Thu Mar 28 05:30:23 EDT 2024
Add mkdir()
--- a/src/MicroHs/FFI.hs
+++ b/src/MicroHs/FFI.hs
@@ -171,5 +171,5 @@
"peek_ullong", "poke_ullong", "peek_llong", "poke_llong",
"peek_flt", "poke_flt",
"sizeof_int", "sizeof_long", "sizeof_llong",
- "opendir", "closedir", "readdir", "c_d_name", "chdir"
+ "opendir", "closedir", "readdir", "c_d_name", "chdir", "mkdir"
]
--- a/src/runtime/eval.c
+++ b/src/runtime/eval.c
@@ -16,6 +16,8 @@
#if WANT_DIR
#include <dirent.h>
#include <unistd.h>
+#include <sys/stat.h>
+#include <sys/types.h>
#endif /* WANT_DIR */
#if WANT_MD5
@@ -3639,6 +3641,7 @@
void mhs_readdir(int s) { mhs_from_Ptr(s, 1, readdir(mhs_to_Ptr(s, 0))); } void mhs_c_d_name(int s) { mhs_from_Ptr(s, 1, ((struct dirent *)(mhs_to_Ptr(s, 0)))->d_name); } void mhs_chdir(int s) { mhs_from_Int(s, 1, chdir(mhs_to_Ptr(s, 0))); }+void mhs_mkdir(int s) { mhs_from_Int(s, 2, mkdir(mhs_to_Ptr(s, 0), mhs_to_Int(s, 1))); }#endif /* WANT_DIR */
struct ffi_entry ffi_table[] = {@@ -3745,6 +3748,7 @@
{ "opendir", mhs_opendir}, { "readdir", mhs_readdir}, { "chdir", mhs_chdir},+{ "mkdir", mhs_mkdir},#endif /* WANT_DIR */
{ 0,0 }};
--
⑨