Fixed nasty problem related to interval reporting
This commit is contained in:
parent
6d04f60573
commit
fc62402c60
3 changed files with 8 additions and 4 deletions
|
|
@ -924,7 +924,7 @@ void interval_posts::operator()(post_t& post)
|
||||||
report_subtotal(last_interval);
|
report_subtotal(last_interval);
|
||||||
|
|
||||||
if (generate_empty_posts) {
|
if (generate_empty_posts) {
|
||||||
for (++last_interval; interval != last_interval; ++last_interval) {
|
for (++last_interval; last_interval < interval; ++last_interval) {
|
||||||
// Generate a null posting, so the intervening periods can be
|
// Generate a null posting, so the intervening periods can be
|
||||||
// seen when -E is used, or if the calculated amount ends up being
|
// seen when -E is used, or if the calculated amount ends up being
|
||||||
// non-zero
|
// non-zero
|
||||||
|
|
@ -940,7 +940,7 @@ void interval_posts::operator()(post_t& post)
|
||||||
|
|
||||||
report_subtotal(last_interval);
|
report_subtotal(last_interval);
|
||||||
}
|
}
|
||||||
assert(interval == last_interval);
|
assert(last_interval <= interval);
|
||||||
} else {
|
} else {
|
||||||
last_interval = interval;
|
last_interval = interval;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -732,8 +732,8 @@ public:
|
||||||
|
|
||||||
virtual void flush() {
|
virtual void flush() {
|
||||||
if (last_post && interval.duration) {
|
if (last_post && interval.duration) {
|
||||||
if (interval.is_valid())
|
if (last_interval && interval != last_interval)
|
||||||
report_subtotal(interval);
|
report_subtotal(last_interval);
|
||||||
subtotal_posts::flush();
|
subtotal_posts::flush();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -553,6 +553,10 @@ public:
|
||||||
return (start == other.start &&
|
return (start == other.start &&
|
||||||
(! start || *start == *other.start));
|
(! start || *start == *other.start));
|
||||||
}
|
}
|
||||||
|
bool operator<(const date_interval_t& other) const {
|
||||||
|
return (start == other.start &&
|
||||||
|
(! start || *start < *other.start));
|
||||||
|
}
|
||||||
|
|
||||||
operator bool() const {
|
operator bool() const {
|
||||||
return is_valid();
|
return is_valid();
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue