1 #include <stdio.h> /* for FILE */
2 #include <unistd.h> /* for off_t */
4 enum extract_functions_e {
5 extract_verbose_list = 1,
7 extract_one_to_buffer = 4,
9 extract_all_to_fs = 16,
10 extract_preserve_date = 32,
11 extract_data_tar_gz = 64,
12 extract_control_tar_gz = 128,
13 extract_unzip_only = 256,
14 extract_unconditional = 512,
15 extract_create_leading_dirs = 1024,
17 extract_exclude_list = 4096
20 typedef struct file_headers_s {
29 int (*extract_func) (FILE *, FILE *);
32 file_header_t *get_header_ar(FILE * in_file);
33 file_header_t *get_header_cpio(FILE * src_stream);
34 file_header_t *get_header_tar(FILE * tar_stream);
35 file_header_t *get_header_zip(FILE * zip_stream);
37 void seek_sub_file(FILE * src_stream, const int count);
39 extern off_t archive_offset;
41 char *unarchive(FILE * src_stream, FILE * out_stream,
42 file_header_t * (*get_headers) (FILE *),
43 const int extract_function, const char *prefix,
44 char **include_name, char **exclude_name);
46 char *deb_extract(const char *package_filename, FILE * out_stream,
47 const int extract_function, const char *prefix,
48 const char *filename);