From 550905d883b29f0b23e433fdb97f6299b628d4a9 Mon Sep 17 00:00:00 2001 From: AppleDragon Date: Fri, 5 Jan 2024 23:43:18 +0800 Subject: [PATCH] for windows ZIP_ENABLE_SHARABLE_FILE_OPEN (#328) Co-authored-by: Xiaolong Cao <72238371+visla-dragon@users.noreply.github.com> --- src/miniz.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/miniz.h b/src/miniz.h index d01c435..cd86483 100644 --- a/src/miniz.h +++ b/src/miniz.h @@ -4968,20 +4968,36 @@ static FILE *mz_fopen(const char *pFilename, const char *pMode) { WCHAR *wFilename = mz_utf8z_to_widechar(pFilename); WCHAR *wMode = mz_utf8z_to_widechar(pMode); FILE *pFile = NULL; +#ifdef ZIP_ENABLE_SHARABLE_FILE_OPEN + pFile = _wfopen(wFilename, wMode); +#else errno_t err = _wfopen_s(&pFile, wFilename, wMode); +#endif free(wFilename); free(wMode); +#ifdef ZIP_ENABLE_SHARABLE_FILE_OPEN + return pFile; +#else return err ? NULL : pFile; +#endif } static FILE *mz_freopen(const char *pPath, const char *pMode, FILE *pStream) { WCHAR *wPath = mz_utf8z_to_widechar(pPath); WCHAR *wMode = mz_utf8z_to_widechar(pMode); FILE *pFile = NULL; +#ifdef ZIP_ENABLE_SHARABLE_FILE_OPEN + pFile = _wfreopen(wPath, wMode, pStream); +#else errno_t err = _wfreopen_s(&pFile, wPath, wMode, pStream); +#endif free(wPath); free(wMode); +#ifdef ZIP_ENABLE_SHARABLE_FILE_OPEN + return pFile; +#else return err ? NULL : pFile; +#endif } static int mz_stat64(const char *path, struct __stat64 *buffer) {