summaryrefslogtreecommitdiff
path: root/src/account.cc
diff options
context:
space:
mode:
authorJohn Wiegley <johnw@newartisans.com>2012-05-15 00:22:00 -0600
committerJohn Wiegley <johnw@newartisans.com>2012-05-15 00:22:00 -0600
commit72dd4d85bdd1f6da79dee405366311e6da96776b (patch)
treee3e0a0d6bb7bec06505965da4e845e12bbc63971 /src/account.cc
parent64a9b42381c26baf24e58b40f50f0b253e551811 (diff)
parent96172669053bbba7263a370f109f70615049a0c6 (diff)
downloadledger-72dd4d85bdd1f6da79dee405366311e6da96776b.tar.gz
ledger-72dd4d85bdd1f6da79dee405366311e6da96776b.tar.bz2
ledger-72dd4d85bdd1f6da79dee405366311e6da96776b.zip
Merge branch 'release/v3.0.0-20120510'
Diffstat (limited to 'src/account.cc')
-rw-r--r--src/account.cc10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/account.cc b/src/account.cc
index 206e2350..1ea13330 100644
--- a/src/account.cc
+++ b/src/account.cc
@@ -309,6 +309,10 @@ namespace {
return (! account.self_details().latest_checkout.is_not_a_date_time() ?
value_t(account.self_details().latest_checkout) : NULL_VALUE);
}
+ value_t get_latest_checkout_cleared(account_t& account)
+ {
+ return account.self_details().latest_checkout_cleared;
+ }
template <value_t (*Func)(account_t&)>
value_t get_wrapper(call_scope_t& args) {
@@ -405,6 +409,8 @@ expr_t::ptr_op_t account_t::lookup(const symbol_t::kind_t kind,
return WRAP_FUNCTOR(get_wrapper<&get_latest>);
else if (fn_name == "latest_checkout")
return WRAP_FUNCTOR(get_wrapper<&get_latest_checkout>);
+ else if (fn_name == "latest_checkout_cleared")
+ return WRAP_FUNCTOR(get_wrapper<&get_latest_checkout_cleared>);
break;
case 'n':
@@ -662,8 +668,10 @@ void account_t::xdata_t::details_t::update(post_t& post,
earliest_checkin = *post.checkin;
if (post.checkout && (latest_checkout.is_not_a_date_time() ||
- *post.checkout > latest_checkout))
+ *post.checkout > latest_checkout)) {
latest_checkout = *post.checkout;
+ latest_checkout_cleared = post.state() == item_t::CLEARED;
+ }
if (post.state() == item_t::CLEARED) {
posts_cleared_count++;