summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/slibtool/slibtool.h1
-rw-r--r--src/arbits/slbt_archive_meta.c6
2 files changed, 7 insertions, 0 deletions
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; idx<nentries && !m->armeta.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;