During construction of a feedback string for a dependency change,
a list of IDs of the dependencies was used. However, if the tasks
being referred to are already deleted / completed, their respective
IDs are all 0s.
Use shortened UUIDs in such case.
- Make the Task object's interface more explicit by removing the
std::map inheritance.
- Using this more explicit interface, remove unneeded ctors in order to
allow the compiler to "Do The Right Thing"(tm).
This leads to a performance improvement of 12% in the "add"
performance test, and 7% for "import".
- Task::modify now considers the 'g' at the end of a substitution to be a
string of characters, which may contain 'g'. No other flags are currently
supported.
- 'priority.long' and 'priority.short' formats now map to 'priority', and
generate a warning.
- Man page updated.
- Converted priority urgency coefficients to UDA equivalents.
- Converted priority color rules to UDA color rules.
- Removed 'default.priority' support.
- Removed special sort handling for 'priority' field in Variant, added special
UDA sort handling.
- Removed ColPriority.{h,cpp} source files.
- Removed asorted newly-unused variables.
- The 'show' command now highlights unused priority settings.
- Removed unused localized priority-relateѕ strings.
- Added legacy mapping for columns and sort columns for 'priority.long' and
'priority.short' columns in report definitions.
- Removed priority color rules implementation.
- Removed obsolete tests for #860, #990, custom.priority_long.t.
- Updated various tests that set priority default, colors.
- Implemented an overloaded ::modify method that walks the parse tree instead
of iterating over an A3 list.
- ::modify takes a Task::modType argument, which specifieѕ how words are
handled (replace description, prepend to description, append to description,
add annotation), and this eliminates the need for multiple modify methods.
- Marked existing methods as obsolete.
- 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)