1 #include <stdio.h> // for off_t
3 enum extract_functions_e {
4 extract_verbose_list = 1,
6 extract_one_to_buffer = 4,
8 extract_all_to_fs = 16,
9 extract_preserve_date = 32,
10 extract_data_tar_gz = 64,
11 extract_control_tar_gz = 128,
12 extract_unzip_only = 256,
13 extract_unconditional = 512,
14 extract_create_leading_dirs = 1024,
16 extract_exclude_list = 4096
19 typedef struct file_headers_s {
30 file_header_t *get_header_ar(FILE *in_file);
31 file_header_t *get_header_cpio(FILE *src_stream);
32 file_header_t *get_header_tar(FILE *tar_stream);
34 void seek_sub_file(FILE *src_stream, const int count);
36 extern off_t archive_offset;
38 char *unarchive(FILE *src_stream, FILE *out_stream, file_header_t *(*get_headers)(FILE *),
39 const int extract_function, const char *prefix, char **include_name, char **exclude_name);
41 char *deb_extract(const char *package_filename, FILE *out_stream, const int extract_function,
42 const char *prefix, const char *filename);