summaryrefslogtreecommitdiff
path: root/archival/libunarchive/unarchive.c
diff options
context:
space:
mode:
Diffstat (limited to 'archival/libunarchive/unarchive.c')
-rw-r--r--archival/libunarchive/unarchive.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/archival/libunarchive/unarchive.c b/archival/libunarchive/unarchive.c
index ff9b587..41be963 100644
--- a/archival/libunarchive/unarchive.c
+++ b/archival/libunarchive/unarchive.c
@@ -120,7 +120,8 @@ char *extract_archive(FILE *src_stream, FILE *out_stream, const file_header_t *f
return NULL;
}
archive_offset += file_entry->size;
- copy_file_chunk(src_stream, dst_stream, file_entry->size);
+ if (file_entry->extract_func) file_entry->extract_func(src_stream, dst_stream);
+ else copy_file_chunk(src_stream, dst_stream, file_entry->size);
fclose(dst_stream);
}
break;