Lines Matching refs:pZip

3244 static MZ_FORCEINLINE void mz_zip_array_clear(mz_zip_archive *pZip, mz_zip_array *pArray)  in mz_zip_array_clear()  argument
3246 pZip->m_pFree(pZip->m_pAlloc_opaque, pArray->m_p); in mz_zip_array_clear()
3250 static mz_bool mz_zip_array_ensure_capacity(mz_zip_archive *pZip, mz_zip_array *pArray, size_t min_… in mz_zip_array_ensure_capacity() argument
3263 …if (NULL == (pNew_p = pZip->m_pRealloc(pZip->m_pAlloc_opaque, pArray->m_p, pArray->m_element_size,… in mz_zip_array_ensure_capacity()
3270 static MZ_FORCEINLINE mz_bool mz_zip_array_reserve(mz_zip_archive *pZip, mz_zip_array *pArray, size… in mz_zip_array_reserve() argument
3274 if (!mz_zip_array_ensure_capacity(pZip, pArray, new_capacity, growing)) in mz_zip_array_reserve()
3280 static MZ_FORCEINLINE mz_bool mz_zip_array_resize(mz_zip_archive *pZip, mz_zip_array *pArray, size_… in mz_zip_array_resize() argument
3284 if (!mz_zip_array_ensure_capacity(pZip, pArray, new_size, growing)) in mz_zip_array_resize()
3291 static MZ_FORCEINLINE mz_bool mz_zip_array_ensure_room(mz_zip_archive *pZip, mz_zip_array *pArray, … in mz_zip_array_ensure_room() argument
3293 return mz_zip_array_reserve(pZip, pArray, pArray->m_size + n, MZ_TRUE); in mz_zip_array_ensure_room()
3296 static MZ_FORCEINLINE mz_bool mz_zip_array_push_back(mz_zip_archive *pZip, mz_zip_array *pArray, co… in mz_zip_array_push_back() argument
3299 if (!mz_zip_array_resize(pZip, pArray, orig_size + n, MZ_TRUE)) in mz_zip_array_push_back()
3372 static MZ_FORCEINLINE mz_bool mz_zip_set_error(mz_zip_archive *pZip, mz_zip_error err_num) in mz_zip_set_error() argument
3374 if (pZip) in mz_zip_set_error()
3375 pZip->m_last_error = err_num; in mz_zip_set_error()
3379 static mz_bool mz_zip_reader_init_internal(mz_zip_archive *pZip, mz_uint flags) in mz_zip_reader_init_internal() argument
3382 if ((!pZip) || (pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_INVALID)) in mz_zip_reader_init_internal()
3383 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_reader_init_internal()
3385 if (!pZip->m_pAlloc) in mz_zip_reader_init_internal()
3386 pZip->m_pAlloc = miniz_def_alloc_func; in mz_zip_reader_init_internal()
3387 if (!pZip->m_pFree) in mz_zip_reader_init_internal()
3388 pZip->m_pFree = miniz_def_free_func; in mz_zip_reader_init_internal()
3389 if (!pZip->m_pRealloc) in mz_zip_reader_init_internal()
3390 pZip->m_pRealloc = miniz_def_realloc_func; in mz_zip_reader_init_internal()
3392 pZip->m_archive_size = 0; in mz_zip_reader_init_internal()
3393 pZip->m_central_directory_file_ofs = 0; in mz_zip_reader_init_internal()
3394 pZip->m_total_files = 0; in mz_zip_reader_init_internal()
3395 pZip->m_last_error = MZ_ZIP_NO_ERROR; in mz_zip_reader_init_internal()
3397 …if (NULL == (pZip->m_pState = (mz_zip_internal_state *)pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, si… in mz_zip_reader_init_internal()
3398 return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); in mz_zip_reader_init_internal()
3400 memset(pZip->m_pState, 0, sizeof(mz_zip_internal_state)); in mz_zip_reader_init_internal()
3401 MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_central_dir, sizeof(mz_uint8)); in mz_zip_reader_init_internal()
3402 MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_central_dir_offsets, sizeof(mz_uint32)); in mz_zip_reader_init_internal()
3403 MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_sorted_central_dir_offsets, sizeof(mz_uint32)); in mz_zip_reader_init_internal()
3404 pZip->m_pState->m_init_flags = flags; in mz_zip_reader_init_internal()
3405 pZip->m_pState->m_zip64 = MZ_FALSE; in mz_zip_reader_init_internal()
3406 pZip->m_pState->m_zip64_has_extended_info_fields = MZ_FALSE; in mz_zip_reader_init_internal()
3408 pZip->m_zip_mode = MZ_ZIP_MODE_READING; in mz_zip_reader_init_internal()
3442 static void mz_zip_reader_sort_central_dir_offsets_by_filename(mz_zip_archive *pZip) in mz_zip_reader_sort_central_dir_offsets_by_filename() argument
3444 mz_zip_internal_state *pState = pZip->m_pState; in mz_zip_reader_sort_central_dir_offsets_by_filename()
3449 const mz_uint32 size = pZip->m_total_files; in mz_zip_reader_sort_central_dir_offsets_by_filename()
3494 static mz_bool mz_zip_reader_locate_header_sig(mz_zip_archive *pZip, mz_uint32 record_sig, mz_uint3… in mz_zip_reader_locate_header_sig() argument
3501 if (pZip->m_archive_size < record_size) in mz_zip_reader_locate_header_sig()
3505 cur_file_ofs = MZ_MAX((mz_int64)pZip->m_archive_size - (mz_int64)sizeof(buf_u32), 0); in mz_zip_reader_locate_header_sig()
3508 int i, n = (int)MZ_MIN(sizeof(buf_u32), pZip->m_archive_size - cur_file_ofs); in mz_zip_reader_locate_header_sig()
3510 if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pBuf, n) != (mz_uint)n) in mz_zip_reader_locate_header_sig()
3518 if ((pZip->m_archive_size - (cur_file_ofs + i)) >= record_size) in mz_zip_reader_locate_header_sig()
3530 … if ((!cur_file_ofs) || ((pZip->m_archive_size - cur_file_ofs) >= (MZ_UINT16_MAX + record_size))) in mz_zip_reader_locate_header_sig()
3540 static mz_bool mz_zip_reader_read_central_dir(mz_zip_archive *pZip, mz_uint flags) in mz_zip_reader_read_central_dir() argument
3559 if (pZip->m_archive_size < MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) in mz_zip_reader_read_central_dir()
3560 return mz_zip_set_error(pZip, MZ_ZIP_NOT_AN_ARCHIVE); in mz_zip_reader_read_central_dir()
3562 …if (!mz_zip_reader_locate_header_sig(pZip, MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIG, MZ_ZIP_END_OF_CEN… in mz_zip_reader_read_central_dir()
3563 return mz_zip_set_error(pZip, MZ_ZIP_FAILED_FINDING_CENTRAL_DIR); in mz_zip_reader_read_central_dir()
3566 …if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pBuf, MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) !… in mz_zip_reader_read_central_dir()
3567 return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); in mz_zip_reader_read_central_dir()
3570 return mz_zip_set_error(pZip, MZ_ZIP_NOT_AN_ARCHIVE); in mz_zip_reader_read_central_dir()
3574 …if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs - MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE, pZi… in mz_zip_reader_read_central_dir()
3579 …if (zip64_end_of_central_dir_ofs > (pZip->m_archive_size - MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE… in mz_zip_reader_read_central_dir()
3580 return mz_zip_set_error(pZip, MZ_ZIP_NOT_AN_ARCHIVE); in mz_zip_reader_read_central_dir()
3582 …if (pZip->m_pRead(pZip->m_pIO_opaque, zip64_end_of_central_dir_ofs, pZip64_end_of_central_dir, MZ_… in mz_zip_reader_read_central_dir()
3586 pZip->m_pState->m_zip64 = MZ_TRUE; in mz_zip_reader_read_central_dir()
3593 pZip->m_total_files = MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_CDIR_TOTAL_ENTRIES_OFS); in mz_zip_reader_read_central_dir()
3600 if (pZip->m_pState->m_zip64) in mz_zip_reader_read_central_dir()
3609 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); in mz_zip_reader_read_central_dir()
3612 return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_MULTIDISK); in mz_zip_reader_read_central_dir()
3616 return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES); in mz_zip_reader_read_central_dir()
3618 pZip->m_total_files = (mz_uint32)zip64_cdir_total_entries; in mz_zip_reader_read_central_dir()
3621 return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES); in mz_zip_reader_read_central_dir()
3627 return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_CDIR_SIZE); in mz_zip_reader_read_central_dir()
3638 if (pZip->m_total_files != cdir_entries_on_this_disk) in mz_zip_reader_read_central_dir()
3639 return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_MULTIDISK); in mz_zip_reader_read_central_dir()
3642 return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_MULTIDISK); in mz_zip_reader_read_central_dir()
3644 if (cdir_size < pZip->m_total_files * MZ_ZIP_CENTRAL_DIR_HEADER_SIZE) in mz_zip_reader_read_central_dir()
3645 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); in mz_zip_reader_read_central_dir()
3647 if ((cdir_ofs + (mz_uint64)cdir_size) > pZip->m_archive_size) in mz_zip_reader_read_central_dir()
3648 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); in mz_zip_reader_read_central_dir()
3650 pZip->m_central_directory_file_ofs = cdir_ofs; in mz_zip_reader_read_central_dir()
3652 if (pZip->m_total_files) in mz_zip_reader_read_central_dir()
3656 if ((!mz_zip_array_resize(pZip, &pZip->m_pState->m_central_dir, cdir_size, MZ_FALSE)) || in mz_zip_reader_read_central_dir()
3657 …(!mz_zip_array_resize(pZip, &pZip->m_pState->m_central_dir_offsets, pZip->m_total_files, MZ_FALSE)… in mz_zip_reader_read_central_dir()
3658 return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); in mz_zip_reader_read_central_dir()
3662 …if (!mz_zip_array_resize(pZip, &pZip->m_pState->m_sorted_central_dir_offsets, pZip->m_total_files,… in mz_zip_reader_read_central_dir()
3663 return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); in mz_zip_reader_read_central_dir()
3666 …if (pZip->m_pRead(pZip->m_pIO_opaque, cdir_ofs, pZip->m_pState->m_central_dir.m_p, cdir_size) != c… in mz_zip_reader_read_central_dir()
3667 return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); in mz_zip_reader_read_central_dir()
3670 p = (const mz_uint8 *)pZip->m_pState->m_central_dir.m_p; in mz_zip_reader_read_central_dir()
3671 for (n = cdir_size, i = 0; i < pZip->m_total_files; ++i) in mz_zip_reader_read_central_dir()
3677 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); in mz_zip_reader_read_central_dir()
3679 …MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir_offsets, mz_uint32, i) = (mz_uint32)(p - (cons… in mz_zip_reader_read_central_dir()
3682 … MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_sorted_central_dir_offsets, mz_uint32, i) = i; in mz_zip_reader_read_central_dir()
3690 if ((!pZip->m_pState->m_zip64_has_extended_info_fields) && in mz_zip_reader_read_central_dir()
3706 return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); in mz_zip_reader_read_central_dir()
3708 …if (pZip->m_pRead(pZip->m_pIO_opaque, cdir_ofs + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + filename_size, b… in mz_zip_reader_read_central_dir()
3711 return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); in mz_zip_reader_read_central_dir()
3729 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); in mz_zip_reader_read_central_dir()
3738 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); in mz_zip_reader_read_central_dir()
3744 pZip->m_pState->m_zip64 = MZ_TRUE; in mz_zip_reader_read_central_dir()
3745 pZip->m_pState->m_zip64_has_extended_info_fields = MZ_TRUE; in mz_zip_reader_read_central_dir()
3761 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); in mz_zip_reader_read_central_dir()
3766 return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_MULTIDISK); in mz_zip_reader_read_central_dir()
3770 … + MZ_ZIP_CDH_LOCAL_HEADER_OFS) + MZ_ZIP_LOCAL_DIR_HEADER_SIZE + comp_size) > pZip->m_archive_size) in mz_zip_reader_read_central_dir()
3771 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); in mz_zip_reader_read_central_dir()
3776 return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_ENCRYPTION); in mz_zip_reader_read_central_dir()
3779 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); in mz_zip_reader_read_central_dir()
3787 mz_zip_reader_sort_central_dir_offsets_by_filename(pZip); in mz_zip_reader_read_central_dir()
3792 void mz_zip_zero_struct(mz_zip_archive *pZip) in mz_zip_zero_struct() argument
3794 if (pZip) in mz_zip_zero_struct()
3795 MZ_CLEAR_OBJ(*pZip); in mz_zip_zero_struct()
3798 static mz_bool mz_zip_reader_end_internal(mz_zip_archive *pZip, mz_bool set_last_error) in mz_zip_reader_end_internal() argument
3802 if (!pZip) in mz_zip_reader_end_internal()
3805 …if ((!pZip->m_pState) || (!pZip->m_pAlloc) || (!pZip->m_pFree) || (pZip->m_zip_mode != MZ_ZIP_MODE… in mz_zip_reader_end_internal()
3808 pZip->m_last_error = MZ_ZIP_INVALID_PARAMETER; in mz_zip_reader_end_internal()
3813 if (pZip->m_pState) in mz_zip_reader_end_internal()
3815 mz_zip_internal_state *pState = pZip->m_pState; in mz_zip_reader_end_internal()
3816 pZip->m_pState = NULL; in mz_zip_reader_end_internal()
3818 mz_zip_array_clear(pZip, &pState->m_central_dir); in mz_zip_reader_end_internal()
3819 mz_zip_array_clear(pZip, &pState->m_central_dir_offsets); in mz_zip_reader_end_internal()
3820 mz_zip_array_clear(pZip, &pState->m_sorted_central_dir_offsets); in mz_zip_reader_end_internal()
3825 if (pZip->m_zip_type == MZ_ZIP_TYPE_FILE) in mz_zip_reader_end_internal()
3830 pZip->m_last_error = MZ_ZIP_FILE_CLOSE_FAILED; in mz_zip_reader_end_internal()
3838 pZip->m_pFree(pZip->m_pAlloc_opaque, pState); in mz_zip_reader_end_internal()
3840 pZip->m_zip_mode = MZ_ZIP_MODE_INVALID; in mz_zip_reader_end_internal()
3845 mz_bool mz_zip_reader_end(mz_zip_archive *pZip) in mz_zip_reader_end() argument
3847 return mz_zip_reader_end_internal(pZip, MZ_TRUE); in mz_zip_reader_end()
3849 mz_bool mz_zip_reader_init(mz_zip_archive *pZip, mz_uint64 size, mz_uint flags) in mz_zip_reader_init() argument
3851 if ((!pZip) || (!pZip->m_pRead)) in mz_zip_reader_init()
3852 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_reader_init()
3854 if (!mz_zip_reader_init_internal(pZip, flags)) in mz_zip_reader_init()
3857 pZip->m_zip_type = MZ_ZIP_TYPE_USER; in mz_zip_reader_init()
3858 pZip->m_archive_size = size; in mz_zip_reader_init()
3860 if (!mz_zip_reader_read_central_dir(pZip, flags)) in mz_zip_reader_init()
3862 mz_zip_reader_end_internal(pZip, MZ_FALSE); in mz_zip_reader_init()
3871 mz_zip_archive *pZip = (mz_zip_archive *)pOpaque; in mz_zip_mem_read_func() local
3872 …size_t s = (file_ofs >= pZip->m_archive_size) ? 0 : (size_t)MZ_MIN(pZip->m_archive_size - file_ofs… in mz_zip_mem_read_func()
3873 memcpy(pBuf, (const mz_uint8 *)pZip->m_pState->m_pMem + file_ofs, s); in mz_zip_mem_read_func()
3877 mz_bool mz_zip_reader_init_mem(mz_zip_archive *pZip, const void *pMem, size_t size, mz_uint flags) in mz_zip_reader_init_mem() argument
3880 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_reader_init_mem()
3883 return mz_zip_set_error(pZip, MZ_ZIP_NOT_AN_ARCHIVE); in mz_zip_reader_init_mem()
3885 if (!mz_zip_reader_init_internal(pZip, flags)) in mz_zip_reader_init_mem()
3888 pZip->m_zip_type = MZ_ZIP_TYPE_MEMORY; in mz_zip_reader_init_mem()
3889 pZip->m_archive_size = size; in mz_zip_reader_init_mem()
3890 pZip->m_pRead = mz_zip_mem_read_func; in mz_zip_reader_init_mem()
3891 pZip->m_pIO_opaque = pZip; in mz_zip_reader_init_mem()
3892 pZip->m_pNeeds_keepalive = NULL; in mz_zip_reader_init_mem()
3895 pZip->m_pState->m_pMem = const_cast<void *>(pMem); in mz_zip_reader_init_mem()
3897 pZip->m_pState->m_pMem = (void *)pMem; in mz_zip_reader_init_mem()
3900 pZip->m_pState->m_mem_size = size; in mz_zip_reader_init_mem()
3902 if (!mz_zip_reader_read_central_dir(pZip, flags)) in mz_zip_reader_init_mem()
3904 mz_zip_reader_end_internal(pZip, MZ_FALSE); in mz_zip_reader_init_mem()
3914 mz_zip_archive *pZip = (mz_zip_archive *)pOpaque; in mz_zip_file_read_func() local
3915 mz_int64 cur_ofs = MZ_FTELL64(pZip->m_pState->m_pFile); in mz_zip_file_read_func()
3917 file_ofs += pZip->m_pState->m_file_archive_start_ofs; in mz_zip_file_read_func()
3919 …if (((mz_int64)file_ofs < 0) || (((cur_ofs != (mz_int64)file_ofs)) && (MZ_FSEEK64(pZip->m_pState->… in mz_zip_file_read_func()
3922 return MZ_FREAD(pBuf, 1, n, pZip->m_pState->m_pFile); in mz_zip_file_read_func()
3925 mz_bool mz_zip_reader_init_file(mz_zip_archive *pZip, const char *pFilename, mz_uint32 flags) in mz_zip_reader_init_file() argument
3927 return mz_zip_reader_init_file_v2(pZip, pFilename, flags, 0, 0); in mz_zip_reader_init_file()
3930 mz_bool mz_zip_reader_init_file_v2(mz_zip_archive *pZip, const char *pFilename, mz_uint flags, mz_u… in mz_zip_reader_init_file_v2() argument
3935 …if ((!pZip) || (!pFilename) || ((archive_size) && (archive_size < MZ_ZIP_END_OF_CENTRAL_DIR_HEADER… in mz_zip_reader_init_file_v2()
3936 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_reader_init_file_v2()
3940 return mz_zip_set_error(pZip, MZ_ZIP_FILE_OPEN_FAILED); in mz_zip_reader_init_file_v2()
3948 return mz_zip_set_error(pZip, MZ_ZIP_FILE_SEEK_FAILED); in mz_zip_reader_init_file_v2()
3959 return mz_zip_set_error(pZip, MZ_ZIP_NOT_AN_ARCHIVE); in mz_zip_reader_init_file_v2()
3962 if (!mz_zip_reader_init_internal(pZip, flags)) in mz_zip_reader_init_file_v2()
3968 pZip->m_zip_type = MZ_ZIP_TYPE_FILE; in mz_zip_reader_init_file_v2()
3969 pZip->m_pRead = mz_zip_file_read_func; in mz_zip_reader_init_file_v2()
3970 pZip->m_pIO_opaque = pZip; in mz_zip_reader_init_file_v2()
3971 pZip->m_pState->m_pFile = pFile; in mz_zip_reader_init_file_v2()
3972 pZip->m_archive_size = file_size; in mz_zip_reader_init_file_v2()
3973 pZip->m_pState->m_file_archive_start_ofs = file_start_ofs; in mz_zip_reader_init_file_v2()
3975 if (!mz_zip_reader_read_central_dir(pZip, flags)) in mz_zip_reader_init_file_v2()
3977 mz_zip_reader_end_internal(pZip, MZ_FALSE); in mz_zip_reader_init_file_v2()
3984 mz_bool mz_zip_reader_init_cfile(mz_zip_archive *pZip, MZ_FILE *pFile, mz_uint64 archive_size, mz_u… in mz_zip_reader_init_cfile() argument
3988 if ((!pZip) || (!pFile)) in mz_zip_reader_init_cfile()
3989 return mz_zip_set_error(pZip, MZ_ZIP_FILE_OPEN_FAILED); in mz_zip_reader_init_cfile()
3996 return mz_zip_set_error(pZip, MZ_ZIP_FILE_SEEK_FAILED); in mz_zip_reader_init_cfile()
4001 return mz_zip_set_error(pZip, MZ_ZIP_NOT_AN_ARCHIVE); in mz_zip_reader_init_cfile()
4004 if (!mz_zip_reader_init_internal(pZip, flags)) in mz_zip_reader_init_cfile()
4007 pZip->m_zip_type = MZ_ZIP_TYPE_CFILE; in mz_zip_reader_init_cfile()
4008 pZip->m_pRead = mz_zip_file_read_func; in mz_zip_reader_init_cfile()
4010 pZip->m_pIO_opaque = pZip; in mz_zip_reader_init_cfile()
4011 pZip->m_pState->m_pFile = pFile; in mz_zip_reader_init_cfile()
4012 pZip->m_archive_size = archive_size; in mz_zip_reader_init_cfile()
4013 pZip->m_pState->m_file_archive_start_ofs = cur_file_ofs; in mz_zip_reader_init_cfile()
4015 if (!mz_zip_reader_read_central_dir(pZip, flags)) in mz_zip_reader_init_cfile()
4017 mz_zip_reader_end_internal(pZip, MZ_FALSE); in mz_zip_reader_init_cfile()
4026 static MZ_FORCEINLINE const mz_uint8 *mz_zip_get_cdh(mz_zip_archive *pZip, mz_uint file_index) in mz_zip_get_cdh() argument
4028 if ((!pZip) || (!pZip->m_pState) || (file_index >= pZip->m_total_files)) in mz_zip_get_cdh()
4030 …return &MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir, mz_uint8, MZ_ZIP_ARRAY_ELEMENT(&pZip-… in mz_zip_get_cdh()
4033 mz_bool mz_zip_reader_is_file_encrypted(mz_zip_archive *pZip, mz_uint file_index) in mz_zip_reader_is_file_encrypted() argument
4036 const mz_uint8 *p = mz_zip_get_cdh(pZip, file_index); in mz_zip_reader_is_file_encrypted()
4039 mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_reader_is_file_encrypted()
4047 mz_bool mz_zip_reader_is_file_supported(mz_zip_archive *pZip, mz_uint file_index) in mz_zip_reader_is_file_supported() argument
4052 const mz_uint8 *p = mz_zip_get_cdh(pZip, file_index); in mz_zip_reader_is_file_supported()
4055 mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_reader_is_file_supported()
4064 mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_METHOD); in mz_zip_reader_is_file_supported()
4070 mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_ENCRYPTION); in mz_zip_reader_is_file_supported()
4076 mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_FEATURE); in mz_zip_reader_is_file_supported()
4083 mz_bool mz_zip_reader_is_file_a_directory(mz_zip_archive *pZip, mz_uint file_index) in mz_zip_reader_is_file_a_directory() argument
4086 const mz_uint8 *p = mz_zip_get_cdh(pZip, file_index); in mz_zip_reader_is_file_a_directory()
4089 mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_reader_is_file_a_directory()
4115 static mz_bool mz_zip_file_stat_internal(mz_zip_archive *pZip, mz_uint file_index, const mz_uint8 *… in mz_zip_file_stat_internal() argument
4124 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_file_stat_internal()
4128 …pStat->m_central_dir_ofs = MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir_offsets, mz_uint32,… in mz_zip_file_stat_internal()
4156 pStat->m_is_directory = mz_zip_reader_is_file_a_directory(pZip, file_index); in mz_zip_file_stat_internal()
4157 pStat->m_is_encrypted = mz_zip_reader_is_file_encrypted(pZip, file_index); in mz_zip_file_stat_internal()
4158 pStat->m_is_supported = mz_zip_reader_is_file_supported(pZip, file_index); in mz_zip_file_stat_internal()
4177 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); in mz_zip_file_stat_internal()
4183 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); in mz_zip_file_stat_internal()
4196 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); in mz_zip_file_stat_internal()
4206 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); in mz_zip_file_stat_internal()
4216 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); in mz_zip_file_stat_internal()
4263 static mz_bool mz_zip_locate_file_binary_search(mz_zip_archive *pZip, const char *pFilename, mz_uin… in mz_zip_locate_file_binary_search() argument
4265 mz_zip_internal_state *pState = pZip->m_pState; in mz_zip_locate_file_binary_search()
4269 const uint32_t size = pZip->m_total_files; in mz_zip_locate_file_binary_search()
4300 return mz_zip_set_error(pZip, MZ_ZIP_FILE_NOT_FOUND); in mz_zip_locate_file_binary_search()
4303 int mz_zip_reader_locate_file(mz_zip_archive *pZip, const char *pName, const char *pComment, mz_uin… in mz_zip_reader_locate_file() argument
4306 if (!mz_zip_reader_locate_file_v2(pZip, pName, pComment, flags, &index)) in mz_zip_reader_locate_file()
4312 mz_bool mz_zip_reader_locate_file_v2(mz_zip_archive *pZip, const char *pName, const char *pComment,… in mz_zip_reader_locate_file_v2() argument
4320 if ((!pZip) || (!pZip->m_pState) || (!pName)) in mz_zip_reader_locate_file_v2()
4321 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_reader_locate_file_v2()
4324 if (((pZip->m_pState->m_init_flags & MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY) == 0) && in mz_zip_reader_locate_file_v2()
4325 (pZip->m_zip_mode == MZ_ZIP_MODE_READING) && in mz_zip_reader_locate_file_v2()
4326 …_FLAG_IGNORE_PATH | MZ_ZIP_FLAG_CASE_SENSITIVE)) == 0) && (!pComment) && (pZip->m_pState->m_sorted… in mz_zip_reader_locate_file_v2()
4328 return mz_zip_locate_file_binary_search(pZip, pName, pIndex); in mz_zip_reader_locate_file_v2()
4334 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_reader_locate_file_v2()
4338 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_reader_locate_file_v2()
4340 for (file_index = 0; file_index < pZip->m_total_files; file_index++) in mz_zip_reader_locate_file_v2()
4342 …mz_uint8 *pHeader = &MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir, mz_uint8, MZ_ZIP_ARRAY_E… in mz_zip_reader_locate_file_v2()
4374 return mz_zip_set_error(pZip, MZ_ZIP_FILE_NOT_FOUND); in mz_zip_reader_locate_file_v2()
4377 mz_bool mz_zip_reader_extract_to_mem_no_alloc(mz_zip_archive *pZip, mz_uint file_index, void *pBuf,… in mz_zip_reader_extract_to_mem_no_alloc() argument
4387 …if ((!pZip) || (!pZip->m_pState) || ((buf_size) && (!pBuf)) || ((user_read_buf_size) && (!pUser_re… in mz_zip_reader_extract_to_mem_no_alloc()
4388 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_reader_extract_to_mem_no_alloc()
4390 if (!mz_zip_reader_file_stat(pZip, file_index, &file_stat)) in mz_zip_reader_extract_to_mem_no_alloc()
4399 return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_ENCRYPTION); in mz_zip_reader_extract_to_mem_no_alloc()
4403 return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_METHOD); in mz_zip_reader_extract_to_mem_no_alloc()
4408 return mz_zip_set_error(pZip, MZ_ZIP_BUF_TOO_SMALL); in mz_zip_reader_extract_to_mem_no_alloc()
4412 …if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pLocal_header, MZ_ZIP_LOCAL_DIR_HEADER_SIZE) !… in mz_zip_reader_extract_to_mem_no_alloc()
4413 return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); in mz_zip_reader_extract_to_mem_no_alloc()
4416 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); in mz_zip_reader_extract_to_mem_no_alloc()
4419 if ((cur_file_ofs + file_stat.m_comp_size) > pZip->m_archive_size) in mz_zip_reader_extract_to_mem_no_alloc()
4420 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); in mz_zip_reader_extract_to_mem_no_alloc()
4425 … if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pBuf, (size_t)needed_size) != needed_size) in mz_zip_reader_extract_to_mem_no_alloc()
4426 return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); in mz_zip_reader_extract_to_mem_no_alloc()
4432 return mz_zip_set_error(pZip, MZ_ZIP_CRC_CHECK_FAILED); in mz_zip_reader_extract_to_mem_no_alloc()
4442 if (pZip->m_pState->m_pMem) in mz_zip_reader_extract_to_mem_no_alloc()
4445 pRead_buf = (mz_uint8 *)pZip->m_pState->m_pMem + cur_file_ofs; in mz_zip_reader_extract_to_mem_no_alloc()
4464 return mz_zip_set_error(pZip, MZ_ZIP_INTERNAL_ERROR); in mz_zip_reader_extract_to_mem_no_alloc()
4466 if (NULL == (pRead_buf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, (size_t)read_buf_size))) in mz_zip_reader_extract_to_mem_no_alloc()
4467 return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); in mz_zip_reader_extract_to_mem_no_alloc()
4477 if ((!read_buf_avail) && (!pZip->m_pState->m_pMem)) in mz_zip_reader_extract_to_mem_no_alloc()
4480 …if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pRead_buf, (size_t)read_buf_avail) != read_buf… in mz_zip_reader_extract_to_mem_no_alloc()
4483 mz_zip_set_error(pZip, MZ_ZIP_DECOMPRESSION_FAILED); in mz_zip_reader_extract_to_mem_no_alloc()
4502 mz_zip_set_error(pZip, MZ_ZIP_UNEXPECTED_DECOMPRESSED_SIZE); in mz_zip_reader_extract_to_mem_no_alloc()
4508 mz_zip_set_error(pZip, MZ_ZIP_CRC_CHECK_FAILED); in mz_zip_reader_extract_to_mem_no_alloc()
4514 if ((!pZip->m_pState->m_pMem) && (!pUser_read_buf)) in mz_zip_reader_extract_to_mem_no_alloc()
4515 pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); in mz_zip_reader_extract_to_mem_no_alloc()
4520 mz_bool mz_zip_reader_extract_file_to_mem_no_alloc(mz_zip_archive *pZip, const char *pFilename, voi… in mz_zip_reader_extract_file_to_mem_no_alloc() argument
4523 if (!mz_zip_reader_locate_file_v2(pZip, pFilename, NULL, flags, &file_index)) in mz_zip_reader_extract_file_to_mem_no_alloc()
4525 …return mz_zip_reader_extract_to_mem_no_alloc(pZip, file_index, pBuf, buf_size, flags, pUser_read_b… in mz_zip_reader_extract_file_to_mem_no_alloc()
4528 mz_bool mz_zip_reader_extract_to_mem(mz_zip_archive *pZip, mz_uint file_index, void *pBuf, size_t b… in mz_zip_reader_extract_to_mem() argument
4530 return mz_zip_reader_extract_to_mem_no_alloc(pZip, file_index, pBuf, buf_size, flags, NULL, 0); in mz_zip_reader_extract_to_mem()
4533 mz_bool mz_zip_reader_extract_file_to_mem(mz_zip_archive *pZip, const char *pFilename, void *pBuf, … in mz_zip_reader_extract_file_to_mem() argument
4535 …return mz_zip_reader_extract_file_to_mem_no_alloc(pZip, pFilename, pBuf, buf_size, flags, NULL, 0); in mz_zip_reader_extract_file_to_mem()
4538 void *mz_zip_reader_extract_to_heap(mz_zip_archive *pZip, mz_uint file_index, size_t *pSize, mz_uin… in mz_zip_reader_extract_to_heap() argument
4541 const mz_uint8 *p = mz_zip_get_cdh(pZip, file_index); in mz_zip_reader_extract_to_heap()
4549 mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_reader_extract_to_heap()
4559 mz_zip_set_error(pZip, MZ_ZIP_INTERNAL_ERROR); in mz_zip_reader_extract_to_heap()
4563 if (NULL == (pBuf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, (size_t)alloc_size))) in mz_zip_reader_extract_to_heap()
4565 mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); in mz_zip_reader_extract_to_heap()
4569 if (!mz_zip_reader_extract_to_mem(pZip, file_index, pBuf, (size_t)alloc_size, flags)) in mz_zip_reader_extract_to_heap()
4571 pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); in mz_zip_reader_extract_to_heap()
4580 void *mz_zip_reader_extract_file_to_heap(mz_zip_archive *pZip, const char *pFilename, size_t *pSize… in mz_zip_reader_extract_file_to_heap() argument
4583 if (!mz_zip_reader_locate_file_v2(pZip, pFilename, NULL, flags, &file_index)) in mz_zip_reader_extract_file_to_heap()
4589 return mz_zip_reader_extract_to_heap(pZip, file_index, pSize, flags); in mz_zip_reader_extract_file_to_heap()
4592 mz_bool mz_zip_reader_extract_to_callback(mz_zip_archive *pZip, mz_uint file_index, mz_file_write_f… in mz_zip_reader_extract_to_callback() argument
4603 if ((!pZip) || (!pZip->m_pState) || (!pCallback) || (!pZip->m_pRead)) in mz_zip_reader_extract_to_callback()
4604 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_reader_extract_to_callback()
4606 if (!mz_zip_reader_file_stat(pZip, file_index, &file_stat)) in mz_zip_reader_extract_to_callback()
4615 return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_ENCRYPTION); in mz_zip_reader_extract_to_callback()
4619 return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_METHOD); in mz_zip_reader_extract_to_callback()
4623 …if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pLocal_header, MZ_ZIP_LOCAL_DIR_HEADER_SIZE) !… in mz_zip_reader_extract_to_callback()
4624 return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); in mz_zip_reader_extract_to_callback()
4627 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); in mz_zip_reader_extract_to_callback()
4630 if ((cur_file_ofs + file_stat.m_comp_size) > pZip->m_archive_size) in mz_zip_reader_extract_to_callback()
4631 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); in mz_zip_reader_extract_to_callback()
4634 if (pZip->m_pState->m_pMem) in mz_zip_reader_extract_to_callback()
4636 pRead_buf = (mz_uint8 *)pZip->m_pState->m_pMem + cur_file_ofs; in mz_zip_reader_extract_to_callback()
4643 if (NULL == (pRead_buf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, (size_t)read_buf_size))) in mz_zip_reader_extract_to_callback()
4644 return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); in mz_zip_reader_extract_to_callback()
4653 if (pZip->m_pState->m_pMem) in mz_zip_reader_extract_to_callback()
4656 return mz_zip_set_error(pZip, MZ_ZIP_INTERNAL_ERROR); in mz_zip_reader_extract_to_callback()
4660 mz_zip_set_error(pZip, MZ_ZIP_WRITE_CALLBACK_FAILED); in mz_zip_reader_extract_to_callback()
4679 …if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pRead_buf, (size_t)read_buf_avail) != read_buf… in mz_zip_reader_extract_to_callback()
4681 mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); in mz_zip_reader_extract_to_callback()
4695 mz_zip_set_error(pZip, MZ_ZIP_WRITE_CALLBACK_FAILED); in mz_zip_reader_extract_to_callback()
4711 if (NULL == (pWrite_buf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, TINFL_LZ_DICT_SIZE))) in mz_zip_reader_extract_to_callback()
4713 mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); in mz_zip_reader_extract_to_callback()
4722 if ((!read_buf_avail) && (!pZip->m_pState->m_pMem)) in mz_zip_reader_extract_to_callback()
4725 …if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pRead_buf, (size_t)read_buf_avail) != read_buf… in mz_zip_reader_extract_to_callback()
4727 mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); in mz_zip_reader_extract_to_callback()
4745 mz_zip_set_error(pZip, MZ_ZIP_WRITE_CALLBACK_FAILED); in mz_zip_reader_extract_to_callback()
4755 mz_zip_set_error(pZip, MZ_ZIP_DECOMPRESSION_FAILED); in mz_zip_reader_extract_to_callback()
4769 mz_zip_set_error(pZip, MZ_ZIP_UNEXPECTED_DECOMPRESSED_SIZE); in mz_zip_reader_extract_to_callback()
4775 mz_zip_set_error(pZip, MZ_ZIP_DECOMPRESSION_FAILED); in mz_zip_reader_extract_to_callback()
4781 if (!pZip->m_pState->m_pMem) in mz_zip_reader_extract_to_callback()
4782 pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); in mz_zip_reader_extract_to_callback()
4785 pZip->m_pFree(pZip->m_pAlloc_opaque, pWrite_buf); in mz_zip_reader_extract_to_callback()
4790 mz_bool mz_zip_reader_extract_file_to_callback(mz_zip_archive *pZip, const char *pFilename, mz_file… in mz_zip_reader_extract_file_to_callback() argument
4793 if (!mz_zip_reader_locate_file_v2(pZip, pFilename, NULL, flags, &file_index)) in mz_zip_reader_extract_file_to_callback()
4796 return mz_zip_reader_extract_to_callback(pZip, file_index, pCallback, pOpaque, flags); in mz_zip_reader_extract_file_to_callback()
4799 mz_zip_reader_extract_iter_state* mz_zip_reader_extract_iter_new(mz_zip_archive *pZip, mz_uint file… in mz_zip_reader_extract_iter_new() argument
4806 if ((!pZip) || (!pZip->m_pState)) in mz_zip_reader_extract_iter_new()
4810 …pState = (mz_zip_reader_extract_iter_state*)pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, sizeof(mz_zip… in mz_zip_reader_extract_iter_new()
4813 mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); in mz_zip_reader_extract_iter_new()
4818 if (!mz_zip_reader_file_stat(pZip, file_index, &pState->file_stat)) in mz_zip_reader_extract_iter_new()
4820 pZip->m_pFree(pZip->m_pAlloc_opaque, pState); in mz_zip_reader_extract_iter_new()
4827 mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_ENCRYPTION); in mz_zip_reader_extract_iter_new()
4828 pZip->m_pFree(pZip->m_pAlloc_opaque, pState); in mz_zip_reader_extract_iter_new()
4835 mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_METHOD); in mz_zip_reader_extract_iter_new()
4836 pZip->m_pFree(pZip->m_pAlloc_opaque, pState); in mz_zip_reader_extract_iter_new()
4841 pState->pZip = pZip; in mz_zip_reader_extract_iter_new()
4857 …if (pZip->m_pRead(pZip->m_pIO_opaque, pState->cur_file_ofs, pLocal_header, MZ_ZIP_LOCAL_DIR_HEADER… in mz_zip_reader_extract_iter_new()
4859 mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); in mz_zip_reader_extract_iter_new()
4860 pZip->m_pFree(pZip->m_pAlloc_opaque, pState); in mz_zip_reader_extract_iter_new()
4866 mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); in mz_zip_reader_extract_iter_new()
4867 pZip->m_pFree(pZip->m_pAlloc_opaque, pState); in mz_zip_reader_extract_iter_new()
4872 if ((pState->cur_file_ofs + pState->file_stat.m_comp_size) > pZip->m_archive_size) in mz_zip_reader_extract_iter_new()
4874 mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); in mz_zip_reader_extract_iter_new()
4875 pZip->m_pFree(pZip->m_pAlloc_opaque, pState); in mz_zip_reader_extract_iter_new()
4880 if (pZip->m_pState->m_pMem) in mz_zip_reader_extract_iter_new()
4882 pState->pRead_buf = (mz_uint8 *)pZip->m_pState->m_pMem + pState->cur_file_ofs; in mz_zip_reader_extract_iter_new()
4892 …if (NULL == (pState->pRead_buf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, (size_t)pState->read_buf… in mz_zip_reader_extract_iter_new()
4894 mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); in mz_zip_reader_extract_iter_new()
4895 pZip->m_pFree(pZip->m_pAlloc_opaque, pState); in mz_zip_reader_extract_iter_new()
4914 … if (NULL == (pState->pWrite_buf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, TINFL_LZ_DICT_SIZE))) in mz_zip_reader_extract_iter_new()
4916 mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); in mz_zip_reader_extract_iter_new()
4918 pZip->m_pFree(pZip->m_pAlloc_opaque, pState->pRead_buf); in mz_zip_reader_extract_iter_new()
4919 pZip->m_pFree(pZip->m_pAlloc_opaque, pState); in mz_zip_reader_extract_iter_new()
4927 mz_zip_reader_extract_iter_state* mz_zip_reader_extract_file_iter_new(mz_zip_archive *pZip, const c… in mz_zip_reader_extract_file_iter_new() argument
4932 if (!mz_zip_reader_locate_file_v2(pZip, pFilename, NULL, flags, &file_index)) in mz_zip_reader_extract_file_iter_new()
4936 return mz_zip_reader_extract_iter_new(pZip, file_index, flags); in mz_zip_reader_extract_file_iter_new()
4944 if ((!pState) || (!pState->pZip) || (!pState->pZip->m_pState) || (!pvBuf)) in mz_zip_reader_extract_iter_read()
4953 if (pState->pZip->m_pState->m_pMem) in mz_zip_reader_extract_iter_read()
4962 …if (pState->pZip->m_pRead(pState->pZip->m_pIO_opaque, pState->cur_file_ofs, pvBuf, copied_to_calle… in mz_zip_reader_extract_iter_read()
4965 mz_zip_set_error(pState->pZip, MZ_ZIP_FILE_READ_FAILED); in mz_zip_reader_extract_iter_read()
4995 if ((!pState->read_buf_avail) && (!pState->pZip->m_pState->m_pMem)) in mz_zip_reader_extract_iter_read()
4999 …if (pState->pZip->m_pRead(pState->pZip->m_pIO_opaque, pState->cur_file_ofs, pState->pRead_buf, (si… in mz_zip_reader_extract_iter_read()
5001 mz_zip_set_error(pState->pZip, MZ_ZIP_FILE_READ_FAILED); in mz_zip_reader_extract_iter_read()
5041 mz_zip_set_error(pState->pZip, MZ_ZIP_DECOMPRESSION_FAILED); in mz_zip_reader_extract_iter_read()
5061 if ((!pState) || (!pState->pZip) || (!pState->pZip->m_pState)) in mz_zip_reader_extract_iter_free()
5070 mz_zip_set_error(pState->pZip, MZ_ZIP_UNEXPECTED_DECOMPRESSED_SIZE); in mz_zip_reader_extract_iter_free()
5076 mz_zip_set_error(pState->pZip, MZ_ZIP_DECOMPRESSION_FAILED); in mz_zip_reader_extract_iter_free()
5083 if (!pState->pZip->m_pState->m_pMem) in mz_zip_reader_extract_iter_free()
5084 pState->pZip->m_pFree(pState->pZip->m_pAlloc_opaque, pState->pRead_buf); in mz_zip_reader_extract_iter_free()
5086 pState->pZip->m_pFree(pState->pZip->m_pAlloc_opaque, pState->pWrite_buf); in mz_zip_reader_extract_iter_free()
5092 pState->pZip->m_pFree(pState->pZip->m_pAlloc_opaque, pState); in mz_zip_reader_extract_iter_free()
5105 mz_bool mz_zip_reader_extract_to_file(mz_zip_archive *pZip, mz_uint file_index, const char *pDst_fi… in mz_zip_reader_extract_to_file() argument
5111 if (!mz_zip_reader_file_stat(pZip, file_index, &file_stat)) in mz_zip_reader_extract_to_file()
5115 return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_FEATURE); in mz_zip_reader_extract_to_file()
5119 return mz_zip_set_error(pZip, MZ_ZIP_FILE_OPEN_FAILED); in mz_zip_reader_extract_to_file()
5121 …status = mz_zip_reader_extract_to_callback(pZip, file_index, mz_zip_file_write_callback, pFile, fl… in mz_zip_reader_extract_to_file()
5126 mz_zip_set_error(pZip, MZ_ZIP_FILE_CLOSE_FAILED); in mz_zip_reader_extract_to_file()
5139 mz_bool mz_zip_reader_extract_file_to_file(mz_zip_archive *pZip, const char *pArchive_filename, con… in mz_zip_reader_extract_file_to_file() argument
5142 if (!mz_zip_reader_locate_file_v2(pZip, pArchive_filename, NULL, flags, &file_index)) in mz_zip_reader_extract_file_to_file()
5145 return mz_zip_reader_extract_to_file(pZip, file_index, pDst_filename, flags); in mz_zip_reader_extract_file_to_file()
5148 mz_bool mz_zip_reader_extract_to_cfile(mz_zip_archive *pZip, mz_uint file_index, MZ_FILE *pFile, mz… in mz_zip_reader_extract_to_cfile() argument
5152 if (!mz_zip_reader_file_stat(pZip, file_index, &file_stat)) in mz_zip_reader_extract_to_cfile()
5156 return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_FEATURE); in mz_zip_reader_extract_to_cfile()
5158 …return mz_zip_reader_extract_to_callback(pZip, file_index, mz_zip_file_write_callback, pFile, flag… in mz_zip_reader_extract_to_cfile()
5161 mz_bool mz_zip_reader_extract_file_to_cfile(mz_zip_archive *pZip, const char *pArchive_filename, MZ… in mz_zip_reader_extract_file_to_cfile() argument
5164 if (!mz_zip_reader_locate_file_v2(pZip, pArchive_filename, NULL, flags, &file_index)) in mz_zip_reader_extract_file_to_cfile()
5167 return mz_zip_reader_extract_to_cfile(pZip, file_index, pFile, flags); in mz_zip_reader_extract_file_to_cfile()
5179 mz_bool mz_zip_validate_file(mz_zip_archive *pZip, mz_uint file_index, mz_uint flags) in mz_zip_validate_file() argument
5198 if ((!pZip) || (!pZip->m_pState) || (!pZip->m_pAlloc) || (!pZip->m_pFree) || (!pZip->m_pRead)) in mz_zip_validate_file()
5199 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_validate_file()
5201 if (file_index > pZip->m_total_files) in mz_zip_validate_file()
5202 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_validate_file()
5204 pState = pZip->m_pState; in mz_zip_validate_file()
5206 pCentral_dir_header = mz_zip_get_cdh(pZip, file_index); in mz_zip_validate_file()
5208 …if (!mz_zip_file_stat_internal(pZip, file_index, pCentral_dir_header, &file_stat, &found_zip64_ext… in mz_zip_validate_file()
5217 return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_ENCRYPTION); in mz_zip_validate_file()
5221 return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_METHOD); in mz_zip_validate_file()
5224 return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_FEATURE); in mz_zip_validate_file()
5228 …if (pZip->m_pRead(pZip->m_pIO_opaque, local_header_ofs, pLocal_header, MZ_ZIP_LOCAL_DIR_HEADER_SIZ… in mz_zip_validate_file()
5229 return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); in mz_zip_validate_file()
5232 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); in mz_zip_validate_file()
5243 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); in mz_zip_validate_file()
5245 …local_header_filename_len + local_header_extra_len + file_stat.m_comp_size) > pZip->m_archive_size) in mz_zip_validate_file()
5246 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); in mz_zip_validate_file()
5248 …if (!mz_zip_array_resize(pZip, &file_data_array, MZ_MAX(local_header_filename_len, local_header_ex… in mz_zip_validate_file()
5249 return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); in mz_zip_validate_file()
5253 …if (pZip->m_pRead(pZip->m_pIO_opaque, local_header_ofs + MZ_ZIP_LOCAL_DIR_HEADER_SIZE, file_data_a… in mz_zip_validate_file()
5255 mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); in mz_zip_validate_file()
5262 mz_zip_set_error(pZip, MZ_ZIP_VALIDATION_FAILED); in mz_zip_validate_file()
5272 …if (pZip->m_pRead(pZip->m_pIO_opaque, local_header_ofs + MZ_ZIP_LOCAL_DIR_HEADER_SIZE + local_head… in mz_zip_validate_file()
5274 mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); in mz_zip_validate_file()
5283 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); in mz_zip_validate_file()
5290 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); in mz_zip_validate_file()
5298 mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); in mz_zip_validate_file()
5326 …if (pZip->m_pRead(pZip->m_pIO_opaque, local_header_ofs + MZ_ZIP_LOCAL_DIR_HEADER_SIZE + local_head… in mz_zip_validate_file()
5328 mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); in mz_zip_validate_file()
5350 mz_zip_set_error(pZip, MZ_ZIP_VALIDATION_FAILED); in mz_zip_validate_file()
5358 mz_zip_set_error(pZip, MZ_ZIP_VALIDATION_FAILED); in mz_zip_validate_file()
5363 mz_zip_array_clear(pZip, &file_data_array); in mz_zip_validate_file()
5367 …if (!mz_zip_reader_extract_to_callback(pZip, file_index, mz_zip_compute_crc32_callback, &uncomp_cr… in mz_zip_validate_file()
5373 mz_zip_set_error(pZip, MZ_ZIP_VALIDATION_FAILED); in mz_zip_validate_file()
5381 mz_zip_array_clear(pZip, &file_data_array); in mz_zip_validate_file()
5385 mz_bool mz_zip_validate_archive(mz_zip_archive *pZip, mz_uint flags) in mz_zip_validate_archive() argument
5390 if ((!pZip) || (!pZip->m_pState) || (!pZip->m_pAlloc) || (!pZip->m_pFree) || (!pZip->m_pRead)) in mz_zip_validate_archive()
5391 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_validate_archive()
5393 pState = pZip->m_pState; in mz_zip_validate_archive()
5398 if (pZip->m_total_files > MZ_UINT16_MAX) in mz_zip_validate_archive()
5399 return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); in mz_zip_validate_archive()
5401 if (pZip->m_archive_size > MZ_UINT32_MAX) in mz_zip_validate_archive()
5402 return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); in mz_zip_validate_archive()
5406 if (pZip->m_total_files >= MZ_UINT32_MAX) in mz_zip_validate_archive()
5407 return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); in mz_zip_validate_archive()
5410 return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); in mz_zip_validate_archive()
5413 for (i = 0; i < pZip->m_total_files; i++) in mz_zip_validate_archive()
5420 if (!mz_zip_reader_file_stat(pZip, i, &stat)) in mz_zip_validate_archive()
5423 if (!mz_zip_reader_locate_file_v2(pZip, stat.m_filename, NULL, 0, &found_index)) in mz_zip_validate_archive()
5428 return mz_zip_set_error(pZip, MZ_ZIP_VALIDATION_FAILED); in mz_zip_validate_archive()
5431 if (!mz_zip_validate_file(pZip, i, flags)) in mz_zip_validate_archive()
5550 mz_zip_archive *pZip = (mz_zip_archive *)pOpaque; in mz_zip_heap_write_func() local
5551 mz_zip_internal_state *pState = pZip->m_pState; in mz_zip_heap_write_func()
5560 mz_zip_set_error(pZip, MZ_ZIP_FILE_TOO_LARGE); in mz_zip_heap_write_func()
5572 …if (NULL == (pNew_block = pZip->m_pRealloc(pZip->m_pAlloc_opaque, pState->m_pMem, 1, new_capacity)… in mz_zip_heap_write_func()
5574 mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); in mz_zip_heap_write_func()
5586 static mz_bool mz_zip_writer_end_internal(mz_zip_archive *pZip, mz_bool set_last_error) in mz_zip_writer_end_internal() argument
5591 …if ((!pZip) || (!pZip->m_pState) || (!pZip->m_pAlloc) || (!pZip->m_pFree) || ((pZip->m_zip_mode !=… in mz_zip_writer_end_internal()
5594 mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_writer_end_internal()
5598 pState = pZip->m_pState; in mz_zip_writer_end_internal()
5599 pZip->m_pState = NULL; in mz_zip_writer_end_internal()
5600 mz_zip_array_clear(pZip, &pState->m_central_dir); in mz_zip_writer_end_internal()
5601 mz_zip_array_clear(pZip, &pState->m_central_dir_offsets); in mz_zip_writer_end_internal()
5602 mz_zip_array_clear(pZip, &pState->m_sorted_central_dir_offsets); in mz_zip_writer_end_internal()
5607 if (pZip->m_zip_type == MZ_ZIP_TYPE_FILE) in mz_zip_writer_end_internal()
5612 mz_zip_set_error(pZip, MZ_ZIP_FILE_CLOSE_FAILED); in mz_zip_writer_end_internal()
5621 if ((pZip->m_pWrite == mz_zip_heap_write_func) && (pState->m_pMem)) in mz_zip_writer_end_internal()
5623 pZip->m_pFree(pZip->m_pAlloc_opaque, pState->m_pMem); in mz_zip_writer_end_internal()
5627 pZip->m_pFree(pZip->m_pAlloc_opaque, pState); in mz_zip_writer_end_internal()
5628 pZip->m_zip_mode = MZ_ZIP_MODE_INVALID; in mz_zip_writer_end_internal()
5632 mz_bool mz_zip_writer_init_v2(mz_zip_archive *pZip, mz_uint64 existing_size, mz_uint flags) in mz_zip_writer_init_v2() argument
5636 … if ((!pZip) || (pZip->m_pState) || (!pZip->m_pWrite) || (pZip->m_zip_mode != MZ_ZIP_MODE_INVALID)) in mz_zip_writer_init_v2()
5637 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_writer_init_v2()
5641 if (!pZip->m_pRead) in mz_zip_writer_init_v2()
5642 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_writer_init_v2()
5645 if (pZip->m_file_offset_alignment) in mz_zip_writer_init_v2()
5648 if (pZip->m_file_offset_alignment & (pZip->m_file_offset_alignment - 1)) in mz_zip_writer_init_v2()
5649 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_writer_init_v2()
5652 if (!pZip->m_pAlloc) in mz_zip_writer_init_v2()
5653 pZip->m_pAlloc = miniz_def_alloc_func; in mz_zip_writer_init_v2()
5654 if (!pZip->m_pFree) in mz_zip_writer_init_v2()
5655 pZip->m_pFree = miniz_def_free_func; in mz_zip_writer_init_v2()
5656 if (!pZip->m_pRealloc) in mz_zip_writer_init_v2()
5657 pZip->m_pRealloc = miniz_def_realloc_func; in mz_zip_writer_init_v2()
5659 pZip->m_archive_size = existing_size; in mz_zip_writer_init_v2()
5660 pZip->m_central_directory_file_ofs = 0; in mz_zip_writer_init_v2()
5661 pZip->m_total_files = 0; in mz_zip_writer_init_v2()
5663 …if (NULL == (pZip->m_pState = (mz_zip_internal_state *)pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, si… in mz_zip_writer_init_v2()
5664 return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); in mz_zip_writer_init_v2()
5666 memset(pZip->m_pState, 0, sizeof(mz_zip_internal_state)); in mz_zip_writer_init_v2()
5668 MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_central_dir, sizeof(mz_uint8)); in mz_zip_writer_init_v2()
5669 MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_central_dir_offsets, sizeof(mz_uint32)); in mz_zip_writer_init_v2()
5670 MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_sorted_central_dir_offsets, sizeof(mz_uint32)); in mz_zip_writer_init_v2()
5672 pZip->m_pState->m_zip64 = zip64; in mz_zip_writer_init_v2()
5673 pZip->m_pState->m_zip64_has_extended_info_fields = zip64; in mz_zip_writer_init_v2()
5675 pZip->m_zip_type = MZ_ZIP_TYPE_USER; in mz_zip_writer_init_v2()
5676 pZip->m_zip_mode = MZ_ZIP_MODE_WRITING; in mz_zip_writer_init_v2()
5681 mz_bool mz_zip_writer_init(mz_zip_archive *pZip, mz_uint64 existing_size) in mz_zip_writer_init() argument
5683 return mz_zip_writer_init_v2(pZip, existing_size, 0); in mz_zip_writer_init()
5686 mz_bool mz_zip_writer_init_heap_v2(mz_zip_archive *pZip, size_t size_to_reserve_at_beginning, size_… in mz_zip_writer_init_heap_v2() argument
5688 pZip->m_pWrite = mz_zip_heap_write_func; in mz_zip_writer_init_heap_v2()
5689 pZip->m_pNeeds_keepalive = NULL; in mz_zip_writer_init_heap_v2()
5692 pZip->m_pRead = mz_zip_mem_read_func; in mz_zip_writer_init_heap_v2()
5694 pZip->m_pIO_opaque = pZip; in mz_zip_writer_init_heap_v2()
5696 if (!mz_zip_writer_init_v2(pZip, size_to_reserve_at_beginning, flags)) in mz_zip_writer_init_heap_v2()
5699 pZip->m_zip_type = MZ_ZIP_TYPE_HEAP; in mz_zip_writer_init_heap_v2()
5703 …if (NULL == (pZip->m_pState->m_pMem = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, initial_allocation_… in mz_zip_writer_init_heap_v2()
5705 mz_zip_writer_end_internal(pZip, MZ_FALSE); in mz_zip_writer_init_heap_v2()
5706 return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); in mz_zip_writer_init_heap_v2()
5708 pZip->m_pState->m_mem_capacity = initial_allocation_size; in mz_zip_writer_init_heap_v2()
5714 mz_bool mz_zip_writer_init_heap(mz_zip_archive *pZip, size_t size_to_reserve_at_beginning, size_t i… in mz_zip_writer_init_heap() argument
5716 … return mz_zip_writer_init_heap_v2(pZip, size_to_reserve_at_beginning, initial_allocation_size, 0); in mz_zip_writer_init_heap()
5722 mz_zip_archive *pZip = (mz_zip_archive *)pOpaque; in mz_zip_file_write_func() local
5723 mz_int64 cur_ofs = MZ_FTELL64(pZip->m_pState->m_pFile); in mz_zip_file_write_func()
5725 file_ofs += pZip->m_pState->m_file_archive_start_ofs; in mz_zip_file_write_func()
5727 …if (((mz_int64)file_ofs < 0) || (((cur_ofs != (mz_int64)file_ofs)) && (MZ_FSEEK64(pZip->m_pState->… in mz_zip_file_write_func()
5729 mz_zip_set_error(pZip, MZ_ZIP_FILE_SEEK_FAILED); in mz_zip_file_write_func()
5733 return MZ_FWRITE(pBuf, 1, n, pZip->m_pState->m_pFile); in mz_zip_file_write_func()
5736 mz_bool mz_zip_writer_init_file(mz_zip_archive *pZip, const char *pFilename, mz_uint64 size_to_rese… in mz_zip_writer_init_file() argument
5738 return mz_zip_writer_init_file_v2(pZip, pFilename, size_to_reserve_at_beginning, 0); in mz_zip_writer_init_file()
5741 mz_bool mz_zip_writer_init_file_v2(mz_zip_archive *pZip, const char *pFilename, mz_uint64 size_to_r… in mz_zip_writer_init_file_v2() argument
5745 pZip->m_pWrite = mz_zip_file_write_func; in mz_zip_writer_init_file_v2()
5746 pZip->m_pNeeds_keepalive = NULL; in mz_zip_writer_init_file_v2()
5749 pZip->m_pRead = mz_zip_file_read_func; in mz_zip_writer_init_file_v2()
5751 pZip->m_pIO_opaque = pZip; in mz_zip_writer_init_file_v2()
5753 if (!mz_zip_writer_init_v2(pZip, size_to_reserve_at_beginning, flags)) in mz_zip_writer_init_file_v2()
5758 mz_zip_writer_end(pZip); in mz_zip_writer_init_file_v2()
5759 return mz_zip_set_error(pZip, MZ_ZIP_FILE_OPEN_FAILED); in mz_zip_writer_init_file_v2()
5762 pZip->m_pState->m_pFile = pFile; in mz_zip_writer_init_file_v2()
5763 pZip->m_zip_type = MZ_ZIP_TYPE_FILE; in mz_zip_writer_init_file_v2()
5775 if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_ofs, buf, n) != n) in mz_zip_writer_init_file_v2()
5777 mz_zip_writer_end(pZip); in mz_zip_writer_init_file_v2()
5778 return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); in mz_zip_writer_init_file_v2()
5788 mz_bool mz_zip_writer_init_cfile(mz_zip_archive *pZip, MZ_FILE *pFile, mz_uint flags) in mz_zip_writer_init_cfile() argument
5790 pZip->m_pWrite = mz_zip_file_write_func; in mz_zip_writer_init_cfile()
5791 pZip->m_pNeeds_keepalive = NULL; in mz_zip_writer_init_cfile()
5794 pZip->m_pRead = mz_zip_file_read_func; in mz_zip_writer_init_cfile()
5796 pZip->m_pIO_opaque = pZip; in mz_zip_writer_init_cfile()
5798 if (!mz_zip_writer_init_v2(pZip, 0, flags)) in mz_zip_writer_init_cfile()
5801 pZip->m_pState->m_pFile = pFile; in mz_zip_writer_init_cfile()
5802 pZip->m_pState->m_file_archive_start_ofs = MZ_FTELL64(pZip->m_pState->m_pFile); in mz_zip_writer_init_cfile()
5803 pZip->m_zip_type = MZ_ZIP_TYPE_CFILE; in mz_zip_writer_init_cfile()
5809 mz_bool mz_zip_writer_init_from_reader_v2(mz_zip_archive *pZip, const char *pFilename, mz_uint flag… in mz_zip_writer_init_from_reader_v2() argument
5813 if ((!pZip) || (!pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_READING)) in mz_zip_writer_init_from_reader_v2()
5814 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_writer_init_from_reader_v2()
5819 if (!pZip->m_pState->m_zip64) in mz_zip_writer_init_from_reader_v2()
5820 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_writer_init_from_reader_v2()
5824 if (pZip->m_pState->m_zip64) in mz_zip_writer_init_from_reader_v2()
5826 if (pZip->m_total_files == MZ_UINT32_MAX) in mz_zip_writer_init_from_reader_v2()
5827 return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES); in mz_zip_writer_init_from_reader_v2()
5831 if (pZip->m_total_files == MZ_UINT16_MAX) in mz_zip_writer_init_from_reader_v2()
5832 return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES); in mz_zip_writer_init_from_reader_v2()
5834 …if ((pZip->m_archive_size + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + MZ_ZIP_LOCAL_DIR_HEADER_SIZE) > MZ_UI… in mz_zip_writer_init_from_reader_v2()
5835 return mz_zip_set_error(pZip, MZ_ZIP_FILE_TOO_LARGE); in mz_zip_writer_init_from_reader_v2()
5838 pState = pZip->m_pState; in mz_zip_writer_init_from_reader_v2()
5844 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_writer_init_from_reader_v2()
5846 if (pZip->m_pIO_opaque != pZip) in mz_zip_writer_init_from_reader_v2()
5847 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_writer_init_from_reader_v2()
5849 if (pZip->m_zip_type == MZ_ZIP_TYPE_FILE) in mz_zip_writer_init_from_reader_v2()
5852 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_writer_init_from_reader_v2()
5858 mz_zip_reader_end_internal(pZip, MZ_FALSE); in mz_zip_writer_init_from_reader_v2()
5859 return mz_zip_set_error(pZip, MZ_ZIP_FILE_OPEN_FAILED); in mz_zip_writer_init_from_reader_v2()
5863 pZip->m_pWrite = mz_zip_file_write_func; in mz_zip_writer_init_from_reader_v2()
5864 pZip->m_pNeeds_keepalive = NULL; in mz_zip_writer_init_from_reader_v2()
5870 if (pZip->m_pIO_opaque != pZip) in mz_zip_writer_init_from_reader_v2()
5871 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_writer_init_from_reader_v2()
5874 pZip->m_pWrite = mz_zip_heap_write_func; in mz_zip_writer_init_from_reader_v2()
5875 pZip->m_pNeeds_keepalive = NULL; in mz_zip_writer_init_from_reader_v2()
5878 else if (!pZip->m_pWrite) in mz_zip_writer_init_from_reader_v2()
5879 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_writer_init_from_reader_v2()
5883 pZip->m_archive_size = pZip->m_central_directory_file_ofs; in mz_zip_writer_init_from_reader_v2()
5884 pZip->m_central_directory_file_ofs = 0; in mz_zip_writer_init_from_reader_v2()
5889 mz_zip_array_clear(pZip, &pZip->m_pState->m_sorted_central_dir_offsets); in mz_zip_writer_init_from_reader_v2()
5891 pZip->m_zip_mode = MZ_ZIP_MODE_WRITING; in mz_zip_writer_init_from_reader_v2()
5896 mz_bool mz_zip_writer_init_from_reader(mz_zip_archive *pZip, const char *pFilename) in mz_zip_writer_init_from_reader() argument
5898 return mz_zip_writer_init_from_reader_v2(pZip, pFilename, 0); in mz_zip_writer_init_from_reader()
5902 mz_bool mz_zip_writer_add_mem(mz_zip_archive *pZip, const char *pArchive_name, const void *pBuf, si… in mz_zip_writer_add_mem() argument
5904 …return mz_zip_writer_add_mem_ex(pZip, pArchive_name, pBuf, buf_size, NULL, 0, level_and_flags, 0, … in mz_zip_writer_add_mem()
5962 static mz_bool mz_zip_writer_create_local_dir_header(mz_zip_archive *pZip, mz_uint8 *pDst, mz_uint1… in mz_zip_writer_create_local_dir_header() argument
5964 (void)pZip; in mz_zip_writer_create_local_dir_header()
5980 static mz_bool mz_zip_writer_create_central_dir_header(mz_zip_archive *pZip, mz_uint8 *pDst, in mz_zip_writer_create_central_dir_header() argument
5986 (void)pZip; in mz_zip_writer_create_central_dir_header()
6005 static mz_bool mz_zip_writer_add_to_central_dir(mz_zip_archive *pZip, const char *pFilename, mz_uin… in mz_zip_writer_add_to_central_dir() argument
6012 mz_zip_internal_state *pState = pZip->m_pState; in mz_zip_writer_add_to_central_dir()
6017 if (!pZip->m_pState->m_zip64) in mz_zip_writer_add_to_central_dir()
6020 return mz_zip_set_error(pZip, MZ_ZIP_FILE_TOO_LARGE); in mz_zip_writer_add_to_central_dir()
6025 return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_CDIR_SIZE); in mz_zip_writer_add_to_central_dir()
6027 …if (!mz_zip_writer_create_central_dir_header(pZip, central_dir_header, filename_size, (mz_uint16)(… in mz_zip_writer_add_to_central_dir()
6028 return mz_zip_set_error(pZip, MZ_ZIP_INTERNAL_ERROR); in mz_zip_writer_add_to_central_dir()
6030 …if ((!mz_zip_array_push_back(pZip, &pState->m_central_dir, central_dir_header, MZ_ZIP_CENTRAL_DIR_… in mz_zip_writer_add_to_central_dir()
6031 (!mz_zip_array_push_back(pZip, &pState->m_central_dir, pFilename, filename_size)) || in mz_zip_writer_add_to_central_dir()
6032 (!mz_zip_array_push_back(pZip, &pState->m_central_dir, pExtra, extra_size)) || in mz_zip_writer_add_to_central_dir()
6033 … (!mz_zip_array_push_back(pZip, &pState->m_central_dir, user_extra_data, user_extra_data_len)) || in mz_zip_writer_add_to_central_dir()
6034 (!mz_zip_array_push_back(pZip, &pState->m_central_dir, pComment, comment_size)) || in mz_zip_writer_add_to_central_dir()
6035 (!mz_zip_array_push_back(pZip, &pState->m_central_dir_offsets, &central_dir_ofs, 1))) in mz_zip_writer_add_to_central_dir()
6038 mz_zip_array_resize(pZip, &pState->m_central_dir, orig_central_dir_size, MZ_FALSE); in mz_zip_writer_add_to_central_dir()
6039 return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); in mz_zip_writer_add_to_central_dir()
6056 static mz_uint mz_zip_writer_compute_padding_needed_for_file_alignment(mz_zip_archive *pZip) in mz_zip_writer_compute_padding_needed_for_file_alignment() argument
6059 if (!pZip->m_file_offset_alignment) in mz_zip_writer_compute_padding_needed_for_file_alignment()
6061 n = (mz_uint32)(pZip->m_archive_size & (pZip->m_file_offset_alignment - 1)); in mz_zip_writer_compute_padding_needed_for_file_alignment()
6062 return (mz_uint)((pZip->m_file_offset_alignment - n) & (pZip->m_file_offset_alignment - 1)); in mz_zip_writer_compute_padding_needed_for_file_alignment()
6065 static mz_bool mz_zip_writer_write_zeros(mz_zip_archive *pZip, mz_uint64 cur_file_ofs, mz_uint32 n) in mz_zip_writer_write_zeros() argument
6072 if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_file_ofs, buf, s) != s) in mz_zip_writer_write_zeros()
6073 return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); in mz_zip_writer_write_zeros()
6081 mz_bool mz_zip_writer_add_mem_ex(mz_zip_archive *pZip, const char *pArchive_name, const void *pBuf,… in mz_zip_writer_add_mem_ex() argument
6084 …return mz_zip_writer_add_mem_ex_v2(pZip, pArchive_name, pBuf, buf_size, pComment, comment_size, le… in mz_zip_writer_add_mem_ex()
6087 mz_bool mz_zip_writer_add_mem_ex_v2(mz_zip_archive *pZip, const char *pArchive_name, const void *pB… in mz_zip_writer_add_mem_ex_v2() argument
6093 …mz_uint64 local_dir_header_ofs = pZip->m_archive_size, cur_archive_file_ofs = pZip->m_archive_size… in mz_zip_writer_add_mem_ex_v2()
6116 …if ((!pZip) || (!pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_WRITING) || ((buf_size) && (!… in mz_zip_writer_add_mem_ex_v2()
6117 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_writer_add_mem_ex_v2()
6119 pState = pZip->m_pState; in mz_zip_writer_add_mem_ex_v2()
6123 if (pZip->m_total_files == MZ_UINT32_MAX) in mz_zip_writer_add_mem_ex_v2()
6124 return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES); in mz_zip_writer_add_mem_ex_v2()
6128 if (pZip->m_total_files == MZ_UINT16_MAX) in mz_zip_writer_add_mem_ex_v2()
6141 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_writer_add_mem_ex_v2()
6144 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_FILENAME); in mz_zip_writer_add_mem_ex_v2()
6172 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_FILENAME); in mz_zip_writer_add_mem_ex_v2()
6174 num_alignment_padding_bytes = mz_zip_writer_compute_padding_needed_for_file_alignment(pZip); in mz_zip_writer_add_mem_ex_v2()
6178 return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_CDIR_SIZE); in mz_zip_writer_add_mem_ex_v2()
6183 …if ((pZip->m_archive_size + num_alignment_padding_bytes + MZ_ZIP_LOCAL_DIR_HEADER_SIZE + archive_n… in mz_zip_writer_add_mem_ex_v2()
6200 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_writer_add_mem_ex_v2()
6204pZip, &pState->m_central_dir, MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + archive_name_size + comment_size + … in mz_zip_writer_add_mem_ex_v2()
6205 return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); in mz_zip_writer_add_mem_ex_v2()
6209 …if (NULL == (pComp = (tdefl_compressor *)pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, sizeof(tdefl_com… in mz_zip_writer_add_mem_ex_v2()
6210 return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); in mz_zip_writer_add_mem_ex_v2()
6213 if (!mz_zip_writer_write_zeros(pZip, cur_archive_file_ofs, num_alignment_padding_bytes)) in mz_zip_writer_add_mem_ex_v2()
6215 pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); in mz_zip_writer_add_mem_ex_v2()
6220 if (pZip->m_file_offset_alignment) in mz_zip_writer_add_mem_ex_v2()
6222 MZ_ASSERT((local_dir_header_ofs & (pZip->m_file_offset_alignment - 1)) == 0); in mz_zip_writer_add_mem_ex_v2()
6242 …if (!mz_zip_writer_create_local_dir_header(pZip, local_dir_header, (mz_uint16)archive_name_size, (… in mz_zip_writer_add_mem_ex_v2()
6243 return mz_zip_set_error(pZip, MZ_ZIP_INTERNAL_ERROR); in mz_zip_writer_add_mem_ex_v2()
6245 …if (pZip->m_pWrite(pZip->m_pIO_opaque, local_dir_header_ofs, local_dir_header, sizeof(local_dir_he… in mz_zip_writer_add_mem_ex_v2()
6246 return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); in mz_zip_writer_add_mem_ex_v2()
6250 …if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, pArchive_name, archive_name_size) != … in mz_zip_writer_add_mem_ex_v2()
6252 pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); in mz_zip_writer_add_mem_ex_v2()
6253 return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); in mz_zip_writer_add_mem_ex_v2()
6259 …if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, extra_data, extra_size) != extra_size) in mz_zip_writer_add_mem_ex_v2()
6260 return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); in mz_zip_writer_add_mem_ex_v2()
6268 return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); in mz_zip_writer_add_mem_ex_v2()
6269 …if (!mz_zip_writer_create_local_dir_header(pZip, local_dir_header, (mz_uint16)archive_name_size, (… in mz_zip_writer_add_mem_ex_v2()
6270 return mz_zip_set_error(pZip, MZ_ZIP_INTERNAL_ERROR); in mz_zip_writer_add_mem_ex_v2()
6272 …if (pZip->m_pWrite(pZip->m_pIO_opaque, local_dir_header_ofs, local_dir_header, sizeof(local_dir_he… in mz_zip_writer_add_mem_ex_v2()
6273 return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); in mz_zip_writer_add_mem_ex_v2()
6277 …if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, pArchive_name, archive_name_size) != … in mz_zip_writer_add_mem_ex_v2()
6279 pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); in mz_zip_writer_add_mem_ex_v2()
6280 return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); in mz_zip_writer_add_mem_ex_v2()
6287 …if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, user_extra_data, user_extra_data_len)… in mz_zip_writer_add_mem_ex_v2()
6288 return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); in mz_zip_writer_add_mem_ex_v2()
6295 if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, pBuf, buf_size) != buf_size) in mz_zip_writer_add_mem_ex_v2()
6297 pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); in mz_zip_writer_add_mem_ex_v2()
6298 return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); in mz_zip_writer_add_mem_ex_v2()
6308 state.m_pZip = pZip; in mz_zip_writer_add_mem_ex_v2()
6315 pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); in mz_zip_writer_add_mem_ex_v2()
6316 return mz_zip_set_error(pZip, MZ_ZIP_COMPRESSION_FAILED); in mz_zip_writer_add_mem_ex_v2()
6323 pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); in mz_zip_writer_add_mem_ex_v2()
6338 return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); in mz_zip_writer_add_mem_ex_v2()
6350 …if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, local_dir_footer, local_dir_footer_si… in mz_zip_writer_add_mem_ex_v2()
6362 …if (!mz_zip_writer_add_to_central_dir(pZip, pArchive_name, (mz_uint16)archive_name_size, pExtra_da… in mz_zip_writer_add_mem_ex_v2()
6367 pZip->m_total_files++; in mz_zip_writer_add_mem_ex_v2()
6368 pZip->m_archive_size = cur_archive_file_ofs; in mz_zip_writer_add_mem_ex_v2()
6373 mz_bool mz_zip_writer_add_read_buf_callback(mz_zip_archive *pZip, const char *pArchive_name, mz_fil… in mz_zip_writer_add_read_buf_callback() argument
6379 …mz_uint64 local_dir_header_ofs, cur_archive_file_ofs = pZip->m_archive_size, uncomp_size = size_to… in mz_zip_writer_add_read_buf_callback()
6396 …if ((!pZip) || (!pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_WRITING) || (!pArchive_name) … in mz_zip_writer_add_read_buf_callback()
6397 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_writer_add_read_buf_callback()
6399 pState = pZip->m_pState; in mz_zip_writer_add_read_buf_callback()
6410 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_writer_add_read_buf_callback()
6413 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_FILENAME); in mz_zip_writer_add_read_buf_callback()
6417 if (pZip->m_total_files == MZ_UINT32_MAX) in mz_zip_writer_add_read_buf_callback()
6418 return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES); in mz_zip_writer_add_read_buf_callback()
6422 if (pZip->m_total_files == MZ_UINT16_MAX) in mz_zip_writer_add_read_buf_callback()
6431 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_FILENAME); in mz_zip_writer_add_read_buf_callback()
6433 num_alignment_padding_bytes = mz_zip_writer_compute_padding_needed_for_file_alignment(pZip); in mz_zip_writer_add_read_buf_callback()
6437 return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_CDIR_SIZE); in mz_zip_writer_add_read_buf_callback()
6442 …if ((pZip->m_archive_size + num_alignment_padding_bytes + MZ_ZIP_LOCAL_DIR_HEADER_SIZE + archive_n… in mz_zip_writer_add_read_buf_callback()
6461 if (!mz_zip_writer_write_zeros(pZip, cur_archive_file_ofs, num_alignment_padding_bytes)) in mz_zip_writer_add_read_buf_callback()
6463 return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); in mz_zip_writer_add_read_buf_callback()
6469 if (pZip->m_file_offset_alignment) in mz_zip_writer_add_read_buf_callback()
6471 MZ_ASSERT((cur_archive_file_ofs & (pZip->m_file_offset_alignment - 1)) == 0); in mz_zip_writer_add_read_buf_callback()
6489 …if (!mz_zip_writer_create_local_dir_header(pZip, local_dir_header, (mz_uint16)archive_name_size, (… in mz_zip_writer_add_read_buf_callback()
6490 return mz_zip_set_error(pZip, MZ_ZIP_INTERNAL_ERROR); in mz_zip_writer_add_read_buf_callback()
6492 …if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, local_dir_header, sizeof(local_dir_he… in mz_zip_writer_add_read_buf_callback()
6493 return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); in mz_zip_writer_add_read_buf_callback()
6497 …if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, pArchive_name, archive_name_size) != … in mz_zip_writer_add_read_buf_callback()
6499 return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); in mz_zip_writer_add_read_buf_callback()
6504 …if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, extra_data, extra_size) != extra_size) in mz_zip_writer_add_read_buf_callback()
6505 return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); in mz_zip_writer_add_read_buf_callback()
6512 return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); in mz_zip_writer_add_read_buf_callback()
6513 …if (!mz_zip_writer_create_local_dir_header(pZip, local_dir_header, (mz_uint16)archive_name_size, (… in mz_zip_writer_add_read_buf_callback()
6514 return mz_zip_set_error(pZip, MZ_ZIP_INTERNAL_ERROR); in mz_zip_writer_add_read_buf_callback()
6516 …if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, local_dir_header, sizeof(local_dir_he… in mz_zip_writer_add_read_buf_callback()
6517 return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); in mz_zip_writer_add_read_buf_callback()
6521 …if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, pArchive_name, archive_name_size) != … in mz_zip_writer_add_read_buf_callback()
6523 return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); in mz_zip_writer_add_read_buf_callback()
6531 …if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, user_extra_data, user_extra_data_len)… in mz_zip_writer_add_read_buf_callback()
6532 return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); in mz_zip_writer_add_read_buf_callback()
6540 void *pRead_buf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, MZ_ZIP_MAX_IO_BUF_SIZE); in mz_zip_writer_add_read_buf_callback()
6543 return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); in mz_zip_writer_add_read_buf_callback()
6551 …((read_callback(callback_opaque, file_ofs, pRead_buf, n) != n) || (pZip->m_pWrite(pZip->m_pIO_opaq… in mz_zip_writer_add_read_buf_callback()
6553 pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); in mz_zip_writer_add_read_buf_callback()
6554 return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); in mz_zip_writer_add_read_buf_callback()
6567 …tdefl_compressor *pComp = (tdefl_compressor *)pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, sizeof(tdef… in mz_zip_writer_add_read_buf_callback()
6570 pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); in mz_zip_writer_add_read_buf_callback()
6571 return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); in mz_zip_writer_add_read_buf_callback()
6574 state.m_pZip = pZip; in mz_zip_writer_add_read_buf_callback()
6580 pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); in mz_zip_writer_add_read_buf_callback()
6581 pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); in mz_zip_writer_add_read_buf_callback()
6582 return mz_zip_set_error(pZip, MZ_ZIP_INTERNAL_ERROR); in mz_zip_writer_add_read_buf_callback()
6593 mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); in mz_zip_writer_add_read_buf_callback()
6601 … if (pZip->m_pNeeds_keepalive != NULL && pZip->m_pNeeds_keepalive(pZip->m_pIO_opaque)) in mz_zip_writer_add_read_buf_callback()
6612 mz_zip_set_error(pZip, MZ_ZIP_COMPRESSION_FAILED); in mz_zip_writer_add_read_buf_callback()
6617 pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); in mz_zip_writer_add_read_buf_callback()
6621 pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); in mz_zip_writer_add_read_buf_callback()
6629 pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); in mz_zip_writer_add_read_buf_callback()
6641 return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); in mz_zip_writer_add_read_buf_callback()
6653 …if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, local_dir_footer, local_dir_footer_si… in mz_zip_writer_add_read_buf_callback()
6665 …if (!mz_zip_writer_add_to_central_dir(pZip, pArchive_name, (mz_uint16)archive_name_size, pExtra_da… in mz_zip_writer_add_read_buf_callback()
6670 pZip->m_total_files++; in mz_zip_writer_add_read_buf_callback()
6671 pZip->m_archive_size = cur_archive_file_ofs; in mz_zip_writer_add_read_buf_callback()
6689 mz_bool mz_zip_writer_add_cfile(mz_zip_archive *pZip, const char *pArchive_name, MZ_FILE *pSrc_file… in mz_zip_writer_add_cfile() argument
6692 …return mz_zip_writer_add_read_buf_callback(pZip, pArchive_name, mz_file_read_func_stdio, pSrc_file… in mz_zip_writer_add_cfile()
6696 mz_bool mz_zip_writer_add_file(mz_zip_archive *pZip, const char *pArchive_name, const char *pSrc_fi… in mz_zip_writer_add_file() argument
6709 return mz_zip_set_error(pZip, MZ_ZIP_FILE_STAT_FAILED); in mz_zip_writer_add_file()
6714 return mz_zip_set_error(pZip, MZ_ZIP_FILE_OPEN_FAILED); in mz_zip_writer_add_file()
6720 …status = mz_zip_writer_add_cfile(pZip, pArchive_name, pSrc_file, uncomp_size, pFile_time, pComment… in mz_zip_writer_add_file()
6728 …iter_update_zip64_extension_block(mz_zip_array *pNew_ext, mz_zip_archive *pZip, const mz_uint8 *pE… in mz_zip_writer_update_zip64_extension_block() argument
6731 if (!mz_zip_array_reserve(pZip, pNew_ext, ext_len + 64, MZ_FALSE)) in mz_zip_writer_update_zip64_extension_block()
6732 return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); in mz_zip_writer_update_zip64_extension_block()
6734 mz_zip_array_resize(pZip, pNew_ext, 0, MZ_FALSE); in mz_zip_writer_update_zip64_extension_block()
6770 if (!mz_zip_array_push_back(pZip, pNew_ext, new_ext_block, pDst - new_ext_block)) in mz_zip_writer_update_zip64_extension_block()
6771 return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); in mz_zip_writer_update_zip64_extension_block()
6784 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); in mz_zip_writer_update_zip64_extension_block()
6791 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); in mz_zip_writer_update_zip64_extension_block()
6795 if (!mz_zip_array_push_back(pZip, pNew_ext, pExtra_data, field_total_size)) in mz_zip_writer_update_zip64_extension_block()
6796 return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); in mz_zip_writer_update_zip64_extension_block()
6808 mz_bool mz_zip_writer_add_from_zip_reader(mz_zip_archive *pZip, mz_zip_archive *pSource_zip, mz_uin… in mz_zip_writer_add_from_zip_reader() argument
6827 …if ((!pZip) || (!pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_WRITING) || (!pSource_zip->m_… in mz_zip_writer_add_from_zip_reader()
6828 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_writer_add_from_zip_reader()
6830 pState = pZip->m_pState; in mz_zip_writer_add_from_zip_reader()
6833 if ((pSource_zip->m_pState->m_zip64) && (!pZip->m_pState->m_zip64)) in mz_zip_writer_add_from_zip_reader()
6834 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_writer_add_from_zip_reader()
6838 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_writer_add_from_zip_reader()
6841 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); in mz_zip_writer_add_from_zip_reader()
6850 return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_CDIR_SIZE); in mz_zip_writer_add_from_zip_reader()
6852 num_alignment_padding_bytes = mz_zip_writer_compute_padding_needed_for_file_alignment(pZip); in mz_zip_writer_add_from_zip_reader()
6856 if (pZip->m_total_files == MZ_UINT16_MAX) in mz_zip_writer_add_from_zip_reader()
6857 return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES); in mz_zip_writer_add_from_zip_reader()
6862 if (pZip->m_total_files == MZ_UINT32_MAX) in mz_zip_writer_add_from_zip_reader()
6863 return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES); in mz_zip_writer_add_from_zip_reader()
6870 cur_dst_file_ofs = pZip->m_archive_size; in mz_zip_writer_add_from_zip_reader()
6874 return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); in mz_zip_writer_add_from_zip_reader()
6877 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); in mz_zip_writer_add_from_zip_reader()
6896 if (!mz_zip_array_resize(pZip, &file_data_array, local_header_extra_len, MZ_FALSE)) in mz_zip_writer_add_from_zip_reader()
6898 return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); in mz_zip_writer_add_from_zip_reader()
6903 mz_zip_array_clear(pZip, &file_data_array); in mz_zip_writer_add_from_zip_reader()
6904 return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); in mz_zip_writer_add_from_zip_reader()
6915 mz_zip_array_clear(pZip, &file_data_array); in mz_zip_writer_add_from_zip_reader()
6916 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); in mz_zip_writer_add_from_zip_reader()
6925 mz_zip_array_clear(pZip, &file_data_array); in mz_zip_writer_add_from_zip_reader()
6926 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); in mz_zip_writer_add_from_zip_reader()
6935 mz_zip_array_clear(pZip, &file_data_array); in mz_zip_writer_add_from_zip_reader()
6936 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); in mz_zip_writer_add_from_zip_reader()
6950 mz_zip_array_clear(pZip, &file_data_array); in mz_zip_writer_add_from_zip_reader()
6961 return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); in mz_zip_writer_add_from_zip_reader()
6965 if (!mz_zip_writer_write_zeros(pZip, cur_dst_file_ofs, num_alignment_padding_bytes)) in mz_zip_writer_add_from_zip_reader()
6971 if (pZip->m_file_offset_alignment) in mz_zip_writer_add_from_zip_reader()
6973 MZ_ASSERT((local_dir_header_ofs & (pZip->m_file_offset_alignment - 1)) == 0); in mz_zip_writer_add_from_zip_reader()
6977 …if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_dst_file_ofs, pLocal_header, MZ_ZIP_LOCAL_DIR_HEADER_SI… in mz_zip_writer_add_from_zip_reader()
6978 return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); in mz_zip_writer_add_from_zip_reader()
6983 …if (NULL == (pBuf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, (size_t)MZ_MAX(32U, MZ_MIN((mz_uint64… in mz_zip_writer_add_from_zip_reader()
6984 return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); in mz_zip_writer_add_from_zip_reader()
6991 pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); in mz_zip_writer_add_from_zip_reader()
6992 return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); in mz_zip_writer_add_from_zip_reader()
6996 if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_dst_file_ofs, pBuf, n) != n) in mz_zip_writer_add_from_zip_reader()
6998 pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); in mz_zip_writer_add_from_zip_reader()
6999 return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); in mz_zip_writer_add_from_zip_reader()
7022 pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); in mz_zip_writer_add_from_zip_reader()
7023 return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); in mz_zip_writer_add_from_zip_reader()
7035 pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); in mz_zip_writer_add_from_zip_reader()
7036 return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); in mz_zip_writer_add_from_zip_reader()
7041 if (pZip->m_pState->m_zip64) in mz_zip_writer_add_from_zip_reader()
7063 if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_dst_file_ofs, pBuf, n) != n) in mz_zip_writer_add_from_zip_reader()
7065 pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); in mz_zip_writer_add_from_zip_reader()
7066 return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); in mz_zip_writer_add_from_zip_reader()
7072 pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); in mz_zip_writer_add_from_zip_reader()
7091 …if (!mz_zip_writer_update_zip64_extension_block(&new_ext_block, pZip, pSrc_ext, src_ext_len, &src_… in mz_zip_writer_add_from_zip_reader()
7093 mz_zip_array_clear(pZip, &new_ext_block); in mz_zip_writer_add_from_zip_reader()
7099 …if (!mz_zip_array_push_back(pZip, &pState->m_central_dir, new_central_header, MZ_ZIP_CENTRAL_DIR_H… in mz_zip_writer_add_from_zip_reader()
7101 mz_zip_array_clear(pZip, &new_ext_block); in mz_zip_writer_add_from_zip_reader()
7102 return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); in mz_zip_writer_add_from_zip_reader()
7105 …if (!mz_zip_array_push_back(pZip, &pState->m_central_dir, pSrc_central_header + MZ_ZIP_CENTRAL_DIR… in mz_zip_writer_add_from_zip_reader()
7107 mz_zip_array_clear(pZip, &new_ext_block); in mz_zip_writer_add_from_zip_reader()
7108 mz_zip_array_resize(pZip, &pState->m_central_dir, orig_central_dir_size, MZ_FALSE); in mz_zip_writer_add_from_zip_reader()
7109 return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); in mz_zip_writer_add_from_zip_reader()
7112 …if (!mz_zip_array_push_back(pZip, &pState->m_central_dir, new_ext_block.m_p, new_ext_block.m_size)) in mz_zip_writer_add_from_zip_reader()
7114 mz_zip_array_clear(pZip, &new_ext_block); in mz_zip_writer_add_from_zip_reader()
7115 mz_zip_array_resize(pZip, &pState->m_central_dir, orig_central_dir_size, MZ_FALSE); in mz_zip_writer_add_from_zip_reader()
7116 return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); in mz_zip_writer_add_from_zip_reader()
7119 …if (!mz_zip_array_push_back(pZip, &pState->m_central_dir, pSrc_central_header + MZ_ZIP_CENTRAL_DIR… in mz_zip_writer_add_from_zip_reader()
7121 mz_zip_array_clear(pZip, &new_ext_block); in mz_zip_writer_add_from_zip_reader()
7122 mz_zip_array_resize(pZip, &pState->m_central_dir, orig_central_dir_size, MZ_FALSE); in mz_zip_writer_add_from_zip_reader()
7123 return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); in mz_zip_writer_add_from_zip_reader()
7126 mz_zip_array_clear(pZip, &new_ext_block); in mz_zip_writer_add_from_zip_reader()
7132 return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); in mz_zip_writer_add_from_zip_reader()
7135 return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); in mz_zip_writer_add_from_zip_reader()
7139 …if (!mz_zip_array_push_back(pZip, &pState->m_central_dir, new_central_header, MZ_ZIP_CENTRAL_DIR_H… in mz_zip_writer_add_from_zip_reader()
7140 return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); in mz_zip_writer_add_from_zip_reader()
7142 …if (!mz_zip_array_push_back(pZip, &pState->m_central_dir, pSrc_central_header + MZ_ZIP_CENTRAL_DIR… in mz_zip_writer_add_from_zip_reader()
7144 mz_zip_array_resize(pZip, &pState->m_central_dir, orig_central_dir_size, MZ_FALSE); in mz_zip_writer_add_from_zip_reader()
7145 return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); in mz_zip_writer_add_from_zip_reader()
7153 mz_zip_array_resize(pZip, &pState->m_central_dir, orig_central_dir_size, MZ_FALSE); in mz_zip_writer_add_from_zip_reader()
7154 return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_CDIR_SIZE); in mz_zip_writer_add_from_zip_reader()
7158 if (!mz_zip_array_push_back(pZip, &pState->m_central_dir_offsets, &n, 1)) in mz_zip_writer_add_from_zip_reader()
7160 mz_zip_array_resize(pZip, &pState->m_central_dir, orig_central_dir_size, MZ_FALSE); in mz_zip_writer_add_from_zip_reader()
7161 return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); in mz_zip_writer_add_from_zip_reader()
7164 pZip->m_total_files++; in mz_zip_writer_add_from_zip_reader()
7165 pZip->m_archive_size = cur_dst_file_ofs; in mz_zip_writer_add_from_zip_reader()
7170 mz_bool mz_zip_writer_finalize_archive(mz_zip_archive *pZip) in mz_zip_writer_finalize_archive() argument
7176 if ((!pZip) || (!pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_WRITING)) in mz_zip_writer_finalize_archive()
7177 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_writer_finalize_archive()
7179 pState = pZip->m_pState; in mz_zip_writer_finalize_archive()
7183 … if ((pZip->m_total_files > MZ_UINT32_MAX) || (pState->m_central_dir.m_size >= MZ_UINT32_MAX)) in mz_zip_writer_finalize_archive()
7184 return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES); in mz_zip_writer_finalize_archive()
7188 …if ((pZip->m_total_files > MZ_UINT16_MAX) || ((pZip->m_archive_size + pState->m_central_dir.m_size… in mz_zip_writer_finalize_archive()
7189 return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES); in mz_zip_writer_finalize_archive()
7194 if (pZip->m_total_files) in mz_zip_writer_finalize_archive()
7197 central_dir_ofs = pZip->m_archive_size; in mz_zip_writer_finalize_archive()
7199 pZip->m_central_directory_file_ofs = central_dir_ofs; in mz_zip_writer_finalize_archive()
7200 …if (pZip->m_pWrite(pZip->m_pIO_opaque, central_dir_ofs, pState->m_central_dir.m_p, (size_t)central… in mz_zip_writer_finalize_archive()
7201 return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); in mz_zip_writer_finalize_archive()
7203 pZip->m_archive_size += central_dir_size; in mz_zip_writer_finalize_archive()
7209 mz_uint64 rel_ofs_to_zip64_ecdr = pZip->m_archive_size; in mz_zip_writer_finalize_archive()
7216 MZ_WRITE_LE64(hdr + MZ_ZIP64_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS, pZip->m_total_files); in mz_zip_writer_finalize_archive()
7217 MZ_WRITE_LE64(hdr + MZ_ZIP64_ECDH_CDIR_TOTAL_ENTRIES_OFS, pZip->m_total_files); in mz_zip_writer_finalize_archive()
7220 …if (pZip->m_pWrite(pZip->m_pIO_opaque, pZip->m_archive_size, hdr, MZ_ZIP64_END_OF_CENTRAL_DIR_HEAD… in mz_zip_writer_finalize_archive()
7221 return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); in mz_zip_writer_finalize_archive()
7223 pZip->m_archive_size += MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE; in mz_zip_writer_finalize_archive()
7230 …if (pZip->m_pWrite(pZip->m_pIO_opaque, pZip->m_archive_size, hdr, MZ_ZIP64_END_OF_CENTRAL_DIR_LOCA… in mz_zip_writer_finalize_archive()
7231 return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); in mz_zip_writer_finalize_archive()
7233 pZip->m_archive_size += MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE; in mz_zip_writer_finalize_archive()
7239 …MZ_WRITE_LE16(hdr + MZ_ZIP_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS, MZ_MIN(MZ_UINT16_MAX, pZip->m_total_… in mz_zip_writer_finalize_archive()
7240 …MZ_WRITE_LE16(hdr + MZ_ZIP_ECDH_CDIR_TOTAL_ENTRIES_OFS, MZ_MIN(MZ_UINT16_MAX, pZip->m_total_files)… in mz_zip_writer_finalize_archive()
7244 …if (pZip->m_pWrite(pZip->m_pIO_opaque, pZip->m_archive_size, hdr, MZ_ZIP_END_OF_CENTRAL_DIR_HEADER… in mz_zip_writer_finalize_archive()
7245 return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); in mz_zip_writer_finalize_archive()
7249 return mz_zip_set_error(pZip, MZ_ZIP_FILE_CLOSE_FAILED); in mz_zip_writer_finalize_archive()
7252 pZip->m_archive_size += MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE; in mz_zip_writer_finalize_archive()
7254 pZip->m_zip_mode = MZ_ZIP_MODE_WRITING_HAS_BEEN_FINALIZED; in mz_zip_writer_finalize_archive()
7258 mz_bool mz_zip_writer_finalize_heap_archive(mz_zip_archive *pZip, void **ppBuf, size_t *pSize) in mz_zip_writer_finalize_heap_archive() argument
7261 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_writer_finalize_heap_archive()
7266 if ((!pZip) || (!pZip->m_pState)) in mz_zip_writer_finalize_heap_archive()
7267 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_writer_finalize_heap_archive()
7269 if (pZip->m_pWrite != mz_zip_heap_write_func) in mz_zip_writer_finalize_heap_archive()
7270 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_writer_finalize_heap_archive()
7272 if (!mz_zip_writer_finalize_archive(pZip)) in mz_zip_writer_finalize_heap_archive()
7275 *ppBuf = pZip->m_pState->m_pMem; in mz_zip_writer_finalize_heap_archive()
7276 *pSize = pZip->m_pState->m_mem_size; in mz_zip_writer_finalize_heap_archive()
7277 pZip->m_pState->m_pMem = NULL; in mz_zip_writer_finalize_heap_archive()
7278 pZip->m_pState->m_mem_size = pZip->m_pState->m_mem_capacity = 0; in mz_zip_writer_finalize_heap_archive()
7283 mz_bool mz_zip_writer_end(mz_zip_archive *pZip) in mz_zip_writer_end() argument
7285 return mz_zip_writer_end_internal(pZip, MZ_TRUE); in mz_zip_writer_end()
7437 mz_zip_mode mz_zip_get_mode(mz_zip_archive *pZip) in mz_zip_get_mode() argument
7439 return pZip ? pZip->m_zip_mode : MZ_ZIP_MODE_INVALID; in mz_zip_get_mode()
7442 mz_zip_type mz_zip_get_type(mz_zip_archive *pZip) in mz_zip_get_type() argument
7444 return pZip ? pZip->m_zip_type : MZ_ZIP_TYPE_INVALID; in mz_zip_get_type()
7447 mz_zip_error mz_zip_set_last_error(mz_zip_archive *pZip, mz_zip_error err_num) in mz_zip_set_last_error() argument
7451 if (!pZip) in mz_zip_set_last_error()
7454 prev_err = pZip->m_last_error; in mz_zip_set_last_error()
7456 pZip->m_last_error = err_num; in mz_zip_set_last_error()
7460 mz_zip_error mz_zip_peek_last_error(mz_zip_archive *pZip) in mz_zip_peek_last_error() argument
7462 if (!pZip) in mz_zip_peek_last_error()
7465 return pZip->m_last_error; in mz_zip_peek_last_error()
7468 mz_zip_error mz_zip_clear_last_error(mz_zip_archive *pZip) in mz_zip_clear_last_error() argument
7470 return mz_zip_set_last_error(pZip, MZ_ZIP_NO_ERROR); in mz_zip_clear_last_error()
7473 mz_zip_error mz_zip_get_last_error(mz_zip_archive *pZip) in mz_zip_get_last_error() argument
7477 if (!pZip) in mz_zip_get_last_error()
7480 prev_err = pZip->m_last_error; in mz_zip_get_last_error()
7482 pZip->m_last_error = MZ_ZIP_NO_ERROR; in mz_zip_get_last_error()
7562 mz_bool mz_zip_is_zip64(mz_zip_archive *pZip) in mz_zip_is_zip64() argument
7564 if ((!pZip) || (!pZip->m_pState)) in mz_zip_is_zip64()
7567 return pZip->m_pState->m_zip64; in mz_zip_is_zip64()
7570 size_t mz_zip_get_central_dir_size(mz_zip_archive *pZip) in mz_zip_get_central_dir_size() argument
7572 if ((!pZip) || (!pZip->m_pState)) in mz_zip_get_central_dir_size()
7575 return pZip->m_pState->m_central_dir.m_size; in mz_zip_get_central_dir_size()
7578 mz_uint mz_zip_reader_get_num_files(mz_zip_archive *pZip) in mz_zip_reader_get_num_files() argument
7580 return pZip ? pZip->m_total_files : 0; in mz_zip_reader_get_num_files()
7583 mz_uint64 mz_zip_get_archive_size(mz_zip_archive *pZip) in mz_zip_get_archive_size() argument
7585 if (!pZip) in mz_zip_get_archive_size()
7587 return pZip->m_archive_size; in mz_zip_get_archive_size()
7590 mz_uint64 mz_zip_get_archive_file_start_offset(mz_zip_archive *pZip) in mz_zip_get_archive_file_start_offset() argument
7592 if ((!pZip) || (!pZip->m_pState)) in mz_zip_get_archive_file_start_offset()
7594 return pZip->m_pState->m_file_archive_start_ofs; in mz_zip_get_archive_file_start_offset()
7597 MZ_FILE *mz_zip_get_cfile(mz_zip_archive *pZip) in mz_zip_get_cfile() argument
7599 if ((!pZip) || (!pZip->m_pState)) in mz_zip_get_cfile()
7601 return pZip->m_pState->m_pFile; in mz_zip_get_cfile()
7604 size_t mz_zip_read_archive_data(mz_zip_archive *pZip, mz_uint64 file_ofs, void *pBuf, size_t n) in mz_zip_read_archive_data() argument
7606 if ((!pZip) || (!pZip->m_pState) || (!pBuf) || (!pZip->m_pRead)) in mz_zip_read_archive_data()
7607 return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_read_archive_data()
7609 return pZip->m_pRead(pZip->m_pIO_opaque, file_ofs, pBuf, n); in mz_zip_read_archive_data()
7612 mz_uint mz_zip_reader_get_filename(mz_zip_archive *pZip, mz_uint file_index, char *pFilename, mz_ui… in mz_zip_reader_get_filename() argument
7615 const mz_uint8 *p = mz_zip_get_cdh(pZip, file_index); in mz_zip_reader_get_filename()
7620 mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); in mz_zip_reader_get_filename()
7633 mz_bool mz_zip_reader_file_stat(mz_zip_archive *pZip, mz_uint file_index, mz_zip_archive_file_stat … in mz_zip_reader_file_stat() argument
7635 … return mz_zip_file_stat_internal(pZip, file_index, mz_zip_get_cdh(pZip, file_index), pStat, NULL); in mz_zip_reader_file_stat()
7638 mz_bool mz_zip_end(mz_zip_archive *pZip) in mz_zip_end() argument
7640 if (!pZip) in mz_zip_end()
7643 if (pZip->m_zip_mode == MZ_ZIP_MODE_READING) in mz_zip_end()
7644 return mz_zip_reader_end(pZip); in mz_zip_end()
7646 …else if ((pZip->m_zip_mode == MZ_ZIP_MODE_WRITING) || (pZip->m_zip_mode == MZ_ZIP_MODE_WRITING_HAS… in mz_zip_end()
7647 return mz_zip_writer_end(pZip); in mz_zip_end()