X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f783e7acf3800628d62d1ee0a97e41c58c870f0b..cb73e6001f891ae46b12a1e4ca39b93649cb6099:/src/common/unzip.c diff --git a/src/common/unzip.c b/src/common/unzip.c index 02a37dc16c..04f8a8c0b8 100644 --- a/src/common/unzip.c +++ b/src/common/unzip.c @@ -12,9 +12,7 @@ $Id$ */ - - -#include "wx/setup.h" +#include "wx/platform.h" #if wxUSE_ZLIB && wxUSE_ZIPSTREAM @@ -322,13 +320,13 @@ local uLong unzlocal_SearchCentralDir(fin) uLong uBackRead; uLong uMaxBack=0xffff; /* maximum size of global comment */ uLong uPosFound=0; - + if (fseek(fin,0,SEEK_END) != 0) return 0; uSizeFile = ftell( fin ); - + if (uMaxBack>uSizeFile) uMaxBack = uSizeFile; @@ -346,7 +344,7 @@ local uLong unzlocal_SearchCentralDir(fin) else uBackRead+=BUFREADCOMMENT; uReadPos = uSizeFile-uBackRead ; - + uReadSize = ((BUFREADCOMMENT+4) < (uSizeFile-uReadPos)) ? (BUFREADCOMMENT+4) : (uSizeFile-uReadPos); if (fseek(fin,uReadPos,SEEK_SET)!=0) @@ -370,48 +368,6 @@ local uLong unzlocal_SearchCentralDir(fin) return uPosFound; } -#if defined(__WXMAC__) && !defined(__UNIX__) -void wxUnix2MacFilename (char *s) ; -void -wxUnix2MacFilename (char *s) -{ - if (s) - { - if ( *s == '.' ) - { - /* relative path , since it goes on with slash which is translated to a : */ - memmove( s , s+1 ,strlen( s ) ) ; - } - else if ( *s == '/' ) - { - /* absolute path -> on mac just start with the drive name */ - memmove( s , s+1 ,strlen( s ) ) ; - } - else - { -/* wxASSERT_MSG( 1 , "unkown path beginning" ) ; */ - } - while (*s) - { - if (*s == '/' || *s == '\\') - { - /* convert any back-directory situations */ - if ( *(s+1) == '.' && *(s+2) == '.' && ( (*(s+3) == '/' || *(s+3) == '\\') ) ) - { - *s = ':'; - memmove( s+1 , s+3 ,strlen( s+3 ) + 1 ) ; - } - else - *s = ':'; - } - - s++ ; - } - } -} -extern char * wxBuffer ; -#endif - /* Open a Zip file. path contain the full pathname (by example, on a Windows NT computer "c:\\test\\zlib109.zip" or on an Unix computer @@ -442,13 +398,8 @@ extern unzFile ZEXPORT unzOpen (path) if (unz_copyright[0]!=' ') return NULL; -#if defined(__WXMAC__) && !defined(__UNIX__) - strcpy( wxBuffer , path ) ; - wxUnix2MacFilename( wxBuffer ) ; - fin=fopen(wxBuffer,"rb"); -#else fin=fopen(path,"rb"); -#endif + if (fin==NULL) return NULL; @@ -511,12 +462,12 @@ extern unzFile ZEXPORT unzOpen (path) (us.offset_central_dir+us.size_central_dir); us.central_pos = central_pos; us.pfile_in_zip_read = NULL; - + s=(unz_s*)ALLOC(sizeof(unz_s)); *s=us; - unzGoToFirstFile((unzFile)s); - return (unzFile)s; + unzGoToFirstFile((unzFile)s); + return (unzFile)s; } @@ -695,7 +646,7 @@ local int unzlocal_GetCurrentFileInfoInternal (file, lSeek -= uSizeRead; } - + if ((err==UNZ_OK) && (extraField!=NULL)) { uLong uSizeRead ; @@ -720,7 +671,7 @@ local int unzlocal_GetCurrentFileInfoInternal (file, else lSeek+=file_info.size_file_extra; - + if ((err==UNZ_OK) && (szComment!=NULL)) { uLong uSizeRead ; @@ -814,7 +765,7 @@ extern int ZEXPORT unzGoToFirstFile (file) extern int ZEXPORT unzGoToNextFile (file) unzFile file; { - unz_s* s; + unz_s* s; int err; if (file==NULL) @@ -849,20 +800,20 @@ extern int ZEXPORT unzLocateFile (file, szFileName, iCaseSensitivity) const char *szFileName; int iCaseSensitivity; { - unz_s* s; + unz_s* s; int err; const char *c; char *c2; char szFileName2[UNZ_MAXFILENAMEINZIP+1]; - + uLong num_fileSaved; uLong pos_in_central_dirSaved; - for (c = szFileName, c2 = szFileName2; *c != '\0'; c++, c2++) + for (c = szFileName, c2 = szFileName2; *c != '\0'; c++, c2++) if (*c == '\\') *c2 = '/'; else *c2 = *c; *c2 = '\0'; - + if (file==NULL) return UNZ_PARAMERROR; @@ -991,7 +942,7 @@ local int unzlocal_CheckCurrentFileCoherencyHeader (s,piSizeVar, return err; } - + /* 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. @@ -1037,7 +988,7 @@ extern int ZEXPORT unzOpenCurrentFile (file) } pfile_in_zip_read_info->stream_initialised=0; - + if ((s->cur_file_info.compression_method!=0) && (s->cur_file_info.compression_method!=Z_DEFLATED)) err=UNZ_BADZIPFILE; @@ -1074,11 +1025,11 @@ extern int ZEXPORT unzOpenCurrentFile (file) pfile_in_zip_read_info->rest_read_uncompressed = s->cur_file_info.uncompressed_size ; - + pfile_in_zip_read_info->pos_in_zipfile = s->cur_file_info_internal.offset_curfile + SIZEZIPLOCALHEADER + iSizeVar; - + pfile_in_zip_read_info->stream.avail_in = (uInt)0; @@ -1123,7 +1074,7 @@ extern int ZEXPORT unzReadCurrentFile (file, buf, len) pfile_in_zip_read_info->stream.next_out = (Bytef*)buf; pfile_in_zip_read_info->stream.avail_out = (uInt)len; - + if (len>pfile_in_zip_read_info->rest_read_uncompressed) pfile_in_zip_read_info->stream.avail_out = (uInt)pfile_in_zip_read_info->rest_read_uncompressed; @@ -1148,7 +1099,7 @@ extern int ZEXPORT unzReadCurrentFile (file, buf, len) pfile_in_zip_read_info->pos_in_zipfile += uReadThis; pfile_in_zip_read_info->rest_read_compressed-=uReadThis; - + pfile_in_zip_read_info->stream.next_in = (Bytef*)pfile_in_zip_read_info->read_buffer; pfile_in_zip_read_info->stream.avail_in = (uInt)uReadThis; @@ -1162,11 +1113,11 @@ extern int ZEXPORT unzReadCurrentFile (file, buf, len) uDoCopy = pfile_in_zip_read_info->stream.avail_out ; else uDoCopy = pfile_in_zip_read_info->stream.avail_in ; - + for (i=0;istream.next_out+i) = *(pfile_in_zip_read_info->stream.next_in+i); - + pfile_in_zip_read_info->crc32 = crc32(pfile_in_zip_read_info->crc32, pfile_in_zip_read_info->stream.next_out, uDoCopy); @@ -1198,7 +1149,7 @@ extern int ZEXPORT unzReadCurrentFile (file, buf, len) uTotalOutAfter = pfile_in_zip_read_info->stream.total_out; uOutThis = uTotalOutAfter-uTotalOutBefore; - + pfile_in_zip_read_info->crc32 = crc32(pfile_in_zip_read_info->crc32,bufBefore, (uInt)(uOutThis)); @@ -1256,7 +1207,7 @@ extern int ZEXPORT unzeof (file) if (pfile_in_zip_read_info==NULL) return UNZ_PARAMERROR; - + if (pfile_in_zip_read_info->rest_read_uncompressed == 0) return 1; else @@ -1300,7 +1251,7 @@ extern int ZEXPORT unzGetLocalExtrafield (file,buf,len) if (buf==NULL) return (int)size_to_read; - + if (len>size_to_read) read_now = (uInt)size_to_read; else @@ -1308,7 +1259,7 @@ extern int ZEXPORT unzGetLocalExtrafield (file,buf,len) if (read_now==0) return 0; - + if (fseek(pfile_in_zip_read_info->file, pfile_in_zip_read_info->offset_local_extrafield + pfile_in_zip_read_info->pos_local_extrafield,SEEK_SET)!=0)