summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Wiegley <johnw@newartisans.com>2012-02-29 14:43:16 -0600
committerJohn Wiegley <johnw@newartisans.com>2012-02-29 14:43:16 -0600
commit520ece21644c4f3a97f722e351fce382c1661183 (patch)
tree1247ef37d801e3fe29254924640008c4dbf4d587
parent5517871144e61ec1c7bad8f4dd96e0672e63f9d1 (diff)
downloadfork-ledger-520ece21644c4f3a97f722e351fce382c1661183.tar.gz
fork-ledger-520ece21644c4f3a97f722e351fce382c1661183.tar.bz2
fork-ledger-520ece21644c4f3a97f722e351fce382c1661183.zip
Fixed problem with the Python build
-rw-r--r--src/item.cc7
-rw-r--r--src/item.h13
-rw-r--r--src/py_post.cc3
-rw-r--r--src/py_xact.cc5
4 files changed, 21 insertions, 7 deletions
diff --git a/src/item.cc b/src/item.cc
index a1b9b6bb..d123ee5a 100644
--- a/src/item.cc
+++ b/src/item.cc
@@ -338,13 +338,10 @@ namespace {
}
value_t get_seq(item_t& item) {
- return item.pos ? long(item.pos->sequence) : 0L;
+ return long(item.seq());
}
value_t get_id(item_t& item) {
- if (optional<value_t> ref = item.get_tag(_("UUID")))
- return *ref;
- else
- return item.pos ? long(item.pos->sequence) : 0L;
+ return string_value(item.id());
}
value_t get_addr(item_t& item) {
diff --git a/src/item.h b/src/item.h
index 62575d8b..af3992c0 100644
--- a/src/item.h
+++ b/src/item.h
@@ -151,6 +151,19 @@ public:
return ! (*this == xact);
}
+ string id() const {
+ if (optional<value_t> ref = get_tag(_("UUID"))) {
+ return ref->to_string();
+ } else {
+ std::ostringstream buf;
+ buf << seq();
+ return buf.str();
+ }
+ }
+ std::size_t seq() const {
+ return pos ? pos->sequence : 0L;
+ }
+
virtual bool has_tag(const string& tag,
bool inherit = true) const;
virtual bool has_tag(const mask_t& tag_mask,
diff --git a/src/py_post.cc b/src/py_post.cc
index 1c187ff1..cace419f 100644
--- a/src/py_post.cc
+++ b/src/py_post.cc
@@ -132,6 +132,9 @@ void export_post()
class_< post_t, bases<item_t> > ("Posting")
//.def(init<account_t *>())
+ .def("id", &post_t::id)
+ .def("seq", &post_t::seq)
+
.add_property("xact",
make_getter(&post_t::xact,
return_internal_reference<>()),
diff --git a/src/py_xact.cc b/src/py_xact.cc
index 604d8d59..af1fcdd5 100644
--- a/src/py_xact.cc
+++ b/src/py_xact.cc
@@ -107,6 +107,9 @@ void export_xact()
;
class_< xact_t, bases<xact_base_t> > ("Transaction")
+ .def("id", &xact_t::id)
+ .def("seq", &xact_t::seq)
+
.add_property("code",
make_getter(&xact_t::code),
make_setter(&xact_t::code))
@@ -117,8 +120,6 @@ void export_xact()
.def("add_post", &xact_t::add_post, with_custodian_and_ward<1, 2>())
.def("magnitude", &xact_t::magnitude)
- .def("idstring", &xact_t::idstring)
- .def("id", &xact_t::id)
.def("lookup", &xact_t::lookup)