@@ -754,13 +754,7 @@ try_open(struct zipreader_name *name, const char *filename) {
754754 }
755755 filename += name -> root_size ;
756756 }
757- struct filename_convert tmp ;
758- if (MultiByteToWideChar (CP_UTF8 , 0 , name -> zipfile , -1 , tmp .tmp , sizeof (tmp )) == 0 ) {
759- return NULL ;
760- }
761- zlib_filefunc64_def ffunc ;
762- fill_win32_filefunc64W (& ffunc );
763- unzFile zf = unzOpen2_64 ((const char * )tmp .tmp , & ffunc );
757+ unzFile zf = unzip_open (NULL , name -> zipfile );
764758 if (zf == NULL )
765759 return NULL ;
766760
@@ -792,7 +786,7 @@ zipreader_read(zipreader_file zf, void *dst, int bytes) {
792786 return unzReadCurrentFile (zf , dst , bytes );
793787}
794788
795- size_t
789+ int64_t
796790zipreader_tell (zipreader_file zf ) {
797791 return unztell64 (zf );
798792}
@@ -819,7 +813,7 @@ reopen_file(zipreader_file zf) {
819813#define TMP_SKIP_BUFFER 4096
820814
821815static int
822- skip_bytes (zipreader_file zf , ssize_t offset ) {
816+ skip_bytes (zipreader_file zf , int64_t offset ) {
823817 char tmp [TMP_SKIP_BUFFER ];
824818 while (offset >= TMP_SKIP_BUFFER ) {
825819 if (unzReadCurrentFile (zf , tmp , TMP_SKIP_BUFFER ) != TMP_SKIP_BUFFER )
@@ -832,22 +826,22 @@ skip_bytes(zipreader_file zf, ssize_t offset) {
832826}
833827
834828int
835- zipreader_seek (zipreader_file zf , ssize_t offset , int origin ) {
829+ zipreader_seek (zipreader_file zf , int64_t offset , int origin ) {
836830 if (origin == SEEK_CUR && offset >= 0 ) {
837831 return skip_bytes (zf , offset );
838832 }
839833 size_t size = zipreader_size (zf );
840834 size_t cur_pos = unztell64 (zf );
841- ssize_t new_pos ;
835+ int64_t new_pos ;
842836 switch (origin ) {
843837 case SEEK_SET :
844838 new_pos = offset ;
845839 break ;
846840 case SEEK_CUR :
847- new_pos = (ssize_t )cur_pos + offset ;
841+ new_pos = (int64_t )cur_pos + offset ;
848842 break ;
849843 case SEEK_END :
850- new_pos = (ssize_t )size + offset ;
844+ new_pos = (int64_t )size + offset ;
851845 break ;
852846 default :
853847 return -1 ;
0 commit comments