- Implemented the import-yaml.pl external script.
- Added unit tests.
- Fixed problem where the pending tasks were not loaded prior to uuid
verification.
- Added safety valve processing. Whenever a write-command omits a
filter, the command will affect every task. This is dangerous.
If rc.confirmation is disabled, the command is terminated.
- 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.
- Added unit tests for the 'import' command, which uses JSON as the
native format. This is the new default import/export format. All
other import/export formats are (to be) implemented as transforms
to JSON.
- Corrected maintenance of the _lines vector during TDB2::add_line.
- Implemented TDB2::modify_task undo maintenance.
- Added unit tests for TDB2. Which fail.
- Added unit tests for bug 819, on behalf of Matt Kraai.
- Created a new, single test for cleanup that replaces 6. It's makes
for shorter unit tests, and adds less test count inflation. Over
time, all tests should be modified in a similar way. This will
probably cut the total number of unit tests in half, but that's not
the important metric.
- Fixed some tests that used old message text.
- Fixed tests that relied on 'log'ed tasks still being written into
pending.data.
- Removed obsolete auto-info tests.
- Removed support for ' 1 wk', namely spaces before and after the ordinal.
This removes (some) ambiguity in more complex command lines.
- Fixed unit tests accordingly.
- Added unit tests for the '<=' and '>=' operators. All tests pass,
which makes a nice treat.
- Added more tests to '<' and '>' operators, so that all three data
types are covered.
- Allowed durations to be specified numerically as seconds, in string form.
This flexibility allows the removal of special-case handling that stores
recurrence periods in raw form ('monthly'), reducing code size. As a
consequence this means that recurrence may now be rendered according to
Duration::formatCompact, which is desirable.
- Added supporting unit tests.