summaryrefslogtreecommitdiff
path: root/src/account.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/account.cc')
-rw-r--r--src/account.cc19
1 files changed, 7 insertions, 12 deletions
diff --git a/src/account.cc b/src/account.cc
index 7dcd5faa..c3fc80f1 100644
--- a/src/account.cc
+++ b/src/account.cc
@@ -692,12 +692,10 @@ void account_t::xdata_t::details_t::update(post_t& post,
}
}
-void put_account(property_tree::ptree& pt, const account_t& acct,
+void put_account(property_tree::ptree& st, const account_t& acct,
function<bool(const account_t&)> pred)
{
if (pred(acct)) {
- property_tree::ptree& st(pt.put("account", ""));
-
std::ostringstream buf;
buf.width(sizeof(unsigned long) * 2);
buf.fill('0');
@@ -709,18 +707,15 @@ void put_account(property_tree::ptree& pt, const account_t& acct,
st.put("fullname", acct.fullname());
value_t total = acct.amount();
- if (! total.is_null()) {
- property_tree::ptree& t(st.put("account-amount", ""));
- put_value(t, total);
- }
+ if (! total.is_null())
+ put_value(st.put("account-amount", ""), total);
+
total = acct.total();
- if (! total.is_null()) {
- property_tree::ptree& t(st.put("account-total", ""));
- put_value(t, total);
- }
+ if (! total.is_null())
+ put_value(st.put("account-total", ""), total);
foreach (const accounts_map::value_type& pair, acct.accounts)
- put_account(st, *pair.second, pred);
+ put_account(st.add("account", ""), *pair.second, pred);
}
}