f0d81ffd1c
which included commits to RCS files with non-trunk default branches. git-svn-id: svn://10.65.10.50/trunk@5403 c028cbd2-c16b-5b4b-a496-9718f37d4682
220 lines
5.6 KiB
C
Executable File
220 lines
5.6 KiB
C
Executable File
//******************************************************************************
|
|
//
|
|
// File: PUNZIP.H
|
|
//
|
|
// Description: This is our global header for the entire Pocket UnZip project.
|
|
// This header contains all global project build flags, defines,
|
|
// constants, and macros. It also includes all other headers that
|
|
// are needed by the project.
|
|
//
|
|
// Copyright: All the source files for Pocket UnZip, except for components
|
|
// written by the Info-ZIP group, are copyrighted 1997 by Steve P.
|
|
// Miller. The product "Pocket UnZip" itself is property of the
|
|
// author and cannot be altered in any way without written consent
|
|
// from Steve P. Miller.
|
|
//
|
|
// Disclaimer: All project files are provided "as is" with no guarantee of
|
|
// their correctness. The authors are not liable for any outcome
|
|
// that is the result of using this source. The source for Pocket
|
|
// UnZip has been placed in the public domain to help provide an
|
|
// understanding of its implementation. You are hereby granted
|
|
// full permission to use this source in any way you wish, except
|
|
// to alter Pocket UnZip itself. For comments, suggestions, and
|
|
// bug reports, please write to stevemil@pobox.com.
|
|
//
|
|
//
|
|
// Date Name History
|
|
// -------- ------------ -----------------------------------------------------
|
|
// 02/01/97 Steve Miller Created (Version 1.0 using Info-ZIP UnZip 5.30)
|
|
//
|
|
//******************************************************************************
|
|
|
|
#ifndef __PUNZIP_H__
|
|
#define __PUNZIP_H__
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
//******************************************************************************
|
|
//***** Standard Win32 project flags
|
|
//******************************************************************************
|
|
|
|
#ifndef WIN32
|
|
#define WIN32
|
|
#endif
|
|
|
|
#ifndef _WINDOWS
|
|
#define _WINDOWS
|
|
#endif
|
|
|
|
#ifndef UNICODE
|
|
#define UNICODE
|
|
#endif
|
|
|
|
#ifndef _UNICODE
|
|
#define _UNICODE
|
|
#endif
|
|
|
|
#ifndef WIN32_LEAN_AND_MEAN
|
|
#define WIN32_LEAN_AND_MEAN
|
|
#endif
|
|
|
|
#ifndef STRICT
|
|
#define STRICT
|
|
#endif
|
|
|
|
#if defined(_DEBUG) && !defined(DEBUG)
|
|
#define DEBUG
|
|
#endif
|
|
|
|
#if defined(DEBUG) && !defined(_DEBUG)
|
|
#define _DEBUG
|
|
#endif
|
|
|
|
#if defined(_NDEBUG) && !defined(NDEBUG)
|
|
#define NDEBUG
|
|
#endif
|
|
|
|
#if defined(NDEBUG) && !defined(_NDEBUG)
|
|
#define _NDEBUG
|
|
#endif
|
|
|
|
|
|
//******************************************************************************
|
|
//***** Pocket Unzip and Info-ZIP flags
|
|
//******************************************************************************
|
|
|
|
#ifndef POCKET_UNZIP
|
|
#define POCKET_UNZIP
|
|
#endif
|
|
|
|
#ifndef UNZIP_INTERNAL
|
|
#define UNZIP_INTERNAL
|
|
#endif
|
|
|
|
#ifndef WINDLL
|
|
#define WINDLL
|
|
#endif
|
|
|
|
#ifndef DLL
|
|
#define DLL
|
|
#endif
|
|
|
|
#ifndef REENTRANT
|
|
#define REENTRANT
|
|
#endif
|
|
|
|
#ifndef USE_EF_UT_TIME
|
|
#define USE_EF_UT_TIME
|
|
#endif
|
|
|
|
#ifndef NO_ZIPINFO
|
|
#define NO_ZIPINFO
|
|
#endif
|
|
|
|
#ifndef NO_STDDEF_H
|
|
#define NO_STDDEF_H
|
|
#endif
|
|
|
|
#ifndef NO_NTSD_EAS
|
|
#define NO_NTSD_EAS
|
|
#endif
|
|
|
|
#ifdef NTSD_EAS
|
|
#undef NTSD_EAS
|
|
#endif
|
|
|
|
// Read COPYING document before enabling this define.
|
|
#if 0
|
|
#ifndef USE_SMITH_CODE
|
|
#define USE_SMITH_CODE
|
|
#endif
|
|
#endif
|
|
|
|
// Read COPYING document before enabling this define.
|
|
#if 0
|
|
#ifndef USE_UNSHRINK
|
|
#define USE_UNSHRINK
|
|
#endif
|
|
#endif
|
|
|
|
|
|
//******************************************************************************
|
|
//***** Global defines, constants, and macros
|
|
//******************************************************************************
|
|
|
|
#ifndef PATH_MAX
|
|
#define PATH_MAX _MAX_PATH
|
|
#endif
|
|
|
|
// WinCE uses ISO 8859-1 as codepage for 8-bit chars
|
|
#define CRTL_CP_IS_ISO
|
|
// The functionality of ISO <--> OEM conversion IS needed on WinCE, too!!
|
|
// (Otherwise, extended ASCII filenames and passwords in archives coming
|
|
// from other platforms may not be handled properly.)
|
|
// Since WinCE does not supply ISO <--> OEM conversion, we try to fall
|
|
// back to the hardcoded tables in the generic UnZip code.
|
|
|
|
#define ASCII2OEM(c) (((c) & 0x80) ? iso2oem[(c) & 0x7f] : (c))
|
|
#if !defined(CRYP_USES_ISO2OEM)
|
|
# define CRYP_USES_ISO2OEM
|
|
#endif
|
|
|
|
#define INTERN_TO_ISO(src, dst) {if ((src) != (dst)) strcpy((dst), (src));}
|
|
#define INTERN_TO_OEM(src, dst) {register uch c;\
|
|
register uch *dstp = (uch *)(dst), *srcp = (uch *)(src);\
|
|
do {\
|
|
c = (uch)foreign(*srcp++);\
|
|
*dstp++ = (uch)ASCII2OEM(c);\
|
|
} while (c != '\0');}
|
|
|
|
|
|
#if (defined(_MSC_VER) && !defined(MSC))
|
|
#define MSC
|
|
#endif
|
|
|
|
#ifdef MSC
|
|
#define DIR_END '\\' // ZipInfo with VC++ 4.0 requires this
|
|
#endif
|
|
|
|
// We are defining a few new error types for our code.
|
|
#define PK_EXCEPTION 500
|
|
#define PK_ABORTED 501
|
|
|
|
#define DATE_FORMAT DF_MDY
|
|
#define lenEOL 2
|
|
#define PutNativeEOL {*q++ = native(CR); *q++ = native(LF);}
|
|
|
|
#define countof(a) (sizeof(a)/sizeof(*(a)))
|
|
|
|
// The max number of retires (not including the first attempt) for entering
|
|
// a password for and encrypted file before giving up on that file.
|
|
#define MAX_PASSWORD_RETRIES 2
|
|
|
|
// Variables that we want to add to our Globals struct.
|
|
#define SYSTEM_SPECIFIC_GLOBALS \
|
|
char matchname[FILNAMSIZ]; \
|
|
int notfirstcall; \
|
|
char *zipfnPtr; \
|
|
char *wildzipfnPtr;
|
|
|
|
|
|
//******************************************************************************
|
|
//***** Global headers
|
|
//******************************************************************************
|
|
|
|
#include <windows.h>
|
|
#include <setjmp.h>
|
|
#include <stdlib.h>
|
|
#include <excpt.h>
|
|
#include "wince\wince.h" // Our WinCE specific code and our debug function.
|
|
#include "wince\resource.h" // Our resource constants
|
|
#include "wince\punzip.rcv" // Our version information.
|
|
|
|
#ifdef __cplusplus
|
|
} // extern "C"
|
|
#endif
|
|
|
|
#endif // __PUNZIP_H__
|