summaryrefslogtreecommitdiff
path: root/src/filters.cc
diff options
context:
space:
mode:
authorJohn Wiegley <johnw@newartisans.com>2010-02-02 16:25:46 -0500
committerJohn Wiegley <johnw@newartisans.com>2010-02-02 16:25:46 -0500
commita56a1db66294c06c7b9d582f694538a0cb473abf (patch)
tree1ded2f13d72e31e5bbe34ca3ec17ea7298e29198 /src/filters.cc
parentb76aea7c0be2a36fb24c7c2bb3a8c0af80709609 (diff)
downloadfork-ledger-a56a1db66294c06c7b9d582f694538a0cb473abf.tar.gz
fork-ledger-a56a1db66294c06c7b9d582f694538a0cb473abf.tar.bz2
fork-ledger-a56a1db66294c06c7b9d582f694538a0cb473abf.zip
When creating temporary accounts, transfer flags
Diffstat (limited to 'src/filters.cc')
-rw-r--r--src/filters.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/filters.cc b/src/filters.cc
index 0084fac7..aa532ab6 100644
--- a/src/filters.cc
+++ b/src/filters.cc
@@ -793,12 +793,18 @@ void transfer_details::operator()(post_t& post)
break;
case SET_ACCOUNT: {
- std::list<string> account_names;
+ account_t * prev_account = temp.account;
temp.account->remove_post(&temp);
+
+ std::list<string> account_names;
split_string(substitute.to_string(), ':', account_names);
temp.account = create_temp_account_from_path(account_names, temps,
xact.journal->master);
temp.account->add_post(&temp);
+
+ temp.account->add_flags(prev_account->flags());
+ if (prev_account->has_xdata())
+ temp.account->xdata().add_flags(prev_account->xdata().flags());
break;
}