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;