Changed truncate_entries so that --head and --tail can be used at the

same time.
This commit is contained in:
John Wiegley 2005-02-15 00:45:30 +00:00
parent 547be3056d
commit d0997fa821
3 changed files with 13 additions and 13 deletions

View file

@ -78,9 +78,7 @@ chain_xact_handlers(const std::string& command,
if (config.head_entries || config.tail_entries)
ptrs.push_back(formatter =
new truncate_entries(formatter,
config.head_entries ?
config.head_entries :
config.tail_entries,
config.head_entries,
config.tail_entries));
// filter_transactions will only pass through transactions

14
walk.cc
View file

@ -85,18 +85,20 @@ void truncate_entries::flush()
}
bool print = false;
if (tailwise) {
if (count > 0 && l - i <= count)
print = true;
else if (count < 0 && l - i > - count)
print = true;
} else {
if (head_count) {
if (count > 0 && i < count)
print = true;
else if (count < 0 && i >= - count)
print = true;
}
if (! print && tail_count) {
if (count > 0 && l - i <= count)
print = true;
else if (count < 0 && l - i > - count)
print = true;
}
if (print)
item_handler<transaction_t>::operator()(**x);
}

8
walk.h
View file

@ -147,16 +147,16 @@ class ignore_transactions : public item_handler<transaction_t>
class truncate_entries : public item_handler<transaction_t>
{
int count;
bool tailwise;
int head_count;
int tail_count;
transactions_list xacts;
public:
truncate_entries(item_handler<transaction_t> * handler,
int _count, bool _tailwise = false)
int _head_count, int _tail_count)
: item_handler<transaction_t>(handler),
count(_count), tailwise(_tailwise) {}
head_count(_head_count), tail_count(_tail_count) {}
virtual void flush();
virtual void operator()(transaction_t& xact) {