summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/predicate.h3
-rw-r--r--src/query.h12
-rw-r--r--tools/Makefile.am1
3 files changed, 14 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);
}
diff --git a/tools/Makefile.am b/tools/Makefile.am
index c0404606..8c042a94 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -43,6 +43,7 @@ libledger_expr_la_SOURCES = \
src/option.cc \
src/format.cc \
src/query.cc \
+ src/predicate.cc \
src/scope.cc \
src/interactive.cc \
src/expr.cc \