summaryrefslogtreecommitdiff
path: root/session.cc
diff options
context:
space:
mode:
Diffstat (limited to 'session.cc')
-rw-r--r--session.cc38
1 files changed, 28 insertions, 10 deletions
diff --git a/session.cc b/session.cc
index 27c63da6..140589dc 100644
--- a/session.cc
+++ b/session.cc
@@ -73,22 +73,17 @@ session_t::session_t()
: symbol_scope_t(),
register_format
- ("%((//entry)%{date} %-.20{payee}"
- "%((./xact)%32|%-22{abbrev(account, 22)} %12.67t %12.80T\n))"),
+ ("%D %-.20P %-.22A %12.67t %!12.80T\n%/"
+ "%32|%-.22A %12.67t %!12.80T\n"),
wide_register_format
("%D %-.35P %-.38A %22.108t %!22.132T\n%/"
"%48|%-.38A %22.108t %!22.132T\n"),
print_format
-#if 1
- ("%(/%(/%{date} %-.20{payee}\n%(: %-34{account} %12t\n)\n))"),
-#else
("\n%d %Y%C%P\n %-34W %12o%n\n%/ %-34W %12o%n\n"),
-#endif
balance_format
- ("%(/%(//%20t %{\" \" * rdepth}%{rname}\n))--------------------\n%20t\n"),
+ ("%20T %2_%-a\n"),
equity_format
-
- ("%((/)%{ftime(now, date_format)} %-.20{\"Opening Balance\"}\n%((.//account[value != 0]) %-34{fullname} %12{value}\n)\n)"),
+ ("\n%D %Y%C%P\n%/ %-34W %12t\n"),
plot_amount_format
("%D %(@S(@t))\n"),
plot_total_format
@@ -116,7 +111,9 @@ session_t::session_t()
abbrev_length(2),
ansi_codes(false),
- ansi_invert(false)
+ ansi_invert(false),
+
+ master(new account_t(NULL, ""))
{
TRACE_CTOR(session_t, "");
}
@@ -223,6 +220,27 @@ std::size_t session_t::read_data(journal_t& journal,
return entry_count;
}
+namespace {
+ account_t * find_account_re_(account_t * account, const mask_t& regexp)
+ {
+ if (regexp.match(account->fullname()))
+ return account;
+
+ for (accounts_map::iterator i = account->accounts.begin();
+ i != account->accounts.end();
+ i++)
+ if (account_t * a = find_account_re_((*i).second, regexp))
+ return a;
+
+ return NULL;
+ }
+}
+
+account_t * session_t::find_account_re(const string& regexp)
+{
+ return find_account_re_(master, mask_t(regexp));
+}
+
#if 0
value_t session_t::resolve(const string& name, expr::scope_t& locals)
{