From 8a77f66005f77d9f8173c1e646ff521517d9c452 Mon Sep 17 00:00:00 2001 From: midipix Date: Feb 04 2024 19:56:33 +0000 Subject: struct slbt_archive_meta: store reference to the (optional) long names member. --- diff --git a/include/slibtool/slibtool.h b/include/slibtool/slibtool.h index 8e80811..180d009 100644 --- a/include/slibtool/slibtool.h +++ b/include/slibtool/slibtool.h @@ -316,6 +316,7 @@ struct slbt_archive_meta { struct ar_meta_signature * m_signature; struct ar_meta_member_info ** a_memberv; + struct ar_meta_member_info * a_arref_longnames; struct ar_meta_armap_info a_armap_primary; struct ar_meta_armap_info a_armap_pecoff; }; diff --git a/src/arbits/slbt_archive_meta.c b/src/arbits/slbt_archive_meta.c index dae7202..1af0ab8 100644 --- a/src/arbits/slbt_archive_meta.c +++ b/src/arbits/slbt_archive_meta.c @@ -830,6 +830,12 @@ int slbt_get_archive_meta( /* pe/coff armap attributes (second linker member) */ (void)m->armeta.a_armap_pecoff; + /* reference to the long names member */ + if (arlongnames) + for (idx=0; idxarmeta.a_arref_longnames; idx++) + if (m->memberv[idx]->ar_member_data == arlongnames) + m->armeta.a_arref_longnames = m->memberv[idx]; + /* member vector */ m->armeta.a_memberv = m->memberv;