diff options
author | John Wiegley <johnw@newartisans.com> | 2009-11-10 02:43:52 -0500 |
---|---|---|
committer | John Wiegley <johnw@newartisans.com> | 2009-11-10 02:43:52 -0500 |
commit | a779751fc77a3e8703093737618d9778dd95e0ea (patch) | |
tree | 44c17ce678907b62adc424e6295ed79abb85f09f /src | |
parent | 294bf5a83d1687638f840e776abb16ef009fb4ef (diff) | |
download | fork-ledger-a779751fc77a3e8703093737618d9778dd95e0ea.tar.gz fork-ledger-a779751fc77a3e8703093737618d9778dd95e0ea.tar.bz2 fork-ledger-a779751fc77a3e8703093737618d9778dd95e0ea.zip |
query_t objects are now convertible to predicate_t
Diffstat (limited to 'src')
-rw-r--r-- | src/predicate.h | 3 | ||||
-rw-r--r-- | src/query.h | 12 |
2 files changed, 13 insertions, 2 deletions
diff --git a/src/predicate.h b/src/predicate.h index 17a2d36a..943b5a12 100644 --- a/src/predicate.h +++ b/src/predicate.h @@ -48,6 +48,8 @@ namespace ledger { +class query_t; + class predicate_t : public expr_t { public: @@ -61,6 +63,7 @@ public: : expr_t(other), what_to_keep(other.what_to_keep) { TRACE_CTOR(predicate_t, "copy"); } + predicate_t(const query_t& other); predicate_t(const string& str, const keep_details_t& _what_to_keep, const parse_flags_t& flags = PARSE_DEFAULT) diff --git a/src/query.h b/src/query.h index e64588ad..e3545396 100644 --- a/src/query.h +++ b/src/query.h @@ -254,11 +254,19 @@ public: : predicate_t(other) { TRACE_CTOR(query_t, "copy"); } - - query_t(const value_t& args, + query_t(const string& arg, const keep_details_t& _what_to_keep = keep_details_t()) : predicate_t(_what_to_keep) { TRACE_CTOR(query_t, "string, keep_details_t"); + if (! arg.empty()) { + value_t temp(string_value(arg)); + parse_args(temp.to_sequence()); + } + } + query_t(const value_t& args, + const keep_details_t& _what_to_keep = keep_details_t()) + : predicate_t(_what_to_keep) { + TRACE_CTOR(query_t, "value_t, keep_details_t"); if (! args.empty()) parse_args(args); } |