Archive-Unzip-Burst
view release on metacpan or search on metacpan
unzip-6.0/unzpriv.h view on Meta::CPAN
# ifndef FOPW
# define FOPW "w"
# endif
# ifndef FOPWT
# define FOPWT "w"
# endif
# ifndef FOPWR
# define FOPWR "w+"
# endif
#endif /* ?MODERN */
/*
* If <limits.h> exists on most systems, should include that, since it may
* define some or all of the following: NAME_MAX, PATH_MAX, _POSIX_NAME_MAX,
* _POSIX_PATH_MAX.
*/
#ifdef DOS_FLX_NLM_OS2_W32
# include <limits.h>
#endif
/* 2008-07-22 SMS.
* Unfortunately, on VMS, <limits.h> exists, and is included by <stdlib.h>
* (so it's pretty much unavoidable), and it defines PATH_MAX to a fixed
* short value (256, correct only for older systems without ODS-5 support),
* rather than one based on the real RMS NAM[L] situation. So, we
* artificially undefine it here, to allow our better-defined _MAX_PATH
* (see vms/vmscfg.h) to be used.
*/
#ifdef VMS
# undef PATH_MAX
#endif
#ifndef PATH_MAX
# ifdef MAXPATHLEN
# define PATH_MAX MAXPATHLEN /* in <sys/param.h> on some systems */
# else
# ifdef _MAX_PATH
# define PATH_MAX _MAX_PATH
# else
# if FILENAME_MAX > 255
# define PATH_MAX FILENAME_MAX /* used like PATH_MAX on some systems */
# else
# define PATH_MAX 1024
# endif
# endif /* ?_MAX_PATH */
# endif /* ?MAXPATHLEN */
#endif /* !PATH_MAX */
/*
* buffer size required to hold the longest legal local filepath
* (including the trailing '\0')
*/
#define FILNAMSIZ PATH_MAX
#ifdef UNICODE_SUPPORT
# if !(defined(UTF8_MAYBE_NATIVE) || defined(UNICODE_WCHAR))
# undef UNICODE_SUPPORT
# endif
#endif
/* 2007-09-18 SMS.
* Include <locale.h> here if it will be needed later for Unicode.
* Otherwise, SETLOCALE may be defined here, and then defined again
* (differently) when <locale.h> is read later.
*/
#ifdef UNICODE_SUPPORT
# ifdef UNICODE_WCHAR
# if !(defined(_WIN32_WCE) || defined(POCKET_UNZIP))
# include <wchar.h>
# endif
# endif
# ifndef _MBCS /* no need to include <locale.h> twice, see below */
# include <locale.h>
# ifndef SETLOCALE
# define SETLOCALE(category, locale) setlocale(category, locale)
# endif
# endif
#endif /* UNICODE_SUPPORT */
/* DBCS support for Info-ZIP (mainly for japanese (-: )
* by Yoshioka Tsuneo (QWF00133@nifty.ne.jp,tsuneo-y@is.aist-nara.ac.jp)
*/
#ifdef _MBCS
# include <locale.h>
/* Multi Byte Character Set */
# define ___MBS_TMP_DEF char *___tmp_ptr;
# define ___TMP_PTR ___tmp_ptr
# ifndef CLEN
# define NEED_UZMBCLEN
# define CLEN(ptr) (int)uzmbclen((ZCONST unsigned char *)(ptr))
# endif
# ifndef PREINCSTR
# define PREINCSTR(ptr) (ptr += CLEN(ptr))
# endif
# define POSTINCSTR(ptr) (___TMP_PTR=(char *)(ptr), PREINCSTR(ptr),___TMP_PTR)
char *plastchar OF((ZCONST char *ptr, extent len));
# define lastchar(ptr, len) ((int)(unsigned)*plastchar(ptr, len))
# ifndef MBSCHR
# define NEED_UZMBSCHR
# define MBSCHR(str,c) (char *)uzmbschr((ZCONST unsigned char *)(str), c)
# endif
# ifndef MBSRCHR
# define NEED_UZMBSRCHR
# define MBSRCHR(str,c) (char *)uzmbsrchr((ZCONST unsigned char *)(str), c)
# endif
# ifndef SETLOCALE
# define SETLOCALE(category, locale) setlocale(category, locale)
# endif
#else /* !_MBCS */
# define ___MBS_TMP_DEF
# define ___TMP_PTR
# define CLEN(ptr) 1
# define PREINCSTR(ptr) (++(ptr))
# define POSTINCSTR(ptr) ((ptr)++)
# define plastchar(ptr, len) (&ptr[(len)-1])
# define lastchar(ptr, len) (ptr[(len)-1])
# define MBSCHR(str, c) strchr(str, c)
# define MBSRCHR(str, c) strrchr(str, c)
# ifndef SETLOCALE
# define SETLOCALE(category, locale)
# endif
#endif /* ?_MBCS */
#define INCSTR(ptr) PREINCSTR(ptr)
#if (defined(MALLOC_WORK) && !defined(MY_ZCALLOC))
/* Any system without a special calloc function */
# ifndef zcalloc
# define zcalloc(items, size) \
(zvoid far *)calloc((unsigned)(items), (unsigned)(size))
# endif
# ifndef zcfree
# define zcfree free
# endif
#endif /* MALLOC_WORK && !MY_ZCALLOC */
#if (defined(CRAY) && defined(ZMEM))
# undef ZMEM
#endif
#ifdef ZMEM
# undef ZMEM
# define memcmp(b1,b2,len) bcmp(b2,b1,len)
# define memcpy(dest,src,len) bcopy(src,dest,len)
# define memzero bzero
#else
# define memzero(dest,len) memset(dest,0,len)
#endif
#ifndef TRUE
# define TRUE 1 /* sort of obvious */
#endif
#ifndef FALSE
# define FALSE 0
#endif
#ifndef SEEK_SET
# define SEEK_SET 0
# define SEEK_CUR 1
# define SEEK_END 2
#endif
#if (!defined(S_IEXEC) && defined(S_IXUSR))
# define S_IEXEC S_IXUSR
#endif
#if (defined(UNIX) && defined(S_IFLNK) && !defined(MTS))
# define SYMLINKS
# ifndef S_ISLNK
# define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
# endif
#endif /* UNIX && S_IFLNK && !MTS */
#ifndef S_ISDIR
# ifdef CMS_MVS
# define S_ISDIR(m) (FALSE)
# else
# define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
# endif
#endif
unzip-6.0/unzpriv.h view on Meta::CPAN
#endif
#if (!defined(INTERN_TO_ISO) && !defined(ASCII2ISO))
# ifdef CRTL_CP_IS_OEM
/* know: "ASCII" is "OEM" */
# define ASCII2ISO(c) \
((((c) & 0x80) && oem2iso) ? oem2iso[(c) & 0x7f] : (c))
# if (defined(NEED_STR2ISO) && !defined(CRYP_USES_OEM2ISO))
# define CRYP_USES_OEM2ISO
# endif
# else
/* assume: "ASCII" is "ISO-ANSI" */
# define ASCII2ISO(c) (c)
# endif
#endif
#if (!defined(INTERN_TO_OEM) && !defined(ASCII2OEM))
# ifdef CRTL_CP_IS_OEM
/* know: "ASCII" is "OEM" */
# define ASCII2OEM(c) (c)
# else
/* assume: "ASCII" is "ISO-ANSI" */
# define ASCII2OEM(c) \
((((c) & 0x80) && iso2oem) ? iso2oem[(c) & 0x7f] : (c))
# if (defined(NEED_STR2OEM) && !defined(CRYP_USES_ISO2OEM))
# define CRYP_USES_ISO2OEM
# endif
# endif
#endif
/* codepage conversion setup for testp() in crypt.c */
#ifdef CRTL_CP_IS_ISO
# ifndef STR_TO_CP2
# define STR_TO_CP2 STR_TO_OEM
# endif
#else
# ifdef CRTL_CP_IS_OEM
# ifndef STR_TO_CP2
# define STR_TO_CP2 STR_TO_ISO
# endif
# else /* native internal CP is neither ISO nor OEM */
# ifndef STR_TO_CP1
# define STR_TO_CP1 STR_TO_ISO
# endif
# ifndef STR_TO_CP2
# define STR_TO_CP2 STR_TO_OEM
# endif
# endif
#endif
/* Convert filename (and file comment string) into "internal" charset.
* This macro assumes that Zip entry filenames are coded in OEM (IBM DOS)
* codepage when made on
* -> DOS (this includes 16-bit Windows 3.1) (FS_FAT_)
* -> OS/2 (FS_HPFS_)
* -> Win95/WinNT with Nico Mak's WinZip (FS_NTFS_ && hostver == "5.0")
* EXCEPTIONS:
* PKZIP for Windows 2.5, 2.6, and 4.0 flag their entries as "FS_FAT_", but
* the filename stored in the local header is coded in Windows ANSI (CP 1252
* resp. ISO 8859-1 on US and western Europe locale settings).
* Likewise, PKZIP for UNIX 2.51 flags its entries as "FS_FAT_", but the
* filenames stored in BOTH the local and the central header are coded
* in the local system's codepage (usually ANSI codings like ISO 8859-1).
*
* All other ports are assumed to code zip entry filenames in ISO 8859-1.
*/
#ifndef Ext_ASCII_TO_Native
# define Ext_ASCII_TO_Native(string, hostnum, hostver, isuxatt, islochdr) \
if (((hostnum) == FS_FAT_ && \
!(((islochdr) || (isuxatt)) && \
((hostver) == 25 || (hostver) == 26 || (hostver) == 40))) || \
(hostnum) == FS_HPFS_ || \
((hostnum) == FS_NTFS_ && (hostver) == 50)) { \
_OEM_INTERN((string)); \
} else { \
_ISO_INTERN((string)); \
}
#endif
/**********************/
/* Global constants */
/**********************/
extern ZCONST unsigned near mask_bits[17];
extern ZCONST char *fnames[2];
#ifdef EBCDIC
extern ZCONST uch ebcdic[];
#endif
#ifdef IZ_ISO2OEM_ARRAY
extern ZCONST uch Far *iso2oem;
extern ZCONST uch Far iso2oem_850[];
#endif
#ifdef IZ_OEM2ISO_ARRAY
extern ZCONST uch Far *oem2iso;
extern ZCONST uch Far oem2iso_850[];
#endif
extern ZCONST char Far VersionDate[];
extern ZCONST char Far CentSigMsg[];
#ifndef SFX
extern ZCONST char Far EndSigMsg[];
#endif
extern ZCONST char Far SeekMsg[];
extern ZCONST char Far FilenameNotMatched[];
extern ZCONST char Far ExclFilenameNotMatched[];
extern ZCONST char Far ReportMsg[];
#ifndef SFX
extern ZCONST char Far Zipnfo[];
extern ZCONST char Far CompiledWith[];
#endif /* !SFX */
/***********************************/
/* Global (shared?) RTL variables */
/***********************************/
( run in 0.813 second using v1.01-cache-2.11-cpan-2c0d6866c4f )