summaryrefslogtreecommitdiff
path: root/src/logic
diff options
context:
space:
mode:
Diffstat (limited to 'src/logic')
-rw-r--r--src/logic/slbt_exec_ar.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/logic/slbt_exec_ar.c b/src/logic/slbt_exec_ar.c
index eab86ea..9b400af 100644
--- a/src/logic/slbt_exec_ar.c
+++ b/src/logic/slbt_exec_ar.c
@@ -79,10 +79,21 @@ static int slbt_exec_ar_perform_archive_actions(
{
struct slbt_archive_ctx ** arctxp;
struct slbt_archive_ctx * arctx;
+ bool farname;
+
+ switch (dctx->cctx->fmtflags & SLBT_PRETTY_FLAGS) {
+ case SLBT_PRETTY_POSIX:
+ farname = (arctxv[0] && arctxv[1]);
+ break;
+
+ default:
+ farname = true;
+ break;
+ }
for (arctxp=arctxv; *arctxp; arctxp++) {
if (dctx->cctx->fmtflags & SLBT_DRIVER_MODE_AR_OUTPUTS)
- if (slbt_ar_output_arname(*arctxp) < 0)
+ if (farname && (slbt_ar_output_arname(*arctxp) < 0))
return SLBT_NESTED_ERROR(dctx);
if (dctx->cctx->fmtflags & SLBT_OUTPUT_ARCHIVE_MEMBERS)