summaryrefslogtreecommitdiff
path: root/journal.cc
diff options
context:
space:
mode:
authorJohn Wiegley <johnw@newartisans.com>2004-09-23 20:10:33 -0400
committerJohn Wiegley <johnw@newartisans.com>2004-09-23 20:10:33 -0400
commit02580c2efbad9b364ab0dfa535c5fe0577cb818d (patch)
treede3d7ee548e2fbc2c7ccfa7dbefc3b646e45977c /journal.cc
parentd0ba09f1e0f26fd3f449ca639abb71083ead9243 (diff)
downloadfork-ledger-02580c2efbad9b364ab0dfa535c5fe0577cb818d.tar.gz
fork-ledger-02580c2efbad9b364ab0dfa535c5fe0577cb818d.tar.bz2
fork-ledger-02580c2efbad9b364ab0dfa535c5fe0577cb818d.zip
more "entry" fixes
Diffstat (limited to 'journal.cc')
-rw-r--r--journal.cc10
1 files changed, 8 insertions, 2 deletions
diff --git a/journal.cc b/journal.cc
index 174bd91a..fee080e6 100644
--- a/journal.cc
+++ b/journal.cc
@@ -380,9 +380,13 @@ entry_t * journal_t::derive_entry(strings_list::iterator i,
xact = new transaction_t(m_xact->account, - first->amount);
added->add_transaction(xact);
- if (i != end)
- if (account_t * acct = find_account(*i))
+ if (i != end) {
+ account_t * acct = find_account_re(*i);
+ if (! acct)
+ acct = find_account(*i);
+ if (acct)
added->transactions.back()->account = acct;
+ }
} else {
while (i != end) {
std::string& re_pat(*i++);
@@ -668,6 +672,8 @@ void export_journal()
.def("remove_account", &journal_t::remove_account)
.def("find_account", py_find_account_1, return_internal_reference<1>())
.def("find_account", py_find_account_2, return_internal_reference<1>())
+ .def("find_account_re", &journal_t::find_account_re,
+ return_internal_reference<1>())
.def("add_entry", &journal_t::add_entry)
.def("remove_entry", &journal_t::remove_entry)