summaryrefslogtreecommitdiff
path: root/src/output.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/output.cc')
-rw-r--r--src/output.cc9
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);