MCPcopy Create free account
hub / github.com/ObEngine/ObEngine / zipOpen3

Function zipOpen3

extlibs/minizip/src/zip.c:843–908  ·  view source on GitHub ↗

/

Source from the content-addressed store, hash-verified

841
842/************************************************************/
843extern zipFile ZEXPORT zipOpen3(const void* pathname, int append, zipcharpc* globalcomment, zlib_filefunc64_32_def* pzlib_filefunc64_32_def)
844{
845 zip64_internal ziinit;
846 zip64_internal* zi;
847 int err = ZIP_OK;
848
849 ziinit.z_filefunc.zseek32_file = NULL;
850 ziinit.z_filefunc.ztell32_file = NULL;
851 if (pzlib_filefunc64_32_def == NULL)
852 fill_fopen64_filefunc(&ziinit.z_filefunc.zfile_func64);
853 else
854 ziinit.z_filefunc = *pzlib_filefunc64_32_def;
855
856 ziinit.filestream = ZOPEN64(ziinit.z_filefunc,
857 pathname,
858 (append == APPEND_STATUS_CREATE) ?
859 (ZLIB_FILEFUNC_MODE_READ | ZLIB_FILEFUNC_MODE_WRITE | ZLIB_FILEFUNC_MODE_CREATE) :
860 (ZLIB_FILEFUNC_MODE_READ | ZLIB_FILEFUNC_MODE_WRITE | ZLIB_FILEFUNC_MODE_EXISTING));
861
862 if (ziinit.filestream == NULL)
863 return NULL;
864
865 if (append == APPEND_STATUS_CREATEAFTER)
866 ZSEEK64(ziinit.z_filefunc,ziinit.filestream,0,SEEK_END);
867
868 ziinit.begin_pos = ZTELL64(ziinit.z_filefunc,ziinit.filestream);
869 ziinit.in_opened_file_inzip = 0;
870 ziinit.ci.stream_initialised = 0;
871 ziinit.number_entry = 0;
872 ziinit.add_position_when_writing_offset = 0;
873 init_linkedlist(&(ziinit.central_dir));
874
875
876 zi = (zip64_internal*)ALLOC(sizeof(zip64_internal));
877 if (zi == NULL)
878 {
879 ZCLOSE64(ziinit.z_filefunc,ziinit.filestream);
880 return NULL;
881 }
882
883 /* now we add file in a zipfile */
884# ifndef NO_ADDFILEINEXISTINGZIP
885 ziinit.globalcomment = NULL;
886 if (append == APPEND_STATUS_ADDINZIP)
887 {
888 // Read and Cache Central Directory Records
889 err = LoadCentralDirectoryRecord(&ziinit);
890 }
891
892 if (globalcomment)
893 {
894 *globalcomment = ziinit.globalcomment;
895 }
896# endif /* !NO_ADDFILEINEXISTINGZIP*/
897
898 if (err != ZIP_OK)
899 {
900# ifndef NO_ADDFILEINEXISTINGZIP

Callers 4

zipOpen2Function · 0.85
zipOpen2_64Function · 0.85
zipOpenFunction · 0.85
zipOpen64Function · 0.85

Calls 3

fill_fopen64_filefuncFunction · 0.85
init_linkedlistFunction · 0.85

Tested by

no test coverage detected