summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Wiegley <johnw@newartisans.com>2004-08-09 17:49:06 -0400
committerJohn Wiegley <johnw@newartisans.com>2004-08-09 17:49:06 -0400
commit799e97e420133eb25a321f30a61f857831a93dac (patch)
tree1814819ec53b198e8785f2242522786fd314c605
parent6e6246c927ab0d39dfd65f20e51c3f1b036c8ea9 (diff)
downloadfork-ledger-799e97e420133eb25a321f30a61f857831a93dac.tar.gz
fork-ledger-799e97e420133eb25a321f30a61f857831a93dac.tar.bz2
fork-ledger-799e97e420133eb25a321f30a61f857831a93dac.zip
more bug fixes
-rw-r--r--format.cc22
-rw-r--r--walk.h3
2 files changed, 17 insertions, 8 deletions
diff --git a/format.cc b/format.cc
index a48fa45f..cd6fa374 100644
--- a/format.cc
+++ b/format.cc
@@ -191,12 +191,16 @@ void format_t::format_elements(std::ostream& out,
out << "";
break;
- case element_t::CODE:
- if (details.entry && ! details.entry->code.empty())
- out << "(" << details.entry->code << ") ";
- else
- out << "";
+ case element_t::CODE: {
+ std::string temp;
+ if (details.entry && ! details.entry->code.empty()) {
+ temp += "(";
+ temp += details.entry->code;
+ temp += ") ";
+ }
+ out << temp;
break;
+ }
case element_t::PAYEE:
if (details.entry)
@@ -211,15 +215,19 @@ void format_t::format_elements(std::ostream& out,
std::string name = (elem->type == element_t::ACCOUNT_FULLNAME ?
details.account->fullname() :
partial_account_name(details.account));
- if (elem->max_width > 0)
- name = truncated(name, elem->max_width);
if (details.xact && details.xact->flags & TRANSACTION_VIRTUAL) {
+ if (elem->max_width > 2)
+ name = truncated(name, elem->max_width - 2);
+
if (details.xact->flags & TRANSACTION_BALANCE)
name = "[" + name + "]";
else
name = "(" + name + ")";
}
+ else if (elem->max_width > 0)
+ name = truncated(name, elem->max_width);
+
out << name;
} else {
out << " ";
diff --git a/walk.h b/walk.h
index e01b5d97..7ad8264c 100644
--- a/walk.h
+++ b/walk.h
@@ -69,7 +69,8 @@ void handle_transaction(transaction_t * xact,
for (transactions_list::iterator i = xact->entry->transactions.begin();
i != xact->entry->transactions.end();
i++)
- if (! ((*i)->flags & TRANSACTION_AUTO) &&
+ if ((! (flags & OTHER_TRANSACTIONS) ||
+ ! ((*i)->flags & TRANSACTION_AUTO)) &&
! ((*i)->dflags & TRANSACTION_HANDLED) &&
(*i == xact ?
(flags & MATCHING_TRANSACTIONS) : (flags & OTHER_TRANSACTIONS))) {