aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorMosder <git@mosder.eu>2026-10-20 14:44:33 +0200
committerMosder <git@mosder.eu>2026-10-20 14:44:33 +0200
commitfc5f5f1f58542500734841822768267d0ece2456 (patch)
tree0501e3d718338094f58f5e6af1232ee4900372b2 /include
parentec315985c9f51c932b1177539c43a024bf58207d (diff)
feat: improved support for windows. added gating behind _WIN32 to use _ prefixed versions of functions and made it work (with limited functionality) on machines without fileno
Diffstat (limited to 'include')
-rw-r--r--include/moslib/safe.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/include/moslib/safe.h b/include/moslib/safe.h
index a606f17..e9fb7bb 100644
--- a/include/moslib/safe.h
+++ b/include/moslib/safe.h
@@ -4,9 +4,14 @@
#include <stddef.h>
#include <stdio.h>
-#include <unistd.h>
#include <sys/types.h>
+#ifndef _WIN32
+#include <unistd.h>
+#else
+#include <io.h>
+#endif
+
#ifndef MOSLIB_SAFE_H
#define MOSLIB_SAFE_H
@@ -19,8 +24,11 @@
#define safe_tmpfile mos_safe_tmpfile
#define safe_dup mos_safe_dup
#define safe_dup2 mos_safe_dup2
+
+#ifndef _WIN32
#define safe_fork mos_safe_fork
#define safe_pipe mos_safe_pipe
+#endif
#endif // MOS_FORCE_PREFIXES
@@ -41,8 +49,11 @@ typedef struct {
#define mos_safe_tmpfile() mos_safe_tmpfile_fn(mos_err_info)
#define mos_safe_dup(fd) mos_safe_dup_fn(fd, mos_err_info)
#define mos_safe_dup2(fd, fd2) mos_safe_dup2_fn(fd, fd2, mos_err_info)
+
+#ifndef _WIN32
#define mos_safe_fork() mos_safe_fork_fn(mos_err_info)
#define mos_safe_pipe(fd) mos_safe_pipe_fn(fd, mos_err_info)
+#endif
// Function prototypes for macros
extern void *mos_safe_malloc_fn(size_t size, MosSafeErrInfo info);
@@ -52,7 +63,10 @@ extern FILE *mos_safe_fopen_fn(const char *path, const char *mode, MosSafeErrInf
extern FILE *mos_safe_tmpfile_fn(MosSafeErrInfo info);
extern int mos_safe_dup_fn(int fd, MosSafeErrInfo info);
extern int mos_safe_dup2_fn(int fd, int fd2, MosSafeErrInfo info);
+
+#ifndef _WIN32
extern pid_t mos_safe_fork_fn(MosSafeErrInfo info);
extern int mos_safe_pipe_fn(int fd[2], MosSafeErrInfo info);
+#endif
#endif // MOSLIB_SAFE_H