mztools.c revision 1b33c96954667ba382fa595baf7b31290bfdd517
/*
Additional tools for Minizip
Code: Xavier Roche '2004
License: Same as ZLIB (www.gzip.org)
*/
/* Code */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "zlib.h"
#include "unzip.h"
*((unsigned char*)(buff)) = (unsigned char) ((n) & 0xff); \
} while(0)
} while(0)
} while(0)
const char* file;
const char* fileOut;
const char* fileOutTmp;
{
int entries = 0;
uLong totalBytes = 0;
char header[30];
char filename[1024];
char extra[1024];
int offset = 0;
int offsetCD = 0;
int currentOffset = offset;
/* File entry */
/* Header */
offset += 30;
} else {
break;
}
/* Filename */
if (fnsize > 0) {
} else {
break;
}
} else {
break;
}
} else {
break;
}
} else {
break;
}
/* Extra field */
if (extsize > 0) {
} else {
break;
}
} else {
break;
}
} else {
break;
}
}
/* Data */
{
if (dataSize == 0) {
}
if (dataSize > 0) {
totalBytes += dataSize;
} else {
}
} else {
}
break;
}
} else {
err = Z_MEM_ERROR;
break;
}
}
}
/* Central directory entry */
{
char header[46];
char* comment = "";
/* Header */
offsetCD += 46;
/* Filename */
if (fnsize > 0) {
} else {
break;
}
} else {
break;
}
/* Extra field */
if (extsize > 0) {
} else {
break;
}
}
/* Comment field */
if (comsize > 0) {
} else {
break;
}
}
} else {
break;
}
}
/* Success */
entries++;
} else {
break;
}
}
/* Final central directory */
{
int entriesZip = entries;
char header[22];
if (entriesZip > 0xffff) {
entriesZip = 0xffff;
}
/* Header */
/* Comment field */
if (comsize > 0) {
}
}
} else {
}
}
/* Final merge (file + central directory) */
int nRead;
char buffer[8192];
break;
}
}
}
}
/* Close */
/* Wipe temporary file */
(void)remove(fileOutTmp);
/* Number of recovered entries */
if (nRecovered != NULL) {
*nRecovered = entries;
}
if (bytesRecovered != NULL) {
}
}
} else {
}
return err;
}