aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/libbb.h18
1 files changed, 14 insertions, 4 deletions
diff --git a/include/libbb.h b/include/libbb.h
index 3b0ced7d1..c29955b3b 100644
--- a/include/libbb.h
+++ b/include/libbb.h
@@ -212,9 +212,19 @@ char *xreadlink(const char *path);
212char *concat_path_file(const char *path, const char *filename); 212char *concat_path_file(const char *path, const char *filename);
213char *last_char_is(const char *s, int c); 213char *last_char_is(const char *s, int c);
214 214
215void *get_header_ar(FILE *in_file); 215typedef struct file_headers_s {
216void *get_header_cpio(FILE *src_stream); 216 char *name;
217void *get_header_tar(FILE *tar_stream); 217 char *link_name;
218 off_t size;
219 uid_t uid;
220 gid_t gid;
221 mode_t mode;
222 time_t mtime;
223 dev_t device;
224} file_header_t;
225file_header_t *get_header_ar(FILE *in_file);
226file_header_t *get_header_cpio(FILE *src_stream);
227file_header_t *get_header_tar(FILE *tar_stream);
218 228
219enum extract_functions_e { 229enum extract_functions_e {
220 extract_verbose_list = 1, 230 extract_verbose_list = 1,
@@ -229,7 +239,7 @@ enum extract_functions_e {
229 extract_unconditional = 512, 239 extract_unconditional = 512,
230 extract_create_leading_dirs = 1024 240 extract_create_leading_dirs = 1024
231}; 241};
232char *unarchive(FILE *src_stream, void *(*get_header)(FILE *), 242char *unarchive(FILE *src_stream, file_header_t *(*get_header)(FILE *),
233 const int extract_function, const char *prefix, char **extract_names); 243 const int extract_function, const char *prefix, char **extract_names);
234char *deb_extract(const char *package_filename, FILE *out_stream, const int extract_function, 244char *deb_extract(const char *package_filename, FILE *out_stream, const int extract_function,
235 const char *prefix, const char *filename); 245 const char *prefix, const char *filename);