diff options
-rw-r--r-- | format.cc | 45 | ||||
-rw-r--r-- | format.h | 2 | ||||
-rw-r--r-- | main.cc | 14 |
3 files changed, 30 insertions, 31 deletions
@@ -358,34 +358,33 @@ void format_transaction::operator()(transaction_t * xact) const xact->total += *xact; xact->index = last_xact ? last_xact->index + 1 : 0; - if (! disp_pred_functor(xact)) - return; - - xact->flags |= TRANSACTION_DISPLAYED; + if (disp_pred_functor(xact)) { + xact->flags |= TRANSACTION_DISPLAYED; - // This makes the assumption that transactions from a single entry - // are always grouped together. + // This makes the assumption that transactions from a single entry + // are always grouped together. #ifdef COLLAPSED_REGISTER - if (collapsed) { - // If we've reached a new entry, report on the subtotal - // accumulated thus far. - - if (last_entry && last_entry != xact->entry) { - report_cumulative_subtotal(); - subtotal = 0; - count = 0; - } + if (collapsed) { + // If we've reached a new entry, report on the subtotal + // accumulated thus far. + + if (last_entry && last_entry != xact->entry) { + report_cumulative_subtotal(); + subtotal = 0; + count = 0; + } - subtotal += *xact; - count++; - } else + subtotal += *xact; + count++; + } else #endif - { - if (last_entry != xact->entry) { - first_line_format.format_elements(output_stream, details_t(xact)); - } else { - next_lines_format.format_elements(output_stream, details_t(xact)); + { + if (last_entry != xact->entry) { + first_line_format.format_elements(output_stream, details_t(xact)); + } else { + next_lines_format.format_elements(output_stream, details_t(xact)); + } } } @@ -82,6 +82,8 @@ struct format_t } }; +#define COLLAPSED_REGISTER 1 // support collapsed registers + class format_transaction { std::ostream& output_stream; @@ -578,18 +578,15 @@ int main(int argc, char * argv[]) predicate.reset(parse_expr(predicate_string)); } - if (! show_empty && display_predicate_string.empty()) { - if (command == "b") + if (display_predicate_string.empty()) { + if (command == "b" && ! show_empty) display_predicate_string = "T"; else if (command == "E") display_predicate_string = "a"; - } - - if (! display_predicate_string.empty()) { + } else { #ifdef DEBUG if (debug) - std::cerr << "display predicate = " << display_predicate_string - << std::endl; + std::cerr << "display-p = " << display_predicate_string << std::endl; #endif display_predicate.reset(parse_expr(display_predicate_string)); } @@ -599,7 +596,7 @@ int main(int argc, char * argv[]) if (! sort_string.empty()) sort_order.reset(parse_expr(sort_string)); - // Setup the meaning of %t and %T encountered in format strings + // Setup the meaning of %t and %T, used in format strings format_t::value_expr.reset(parse_expr(value_expr)); format_t::total_expr.reset(parse_expr(total_expr)); @@ -705,6 +702,7 @@ int main(int argc, char * argv[]) xact_display_flags); std::stable_sort(transactions_pool.begin(), transactions_pool.end(), compare_items<transaction_t>(sort_order.get())); + if (show_commodities_revalued) { changed_value_filter<format_transaction> filtered_formatter(formatter); |