MCPcopy Create free account
hub / github.com/DreamSourceLab/DSView / zipOpen3

Function zipOpen3

common/minizip/zip.c:849–918  ·  view source on GitHub ↗

/

Source from the content-addressed store, hash-verified

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

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