summaryrefslogtreecommitdiff
path: root/walk.h
diff options
context:
space:
mode:
Diffstat (limited to 'walk.h')
-rw-r--r--walk.h21
1 files changed, 7 insertions, 14 deletions
diff --git a/walk.h b/walk.h
index 160dcc6a..cff0209a 100644
--- a/walk.h
+++ b/walk.h
@@ -66,20 +66,13 @@ void handle_transaction(transaction_t * xact,
const Function& functor,
unsigned int flags)
{
- if ((flags & MATCHING_TRANSACTIONS) &&
- ! (xact->flags & TRANSACTION_HANDLED)) {
- xact->flags |= TRANSACTION_HANDLED;
- functor(xact);
- }
-
- if (flags & OTHER_TRANSACTIONS)
- for (transactions_list::iterator i = xact->entry->transactions.begin();
- i != xact->entry->transactions.end();
- i++) {
- if (*i == xact || ((*i)->flags & (TRANSACTION_AUTO |
- TRANSACTION_HANDLED)))
- continue;
-
+ for (transactions_list::iterator i = xact->entry->transactions.begin();
+ i != xact->entry->transactions.end();
+ i++)
+ if (! ((*i)->flags & (TRANSACTION_AUTO | TRANSACTION_HANDLED)) &&
+ (*i == xact ?
+ (flags & MATCHING_TRANSACTIONS) :
+ (flags & OTHER_TRANSACTIONS))) {
(*i)->flags |= TRANSACTION_HANDLED;
functor(*i);
}