Staging
v0.5.1
https://github.com/python/cpython
Revision 3182172519188f8950457f50c54898f332e90121 authored by Anthony Baxter on 01 November 2006, 07:09:04 UTC, committed by Anthony Baxter on 01 November 2006, 07:09:04 UTC
1 parent 427f6ca
Raw File
Tip revision: 3182172519188f8950457f50c54898f332e90121 authored by Anthony Baxter on 01 November 2006, 07:09:04 UTC
Tagging for release of Python 2.3.6
Tip revision: 3182172
archive.h
/*
  IMPORTANT NOTE: IF THIS FILE IS CHANGED, WININST.EXE MUST BE RECOMPILED WITH
  THE MSVC6 WININST.DSW WORKSPACE FILE MANUALLY.

  IF CHANGES TO THIS FILE ARE CHECKED INTO PYTHON CVS, THE RECOMPILED BINARY
  MUST BE CHECKED IN AS WELL!
*/

#pragma pack(1)

/* zip-archive headers
 * See: http://www.pkware.com/appnote.html
 */

struct eof_cdir {
	long tag;	/* must be 0x06054b50 */
	short disknum;
	short firstdisk;
	short nTotalCDirThis;
	short nTotalCDir;
	long nBytesCDir;
	long ofsCDir;
	short commentlen;
};

struct cdir {
	long tag;	/* must be 0x02014b50 */
	short version_made;
	short version_extract;
	short gp_bitflag;
	short comp_method;
	short last_mod_file_time;
	short last_mod_file_date;
	long crc32;
	long comp_size;
	long uncomp_size;
	short fname_length;
	short extra_length;
	short comment_length;
	short disknum_start;
	short int_file_attr;
	long ext_file_attr;
	long ofs_local_header;
};

struct fhdr {
	long tag;	/* must be 0x04034b50 */
	short version_needed;
	short flags;
	short method;
	short last_mod_file_time;
	short last_mod_file_date;
	long crc32;
	long comp_size;
	long uncomp_size;
	short fname_length;
	short extra_length;
};


struct meta_data_hdr {
	int tag;
	int uncomp_size;
	int bitmap_size;
};

#pragma pack()

/* installation scheme */

typedef struct tagSCHEME {
	char *name;
	char *prefix;
} SCHEME;

typedef int (*NOTIFYPROC)(int code, LPSTR text, ...);

extern BOOL
extract_file(char *dst, char *src, int method, int comp_size,
	     int uncomp_size, NOTIFYPROC notify);

extern BOOL
unzip_archive(SCHEME *scheme, char *dirname, char *data,
	      DWORD size,  NOTIFYPROC notify);

extern char *
map_new_file(DWORD flags, char *filename, char
	     *pathname_part, int size,
	     WORD wFatDate, WORD wFatTime,
	     NOTIFYPROC callback);

extern BOOL
ensure_directory (char *pathname, char *new_part,
		  NOTIFYPROC callback);

/* codes for NOITIFYPROC */
#define DIR_CREATED 1
#define CAN_OVERWRITE 2
#define FILE_CREATED 3
#define ZLIB_ERROR 4
#define SYSTEM_ERROR 5
#define NUM_FILES 6
#define FILE_OVERWRITTEN 7

back to top