MCPcopy Create free account
hub / github.com/DentonW/DevIL / unzOpenCurrentFile

Function unzOpenCurrentFile

DevIL/test/Unzip/unzip.c:895–983  ·  view source on GitHub ↗

Open for reading data the current file in the zipfile. If there is no error and the file is opened, the return value is UNZ_OK. */

(file)

Source from the content-addressed store, hash-verified

893 If there is no error and the file is opened, the return value is UNZ_OK.
894*/
895extern int ZEXPORT unzOpenCurrentFile (file)
896 unzFile file;
897{
898 int err=UNZ_OK;
899 int Store;
900 uInt iSizeVar;
901 unz_s* s;
902 file_in_zip_read_info_s* pfile_in_zip_read_info;
903 uLong offset_local_extrafield; /* offset of the local extra field */
904 uInt size_local_extrafield; /* size of the local extra field */
905
906 if (file==NULL)
907 return UNZ_PARAMERROR;
908 s=(unz_s*)file;
909 if (!s->current_file_ok)
910 return UNZ_PARAMERROR;
911
912 if (s->pfile_in_zip_read != NULL)
913 unzCloseCurrentFile(file);
914
915 if (unzlocal_CheckCurrentFileCoherencyHeader(s,&iSizeVar,
916 &offset_local_extrafield,&size_local_extrafield)!=UNZ_OK)
917 return UNZ_BADZIPFILE;
918
919 pfile_in_zip_read_info = (file_in_zip_read_info_s*)
920 ALLOC(sizeof(file_in_zip_read_info_s));
921 if (pfile_in_zip_read_info==NULL)
922 return UNZ_INTERNALERROR;
923
924 pfile_in_zip_read_info->read_buffer=(char*)ALLOC(UNZ_BUFSIZE);
925 pfile_in_zip_read_info->offset_local_extrafield = offset_local_extrafield;
926 pfile_in_zip_read_info->size_local_extrafield = size_local_extrafield;
927 pfile_in_zip_read_info->pos_local_extrafield=0;
928
929 if (pfile_in_zip_read_info->read_buffer==NULL)
930 {
931 TRYFREE(pfile_in_zip_read_info);
932 return UNZ_INTERNALERROR;
933 }
934
935 pfile_in_zip_read_info->stream_initialised=0;
936
937 if ((s->cur_file_info.compression_method!=0) &&
938 (s->cur_file_info.compression_method!=Z_DEFLATED))
939 err=UNZ_BADZIPFILE;
940 Store = s->cur_file_info.compression_method==0;
941
942 pfile_in_zip_read_info->crc32_wait=s->cur_file_info.crc;
943 pfile_in_zip_read_info->crc32=0;
944 pfile_in_zip_read_info->compression_method =
945 s->cur_file_info.compression_method;
946 pfile_in_zip_read_info->file=s->file;
947 pfile_in_zip_read_info->byte_before_the_zipfile=s->byte_before_the_zipfile;
948
949 pfile_in_zip_read_info->stream.total_out = 0;
950
951 if (!Store)
952 {

Callers 1

openFunction · 0.85

Tested by

no test coverage detected