summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/slibtool/slibtool_arbits.h1
-rw-r--r--src/arbits/slbt_archive_meta.c3
2 files changed, 3 insertions, 1 deletions
diff --git a/include/slibtool/slibtool_arbits.h b/include/slibtool/slibtool_arbits.h
index 9a5ab4d..7c953be 100644
--- a/include/slibtool/slibtool_arbits.h
+++ b/include/slibtool/slibtool_arbits.h
@@ -118,6 +118,7 @@ struct ar_meta_file_header {
struct ar_meta_member_info {
struct ar_meta_file_header ar_file_header;
+ struct ar_raw_file_header * ar_member_data;
uint32_t ar_member_attr;
uint32_t ar_object_attr;
uint64_t ar_object_size;
diff --git a/src/arbits/slbt_archive_meta.c b/src/arbits/slbt_archive_meta.c
index a0b5f24..ba6e273 100644
--- a/src/arbits/slbt_archive_meta.c
+++ b/src/arbits/slbt_archive_meta.c
@@ -1068,7 +1068,7 @@ int slbt_get_archive_meta(
longnamep++;
}
- /* object size, object data */
+ /* member raw header, object size, object data */
mark = arhdr->ar_file_id;
mark += sizeof(*arhdr);
namelen = 0;
@@ -1086,6 +1086,7 @@ int slbt_get_archive_meta(
mark += namelen;
};
+ memberp->ar_member_data = arhdr;
memberp->ar_object_data = (void *)mark;
memberp->ar_object_size = memberp->ar_file_header.ar_file_size - namelen;