MCPcopy Create free account
hub / github.com/TheRealMJP/DeferredTexturing / mz_zip_reader_file_stat

Function mz_zip_reader_file_stat

SampleFramework12/v1.00/TinyEXR.cpp:4811–4854  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4809}
4810
4811mz_bool mz_zip_reader_file_stat(mz_zip_archive *pZip, mz_uint file_index,
4812 mz_zip_archive_file_stat *pStat) {
4813 mz_uint n;
4814 const mz_uint8 *p = mz_zip_reader_get_cdh(pZip, file_index);
4815 if ((!p) || (!pStat))
4816 return MZ_FALSE;
4817
4818 // Unpack the central directory record.
4819 pStat->m_file_index = file_index;
4820 pStat->m_central_dir_ofs = MZ_ZIP_ARRAY_ELEMENT(
4821 &pZip->m_pState->m_central_dir_offsets, mz_uint32, file_index);
4822 pStat->m_version_made_by = MZ_READ_LE16(p + MZ_ZIP_CDH_VERSION_MADE_BY_OFS);
4823 pStat->m_version_needed = MZ_READ_LE16(p + MZ_ZIP_CDH_VERSION_NEEDED_OFS);
4824 pStat->m_bit_flag = MZ_READ_LE16(p + MZ_ZIP_CDH_BIT_FLAG_OFS);
4825 pStat->m_method = MZ_READ_LE16(p + MZ_ZIP_CDH_METHOD_OFS);
4826#ifndef MINIZ_NO_TIME
4827 pStat->m_time =
4828 mz_zip_dos_to_time_t(MZ_READ_LE16(p + MZ_ZIP_CDH_FILE_TIME_OFS),
4829 MZ_READ_LE16(p + MZ_ZIP_CDH_FILE_DATE_OFS));
4830#endif
4831 pStat->m_crc32 = MZ_READ_LE32(p + MZ_ZIP_CDH_CRC32_OFS);
4832 pStat->m_comp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_COMPRESSED_SIZE_OFS);
4833 pStat->m_uncomp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_DECOMPRESSED_SIZE_OFS);
4834 pStat->m_internal_attr = MZ_READ_LE16(p + MZ_ZIP_CDH_INTERNAL_ATTR_OFS);
4835 pStat->m_external_attr = MZ_READ_LE32(p + MZ_ZIP_CDH_EXTERNAL_ATTR_OFS);
4836 pStat->m_local_header_ofs = MZ_READ_LE32(p + MZ_ZIP_CDH_LOCAL_HEADER_OFS);
4837
4838 // Copy as much of the filename and comment as possible.
4839 n = MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS);
4840 n = MZ_MIN(n, MZ_ZIP_MAX_ARCHIVE_FILENAME_SIZE - 1);
4841 memcpy(pStat->m_filename, p + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE, n);
4842 pStat->m_filename[n] = '\0';
4843
4844 n = MZ_READ_LE16(p + MZ_ZIP_CDH_COMMENT_LEN_OFS);
4845 n = MZ_MIN(n, MZ_ZIP_MAX_ARCHIVE_FILE_COMMENT_SIZE - 1);
4846 pStat->m_comment_size = n;
4847 memcpy(pStat->m_comment, p + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE +
4848 MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS) +
4849 MZ_READ_LE16(p + MZ_ZIP_CDH_EXTRA_LEN_OFS),
4850 n);
4851 pStat->m_comment[n] = '\0';
4852
4853 return MZ_TRUE;
4854}
4855
4856mz_uint mz_zip_reader_get_filename(mz_zip_archive *pZip, mz_uint file_index,
4857 char *pFilename, mz_uint filename_buf_size) {

Calls 2

mz_zip_reader_get_cdhFunction · 0.85
mz_zip_dos_to_time_tFunction · 0.85

Tested by

no test coverage detected