⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unzip.h

📁 zip压缩
💻 H
📖 第 1 页 / 共 2 页
字号:
#  ifndef EXPENTRY#    define UZ_EXP WINAPI#  else#    define UZ_EXP EXPENTRY#  endif#endif#ifndef UZ_EXP#  define UZ_EXP#endif/*---------------------------------------------------------------------------    Public typedefs.  ---------------------------------------------------------------------------*/#ifndef _IZ_TYPES_DEFINED#ifdef MODERN   typedef void zvoid;#else /* !MODERN */#  ifndef AOS_VS         /* mostly modern? */#    ifndef VAXC         /* not fully modern, but has knows 'void' */#      define void int#    endif /* !VAXC */#  endif /* !AOS_VS */   typedef char zvoid;#endif /* ?MODERN */typedef unsigned char   uch;    /* code assumes unsigned bytes; these type-  */typedef unsigned short  ush;    /*  defs replace byte/UWORD/ULONG (which are */typedef unsigned long   ulg;    /*  predefined on some systems) & match zip  */#define _IZ_TYPES_DEFINED#endif /* !_IZ_TYPES_DEFINED *//* InputFn is not yet used and is likely to change: */#ifdef PROTO   typedef int   (UZ_EXP MsgFn)     (zvoid *pG, uch *buf, ulg size, int flag);   typedef int   (UZ_EXP InputFn)   (zvoid *pG, uch *buf, int *size, int flag);   typedef void  (UZ_EXP PauseFn)   (zvoid *pG, ZCONST char *prompt, int flag);   typedef int   (UZ_EXP PasswdFn)  (zvoid *pG, int *rcnt, char *pwbuf,                                     int size, ZCONST char *zfn,                                     ZCONST char *efn);   typedef int   (UZ_EXP StatCBFn)  (zvoid *pG, int fnflag, ZCONST char *zfn,                                     ZCONST char *efn, ZCONST zvoid *details);   typedef void  (UZ_EXP UsrIniFn)  (void);#else /* !PROTO */   typedef int   (UZ_EXP MsgFn)     ();   typedef int   (UZ_EXP InputFn)   ();   typedef void  (UZ_EXP PauseFn)   ();   typedef int   (UZ_EXP PasswdFn)  ();   typedef int   (UZ_EXP StatCBFn)  ();   typedef void  (UZ_EXP UsrIniFn)  ();#endif /* ?PROTO */typedef struct _UzpBuffer {    /* rxstr */    ulg   strlength;           /* length of string */    char  *strptr;             /* pointer to string */} UzpBuffer;typedef struct _UzpInit {    ulg structlen;             /* length of the struct being passed */    /* GRR: can we assume that each of these is a 32-bit pointer?  if not,     * does it matter? add "far" keyword to make sure? */    MsgFn *msgfn;    InputFn *inputfn;    PauseFn *pausefn;    UsrIniFn *userfn;          /* user init function to be called after */                               /*  globals constructed and initialized */    /* pointer to program's environment area or something? */    /* hooks for performance testing? */    /* hooks for extra unzip -v output? (detect CPU or other hardware?) */    /* anything else?  let me (Greg) know... */} UzpInit;typedef struct _UzpCB {    ulg structlen;             /* length of the struct being passed */    /* GRR: can we assume that each of these is a 32-bit pointer?  if not,     * does it matter? add "far" keyword to make sure? */    MsgFn *msgfn;    InputFn *inputfn;    PauseFn *pausefn;    PasswdFn *passwdfn;    StatCBFn *statrepfn;} UzpCB;/* the collection of general UnZip option flags and option arguments */typedef struct _UzpOpts {#ifndef FUNZIP    char *exdir;        /* pointer to extraction root directory (-d option) */    char *pwdarg;       /* pointer to command-line password (-P option) */    int zipinfo_mode;   /* behave like ZipInfo or like normal UnZip? */    int aflag;          /* -a: do ASCII-EBCDIC and/or end-of-line translation */#ifdef VMS    int bflag;          /* -b: force fixed record format for binary files */#endif#ifdef TANDEM    int bflag;          /* -b: create text files in 'C' format (180)*/#endif#ifdef UNIXBACKUP    int B_flag;         /* -B: back up existing files by renaming to *~ first */#endif    int cflag;          /* -c: output to stdout */    int C_flag;         /* -C: match filenames case-insensitively */#ifdef MACOS    int E_flag;         /* -E: [MacOS] show Mac extra field during restoring */#endif    int fflag;          /* -f: "freshen" (extract only newer files) */#if (defined(RISCOS) || defined(ACORN_FTYPE_NFS))    int acorn_nfs_ext;  /* -F: RISC OS types & NFS filetype extensions */#endif    int hflag;          /* -h: header line (zipinfo) */#ifdef MACOS    int i_flag;         /* -i: [MacOS] ignore filenames stored in Mac e.f. */#endif#ifdef RISCOS    int scanimage;      /* -I: scan image files */#endif    int jflag;          /* -j: junk pathnames (unzip) */#if (defined(__BEOS__) || defined(MACOS))    int J_flag;         /* -J: ignore BeOS/MacOS extra field info (unzip) */#endif    int lflag;          /* -12slmv: listing format (zipinfo) */    int L_flag;         /* -L: convert filenames from some OSes to lowercase */    int overwrite_none; /* -n: never overwrite files (no prompting) */#ifdef AMIGA    int N_flag;         /* -N: restore comments as AmigaDOS filenotes */#endif    int overwrite_all;  /* -o: OK to overwrite files without prompting */#endif /* !FUNZIP */    int qflag;          /* -q: produce a lot less output */#ifndef FUNZIP#if (defined(MSDOS) || defined(FLEXOS) || defined(OS2) || defined(WIN32))    int sflag;          /* -s: convert spaces in filenames to underscores */#endif#if (defined(NLM))    int sflag;          /* -s: convert spaces in filenames to underscores */#endif#if (defined(MSDOS) || defined(__human68k__) || defined(OS2) || defined(WIN32))    int volflag;        /* -$: extract volume labels */#endif    int tflag;          /* -t: test (unzip) or totals line (zipinfo) */    int T_flag;         /* -T: timestamps (unzip) or dec. time fmt (zipinfo) */    int uflag;          /* -u: "update" (extract only newer/brand-new files) */    int vflag;          /* -v: (verbosely) list directory */    int V_flag;         /* -V: don't strip VMS version numbers */#if (defined(__BEOS__) || defined(TANDEM) || defined(THEOS) || defined(UNIX))    int X_flag;         /* -X: restore owner/protection or UID/GID or ACLs */#endif#if (defined(OS2) || defined(VMS) || defined(WIN32))    int X_flag;         /* -X: restore owner/protection or UID/GID or ACLs */#endif    int zflag;          /* -z: display the zipfile comment (only, for unzip) */#if (!defined(RISCOS) && !defined(CMS_MVS) && !defined(TANDEM))    int ddotflag;       /* -:: don't skip over "../" path elements */#endif#endif /* !FUNZIP */} UzpOpts;/* intended to be a private struct: */typedef struct _ver {    uch major;              /* e.g., integer 5 */    uch minor;              /* e.g., 2 */    uch patchlevel;         /* e.g., 0 */    uch not_used;} _version_type;typedef struct _UzpVer {    ulg structlen;          /* length of the struct being passed */    ulg flag;               /* bit 0: is_beta   bit 1: uses_zlib */    char *betalevel;        /* e.g., "g BETA" or "" */    char *date;             /* e.g., "4 Sep 95" (beta) or "4 September 1995" */    char *zlib_version;     /* e.g., "0.95" or NULL */    _version_type unzip;    _version_type zipinfo;    _version_type os2dll;    _version_type windll;} UzpVer;/* for Visual BASIC access to Windows DLLs: */typedef struct _UzpVer2 {    ulg structlen;          /* length of the struct being passed */    ulg flag;               /* bit 0: is_beta   bit 1: uses_zlib */    char betalevel[10];     /* e.g., "g BETA" or "" */    char date[20];          /* e.g., "4 Sep 95" (beta) or "4 September 1995" */    char zlib_version[10];  /* e.g., "0.95" or NULL */    _version_type unzip;    _version_type zipinfo;    _version_type os2dll;    _version_type windll;} UzpVer2;typedef struct central_directory_file_header { /* CENTRAL */    uch version_made_by[2];    uch version_needed_to_extract[2];    ush general_purpose_bit_flag;    ush compression_method;    ulg last_mod_dos_datetime;    ulg crc32;    ulg csize;    ulg ucsize;    ush filename_length;    ush extra_field_length;    ush file_comment_length;    ush disk_number_start;    ush internal_file_attributes;    ulg external_file_attributes;    ulg relative_offset_local_header;} cdir_file_hdr;#define UZPINIT_LEN   sizeof(UzpInit)#define UZPVER_LEN    sizeof(UzpVer)#define cbList(func)  int (* UZ_EXP func)(char *filename, cdir_file_hdr *crec)/*---------------------------------------------------------------------------    Return (and exit) values of the public UnZip API functions.  ---------------------------------------------------------------------------*//* external return codes */#define PK_OK              0   /* no error */#define PK_COOL            0   /* no error */#define PK_WARN            1   /* warning error */#define PK_ERR             2   /* error in zipfile */#define PK_BADERR          3   /* severe error in zipfile */#define PK_MEM             4   /* insufficient memory (during initialization) */#define PK_MEM2            5   /* insufficient memory (password failure) */#define PK_MEM3            6   /* insufficient memory (file decompression) */#define PK_MEM4            7   /* insufficient memory (memory decompression) */#define PK_MEM5            8   /* insufficient memory (not yet used) */#define PK_NOZIP           9   /* zipfile not found */#define PK_PARAM          10   /* bad or illegal parameters specified */#define PK_FIND           11   /* no files found */#define PK_DISK           50   /* disk full */#define PK_EOF            51   /* unexpected EOF */#define IZ_CTRLC          80   /* user hit ^C to terminate */#define IZ_UNSUP          81   /* no files found: all unsup. compr/encrypt. */#define IZ_BADPWD         82   /* no files found: all had bad password *//* return codes of password fetches (negative = user abort; positive = error) */#define IZ_PW_ENTERED      0   /* got some password string; use/try it */#define IZ_PW_CANCEL      -1   /* no password available (for this entry) */#define IZ_PW_CANCELALL   -2   /* no password, skip any further pwd. request */#define IZ_PW_ERROR        5   /* = PK_MEM2 : failure (no mem, no tty, ...) *//* flag values for status callback function */#define UZ_ST_START_EXTRACT     1       /* no details */#define UZ_ST_IN_PROGRESS       2       /* no details */#define UZ_ST_FINISH_MEMBER     3       /* 'details': extracted size *//* return values of status callback function */#define UZ_ST_CONTINUE          0#define UZ_ST_BREAK             1/*---------------------------------------------------------------------------    Prototypes for public UnZip API (DLL) functions.  ---------------------------------------------------------------------------*/#define  UzpMatch matchint      UZ_EXP UzpMain            OF((int argc, char **argv));int      UZ_EXP UzpAltMain         OF((int argc, char **argv, UzpInit *init));UzpVer * UZ_EXP UzpVersion         OF((void));void     UZ_EXP UzpFreeMemBuffer   OF((UzpBuffer *retstr));#ifndef WINDLLint      UZ_EXP UzpUnzipToMemory   OF((char *zip, char *file, UzpOpts *optflgs,                                       UzpCB *UsrFunc, UzpBuffer *retstr));int      UZ_EXP UzpGrep            OF((char *archive, char *file,                                       char *pattern, int cmd, int SkipBin,                                       UzpCB *UsrFunc));#endif#ifdef OS2int      UZ_EXP UzpFileTree        OF((char *name, cbList(callBack),                                       char *cpInclude[], char *cpExclude[]));#endifvoid     UZ_EXP UzpVersion2        OF((UzpVer2 *version));int      UZ_EXP UzpValidate        OF((char *archive, int AllCodes));/* default I/O functions (can be swapped out via UzpAltMain() entry point): */int      UZ_EXP UzpMessagePrnt   OF((zvoid *pG, uch *buf, ulg size, int flag));int      UZ_EXP UzpMessageNull   OF((zvoid *pG, uch *buf, ulg size, int flag));int      UZ_EXP UzpInput         OF((zvoid *pG, uch *buf, int *size, int flag));void     UZ_EXP UzpMorePause     OF((zvoid *pG, ZCONST char *prompt, int flag));int      UZ_EXP UzpPassword      OF((zvoid *pG, int *rcnt, char *pwbuf,                                     int size, ZCONST char *zfn,                                     ZCONST char *efn));/*---------------------------------------------------------------------------    Remaining private stuff for UnZip compilation.  ---------------------------------------------------------------------------*/#ifdef UNZIP_INTERNAL#  include "unzpriv.h"#endif#endif /* !__unzip_h */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -