summaryrefslogtreecommitdiff
path: root/walk.cc
diff options
context:
space:
mode:
Diffstat (limited to 'walk.cc')
-rw-r--r--walk.cc11
1 files changed, 8 insertions, 3 deletions
diff --git a/walk.cc b/walk.cc
index ce7ddd8a..1f58f0c6 100644
--- a/walk.cc
+++ b/walk.cc
@@ -32,7 +32,8 @@ void calc_transactions::operator()(transaction_t * xact)
xact->cost.negate();
}
- xact->total += *xact;
+ if (! (xact->dflags & TRANSACTION_NO_TOTAL))
+ xact->total += *xact;
(*handler)(xact);
@@ -102,8 +103,12 @@ void changed_value_transactions::operator()(transaction_t * xact)
xact_temps.push_back(temp_xact);
temp_xact->amount = (*i).second;
- temp_xact->total = (*i).second;
- temp_xact->total.negate();
+ if (changed_values_only) {
+ temp_xact->dflags |= TRANSACTION_NO_TOTAL;
+ } else {
+ temp_xact->total = (*i).second;
+ temp_xact->total.negate();
+ }
(*handler)(temp_xact);
}