From fc5f5f1f58542500734841822768267d0ece2456 Mon Sep 17 00:00:00 2001 From: Mosder Date: Tue, 20 Oct 2026 14:44:33 +0200 Subject: 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 --- include/moslib/safe.h | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'include') 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 #include -#include #include +#ifndef _WIN32 +#include +#else +#include +#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 -- cgit v1.2.3