*/
-
+#include "wx/defs.h"
#include "wx/setup.h"
#if wxUSE_ZLIB && wxUSE_ZIPSTREAM
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+/*
#include "zlib.h"
+ normally, the compiler options should contain -I../zlib, but it is
+ apparently not the case for all MSW makefiles and so, unless we use
+ configure (which defines __WX_SETUP_H__) or it is explicitly overridden by
+ the user (who can define wxUSE_ZLIB_H_IN_PATH), we hardcode the path here
+*/
+#if defined(__WXMSW__) && !defined(__WX_SETUP_H__) && !defined(wxUSE_ZLIB_H_IN_PATH)
+ #include "../zlib/zlib.h"
+#else
+ #include "zlib.h"
+#endif
+
/* Not the right solution (paths in makefiles) but... */
#ifdef __BORLANDC__
int unzlocal_CheckCurrentFileCoherencyHeader (unz_s*, uInt*, uLong*, uInt*);
#endif
+/* disable warnings about K&R declarations until the end of file */
+#ifdef _MSC_VER
+#pragma warning(disable:4131)
+#endif /* VC++ */
+
/* ===========================================================================
Read a byte from a gz_stream; update next_in and avail_in. Return EOF
for end of file.
return uPosFound;
}
-#ifdef __WXMAC__
+#if defined(__WXMAC__) && !defined(__UNIX__)
void wxUnix2MacFilename (char *s) ;
void
wxUnix2MacFilename (char *s)
if (unz_copyright[0]!=' ')
return NULL;
-#ifdef __WXMAC__
+#if defined(__WXMAC__) && !defined(__UNIX__)
strcpy( wxBuffer , path ) ;
wxUnix2MacFilename( wxBuffer ) ;
- fin=fopen(wxBuffer,"rb");
+ fin=fopen(wxBuffer,"rb");
#else
fin=fopen(path,"rb");
#endif
/* we check the magic */
if (err==UNZ_OK)
+ {
if (unzlocal_getLong(s->file,&uMagic) != UNZ_OK)
err=UNZ_ERRNO;
else if (uMagic!=0x02014b50)
err=UNZ_BADZIPFILE;
+ }
if (unzlocal_getShort(s->file,&file_info.version) != UNZ_OK)
err=UNZ_ERRNO;
uSizeRead = extraFieldBufferSize;
if (lSeek!=0)
+ {
if (fseek(s->file,lSeek,SEEK_CUR)==0)
lSeek=0;
else
err=UNZ_ERRNO;
+ }
+
if ((file_info.size_file_extra>0) && (extraFieldBufferSize>0))
if (fread(extraField,(uInt)uSizeRead,1,s->file)!=1)
err=UNZ_ERRNO;
uSizeRead = commentBufferSize;
if (lSeek!=0)
+ {
if (fseek(s->file,lSeek,SEEK_CUR)==0)
lSeek=0;
else
err=UNZ_ERRNO;
+ }
+
if ((file_info.size_file_comment>0) && (commentBufferSize>0))
if (fread(szComment,(uInt)uSizeRead,1,s->file)!=1)
err=UNZ_ERRNO;
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 (err==UNZ_OK)
+ {
if (unzlocal_getLong(s->file,&uMagic) != UNZ_OK)
err=UNZ_ERRNO;
else if (uMagic!=0x04034b50)
err=UNZ_BADZIPFILE;
+ }
if (unzlocal_getShort(s->file,&uData) != UNZ_OK)
err=UNZ_ERRNO;
char *szComment;
uLong uSizeBuf;
{
- int err=UNZ_OK;
unz_s* s;
uLong uReadThis ;
if (file==NULL)