diff options
author | John Wiegley <johnw@newartisans.com> | 2009-03-02 22:33:43 -0400 |
---|---|---|
committer | John Wiegley <johnw@newartisans.com> | 2009-03-02 22:33:43 -0400 |
commit | 710e4792d12bcc073e4396de8930f27dc516ef3e (patch) | |
tree | d634349e1d16f9bfd6bf77bb6c55dfdbdc5345b9 /src/report.cc | |
parent | 31d6430c78abce55b40e64be0b99c7ea7f76df44 (diff) | |
download | ledger-710e4792d12bcc073e4396de8930f27dc516ef3e.tar.gz ledger-710e4792d12bcc073e4396de8930f27dc516ef3e.tar.bz2 ledger-710e4792d12bcc073e4396de8930f27dc516ef3e.zip |
Added a "show" report query term
Everything beyond the show modifies the --display predicate, and
everything before modifies the --limit predicate.
Diffstat (limited to 'src/report.cc')
-rw-r--r-- | src/report.cc | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/src/report.cc b/src/report.cc index 0b3d625a..6a311bb8 100644 --- a/src/report.cc +++ b/src/report.cc @@ -322,11 +322,28 @@ namespace { value_t operator()(call_scope_t& args) { if (args.size() > 0) { - report.HANDLER(limit_).on - (args_to_predicate_expr(args.value().as_sequence().begin(), - args.value().as_sequence().end())); + value_t::sequence_t::const_iterator begin = + args.value().as_sequence().begin(); + value_t::sequence_t::const_iterator end = + args.value().as_sequence().end(); + + string limit = args_to_predicate_expr(begin, end); + + if (! limit.empty()) + report.HANDLER(limit_).on(limit); + DEBUG("report.predicate", "Predicate = " << report.HANDLER(limit_).str()); + + string display; + if (begin != end) + display = args_to_predicate_expr(begin, end); + + if (! display.empty()) + report.HANDLER(display_).on(display); + + DEBUG("report.predicate", + "Display predicate = " << report.HANDLER(display_).str()); } (report.*report_method)(handler_ptr(handler)); |