summaryrefslogtreecommitdiff
path: root/src/account.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/account.cc')
-rw-r--r--src/account.cc40
1 files changed, 22 insertions, 18 deletions
diff --git a/src/account.cc b/src/account.cc
index 109089fc..b6681c54 100644
--- a/src/account.cc
+++ b/src/account.cc
@@ -125,6 +125,26 @@ string account_t::fullname() const
}
}
+string account_t::partial_name() const
+{
+ string name;
+
+ for (const account_t * acct = this;
+ acct && acct->parent;
+ acct = acct->parent) {
+ if (acct->has_xdata() &&
+ acct->xdata().has_flags(ACCOUNT_EXT_DISPLAYED))
+ break;
+
+ if (name.empty())
+ name = acct->name;
+ else
+ name = acct->name + ":" + name;
+ }
+
+ return name;
+}
+
std::ostream& operator<<(std::ostream& out, const account_t& account)
{
out << account.fullname();
@@ -132,24 +152,8 @@ std::ostream& operator<<(std::ostream& out, const account_t& account)
}
namespace {
- value_t get_partial_name(account_t& account)
- {
- string name;
-
- for (account_t * acct = &account;
- acct && acct->parent;
- acct = acct->parent) {
- if (acct->has_xdata() &&
- acct->xdata().has_flags(ACCOUNT_EXT_DISPLAYED))
- break;
-
- if (name.empty())
- name = acct->name;
- else
- name = acct->name + ":" + name;
- }
-
- return string_value(name);
+ value_t get_partial_name(account_t& account) {
+ return string_value(account.partial_name());
}
value_t get_total(account_t& account) {