From d15ccddd4d20d66749577d7444de861112f6864c Mon Sep 17 00:00:00 2001 From: Brad Smith Date: Thu, 29 Jun 2023 09:57:28 -0400 Subject: [PATCH] Add support for minizip-ng 4 API Signed-off-by: Brad Smith --- src/OpenColorIO/OCIOZArchive.cpp | 22 +++++++++++++++++++++- src/apps/ocioarchive/main.cpp | 4 ++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/OpenColorIO/OCIOZArchive.cpp b/src/OpenColorIO/OCIOZArchive.cpp index 85fc7bb76d..24d836e952 100644 --- a/src/OpenColorIO/OCIOZArchive.cpp +++ b/src/OpenColorIO/OCIOZArchive.cpp @@ -225,7 +225,11 @@ void archiveConfig(std::ostream & ostream, const Config & config, const char * c std::string configStr = ss.str(); // Write zip to memory stream. +#if MZ_VERSION_BUILD >= 040000 + write_mem_stream = mz_stream_mem_create(); +#else mz_stream_mem_create(&write_mem_stream); +#endif mz_stream_mem_set_grow_size(write_mem_stream, 128 * 1024); mz_stream_open(write_mem_stream, NULL, MZ_OPEN_MODE_CREATE); @@ -237,7 +241,11 @@ void archiveConfig(std::ostream & ostream, const Config & config, const char * c options.compress_level = ArchiveCompressionLevels::BEST; // Create the writer handle. +#if MZ_VERSION_BUILD >= 040000 + archiver = mz_zip_writer_create(); +#else mz_zip_writer_create(&archiver); +#endif // Archive options. // Compression method @@ -332,7 +340,11 @@ void ExtractOCIOZArchive(const char * archivePath, const char * destination) std::string outputDestination = pystring::os::path::normpath(destination); // Create zip reader. +#if MZ_VERSION_BUILD >= 040000 + extracter = mz_zip_reader_create(); +#else mz_zip_reader_create(&extracter); +#endif MinizipNgHandlerGuard extracterGuard(extracter, false, false); @@ -450,7 +462,11 @@ std::vector getFileStringFromArchiveFile(const std::string & filepath, std::vector buffer; // Create the reader object. +#if MZ_VERSION_BUILD >= 040000 + reader = mz_zip_reader_create(); +#else mz_zip_reader_create(&reader); +#endif MinizipNgHandlerGuard extracterGuard(reader, false, true); @@ -510,7 +526,11 @@ void getEntriesMappingFromArchiveFile(const std::string & archivePath, void *reader = NULL; // Create the reader object. +#if MZ_VERSION_BUILD >= 040000 + reader = mz_zip_reader_create(); +#else mz_zip_reader_create(&reader); +#endif MinizipNgHandlerGuard extracterGuard(reader, false, false); @@ -630,4 +650,4 @@ void CIOPOciozArchive::buildEntries() getEntriesMappingFromArchiveFile(m_archiveAbsPath, m_entries); } -} // namespace OCIO_NAMESPACE \ No newline at end of file +} // namespace OCIO_NAMESPACE diff --git a/src/apps/ocioarchive/main.cpp b/src/apps/ocioarchive/main.cpp index 190cadee54..68054a6daf 100644 --- a/src/apps/ocioarchive/main.cpp +++ b/src/apps/ocioarchive/main.cpp @@ -235,7 +235,11 @@ int main(int argc, const char **argv) } std::string path = args[0]; +#if MZ_VERSION_BUILD >= 040000 + reader = mz_zip_reader_create(); +#else mz_zip_reader_create(&reader); +#endif struct tm tmu_date; err = mz_zip_reader_open_file(reader, path.c_str());