diff options
author | John Wiegley <johnw@newartisans.com> | 2009-11-18 23:15:22 -0500 |
---|---|---|
committer | John Wiegley <johnw@newartisans.com> | 2009-11-18 23:19:51 -0500 |
commit | e27ba3e1ff77537ade8287f1d66cf6fe626c8962 (patch) | |
tree | 2b3750dd02a41a295582091f23f22416ee6fedba | |
parent | 93b8f3fe54814850fb2944e7467cd6ccc817b3ba (diff) | |
download | fork-ledger-e27ba3e1ff77537ade8287f1d66cf6fe626c8962.tar.gz fork-ledger-e27ba3e1ff77537ade8287f1d66cf6fe626c8962.tar.bz2 fork-ledger-e27ba3e1ff77537ade8287f1d66cf6fe626c8962.zip |
It's OK for a report query to be empty
It's always possible the user only specified a display predicate.
-rw-r--r-- | src/precmd.cc | 24 | ||||
-rw-r--r-- | src/report.cc | 24 |
2 files changed, 20 insertions, 28 deletions
diff --git a/src/precmd.cc b/src/precmd.cc index 516b90dd..31249016 100644 --- a/src/precmd.cc +++ b/src/precmd.cc @@ -184,14 +184,12 @@ value_t args_command(call_scope_t& args) out << std::endl << std::endl; query_t query(args.value(), report.what_to_keep()); - if (! query) - throw_(std::runtime_error, - _("Invalid query predicate: %1") << join_args(args)); + if (query) { + call_scope_t sub_args(static_cast<scope_t&>(args)); + sub_args.push_back(string_value(query.text())); - call_scope_t sub_args(static_cast<scope_t&>(args)); - sub_args.push_back(string_value(query.text())); - - parse_command(sub_args); + parse_command(sub_args); + } if (query.tokens_remaining()) { out << std::endl << _("====== Display predicate ======") @@ -199,14 +197,12 @@ value_t args_command(call_scope_t& args) query.parse_again(); - if (! query) - throw_(std::runtime_error, - _("Invalid display predicate: %1") << join_args(args)); + if (query) { + call_scope_t disp_sub_args(static_cast<scope_t&>(args)); + disp_sub_args.push_back(string_value(query.text())); - call_scope_t disp_sub_args(static_cast<scope_t&>(args)); - disp_sub_args.push_back(string_value(query.text())); - - parse_command(disp_sub_args); + parse_command(disp_sub_args); + } } return NULL_VALUE; diff --git a/src/report.cc b/src/report.cc index 78ed05c0..ed3238bc 100644 --- a/src/report.cc +++ b/src/report.cc @@ -222,25 +222,21 @@ void report_t::normalize_options(const string& verb) void report_t::parse_query_args(const value_t& args, const string& whence) { query_t query(args, what_to_keep()); - if (! query) - throw_(std::runtime_error, - _("Invalid query predicate: %1") << query.text()); + if (query) { + HANDLER(limit_).on(whence, query.text()); - HANDLER(limit_).on(whence, query.text()); - - DEBUG("report.predicate", - "Predicate = " << HANDLER(limit_).str()); + DEBUG("report.predicate", + "Predicate = " << HANDLER(limit_).str()); + } if (query.tokens_remaining()) { query.parse_again(); - if (! query) - throw_(std::runtime_error, - _("Invalid display predicate: %1") << query.text()); + if (query) { + HANDLER(display_).on(whence, query.text()); - HANDLER(display_).on(whence, query.text()); - - DEBUG("report.predicate", - "Display predicate = " << HANDLER(display_).str()); + DEBUG("report.predicate", + "Display predicate = " << HANDLER(display_).str()); + } } } |