summaryrefslogtreecommitdiffstats
path: root/PC/bdist_wininst/archive.h
diff options
context:
space:
mode:
authorThomas Heller <theller@ctypes.org>2002-11-22 20:39:33 (GMT)
committerThomas Heller <theller@ctypes.org>2002-11-22 20:39:33 (GMT)
commitbb4b7d2d68b82803640f6ffbb79a7f694dcbf21c (patch)
tree0cb69aa43c7902de9adba851ae3955bf3885819b /PC/bdist_wininst/archive.h
parent8bec48316b1ffb4ea153e78b9119d7e77b98f3eb (diff)
downloadcpython-bb4b7d2d68b82803640f6ffbb79a7f694dcbf21c.zip
cpython-bb4b7d2d68b82803640f6ffbb79a7f694dcbf21c.tar.gz
cpython-bb4b7d2d68b82803640f6ffbb79a7f694dcbf21c.tar.bz2
Copied the sources from the distutils CVS repository.
Changed the MSVC project file to create the exe in the lib/distutils/command directory, bdist_wininst.py must still be changed to use it. Also changed to use the same zlib as the zlib module - this has the nice sideeffect that now the buggy 1.1.3 version is no longer used. Most of the source files now conform to PEP 7, except for the maximum line length. Windows api programming in 78 character lines =:(. README.txt is a new file, but still empty except for placeholders.
Diffstat (limited to 'PC/bdist_wininst/archive.h')
-rw-r--r--PC/bdist_wininst/archive.h96
1 files changed, 96 insertions, 0 deletions
diff --git a/PC/bdist_wininst/archive.h b/PC/bdist_wininst/archive.h
new file mode 100644
index 0000000..977898c
--- /dev/null
+++ b/PC/bdist_wininst/archive.h
@@ -0,0 +1,96 @@
+#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
+