- Changed signature of recur functions, which needed a main.h change, which led
to removing '#include <Date.h>' from main.h, which necessitated adding the
sam include to various other source files. Temporarily.
- Added 'ISO8601d ISO8601d::operator+ (time_t)', because of differences from the
original Date object.
- Migrated the recur.cpp getDueState() function into Task::getDateState(),
which can assess any date attribute.
- Improved implementation to distinguish between:
- not due, or not due for rc.due days
- due after today
- due later today
- due earlier today
- due before today
This greater precision should address some outstanding issues.
- Many files were missing an explicit cmake.h include. Some were not including
it at all. Now it's used almost everywhere.
(cherry picked from commit 82ae86979c497e6d1d0c6b2b5a55aa379ec82c98)
- Fixed bug #1022, where dependencies were note released when a blocking task
was completed (thanks to Arkady Grudzinsky).
- The Task object now caches ::is_blocked and ::is_blocking Booleans that are
determined on pending.data load.
- Simplified and sped up color rule processing using cached values, reducing
the number of map lookups, and removed loop invariants when the rules are
not defined.
- Simplified urgency calculations given the cached values for blocked/blocking.
- On load, pending.data is scanned for accurate blocked/blocking status
determination.
- Obsoleted and removed complex single-task dependency calculations.
- Sped up 'nag' processing by using cached values..
- Modified the 'show' command to consider color.blocking to be valid.
- Added default config value for color.blocking, and included it in the
precedence list ahead of blocked, as it is more important.
- Updated taskrc.5 man page to include the new color.blocking rule, and its
place in the rule precedence.
- Added support for more type-specific checks of attribute values.
- Added support for more type-specific attribute rendering.
- Improved generalized methods for checking columns in a report.
- Added unit tests.
- Minor code cleanup.
- Added secret hidden feature for internal testing.
- Rewrote updateRecurrenceMask, which was hopelessly muddled after the
TDB -> TDB2 change.
- Modified associated code.
- Improved signal to noise ratio in unit tests.
- When handleRecurrence was cloning the parent task, it failed to set
a new ID, so all the child tasks were given the ID of the parent.
- Cleaned up bug.annual.t.
- Fixed validation bug whereby recurring child tasks inherited the
parent status ("recurring") instead of the expected "pending".
- Modified 'add' command to code duplicated in Task::validate.
- Cleaned up associated bug.period.t unit test.