diff options
Diffstat (limited to 'src/output.cc')
-rw-r--r-- | src/output.cc | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/output.cc b/src/output.cc index 63d8c919..92824714 100644 --- a/src/output.cc +++ b/src/output.cc @@ -46,7 +46,7 @@ format_posts::format_posts(report_t& _report, : report(_report), last_xact(NULL), last_post(NULL), print_raw(_print_raw) { - TRACE_CTOR(format_posts, "report&, const string&"); + TRACE_CTOR(format_posts, "report&, const string&, bool"); const char * f = format.c_str(); @@ -179,7 +179,9 @@ format_accounts::mark_accounts(account_t& account, const bool flat) (account.has_flags(ACCOUNT_EXT_VISITED) || (! flat && visited > 0))) { bind_scope_t bound_scope(report, account); if ((! flat && to_display > 1) || - (disp_pred(bound_scope) && (flat || to_display != 1))) { + ((flat || to_display != 1 || + account.has_flags(ACCOUNT_EXT_VISITED)) && + disp_pred(bound_scope))) { account.xdata().add_flags(ACCOUNT_EXT_TO_DISPLAY); DEBUG("account.display", "Marking account as TO_DISPLAY"); to_display = 1; @@ -207,7 +209,8 @@ void format_accounts::flush() foreach (account_t * account, posted_accounts) displayed += post_account(*account); - if (! report.HANDLED(no_total) && displayed > 1) { + if (displayed > 1 && + ! report.HANDLED(no_total) && ! report.HANDLED(percent)) { bind_scope_t bound_scope(report, *report.session.master); separator_format.format(out, bound_scope); total_line_format.format(out, bound_scope); |