restore sorting of register reports

This commit is contained in:
John Wiegley 2004-07-31 02:36:20 -04:00
parent c06fad4291
commit 3273be3dcc
2 changed files with 12 additions and 10 deletions

View file

@ -129,6 +129,7 @@ item_t * walk_entries(entries_list::const_iterator begin,
subitem->payee = item->payee; subitem->payee = item->payee;
subitem->account = (*j)->account; subitem->account = (*j)->account;
subitem->value = *(*j); subitem->value = *(*j);
item->value += subitem->value;
item->subitems.push_back(subitem); item->subitems.push_back(subitem);
} }
@ -163,19 +164,20 @@ item_t * walk_entries(entries_list::const_iterator begin,
struct cmp_items { struct cmp_items {
const node_t * sort_order; const node_t * sort_order;
cmp_items(const node_t * _sort_order) : sort_order(_sort_order) {} cmp_items(const node_t * _sort_order) : sort_order(_sort_order) {
assert(sort_order);
}
bool operator()(const item_t * left, const item_t * right) const { bool operator()(const item_t * left, const item_t * right) const {
assert(left); assert(left);
assert(right); assert(right);
assert(sort_order);
return sort_order->compute(left) < sort_order->compute(right); return sort_order->compute(left) < sort_order->compute(right);
} }
}; };
void item_t::sort(const node_t * sort_order) void item_t::sort(const node_t * sort_order)
{ {
std::sort(subitems.begin(), subitems.end(), cmp_items(sort_order)); std::stable_sort(subitems.begin(), subitems.end(), cmp_items(sort_order));
} }
} // namespace ledger } // namespace ledger