- Rescued the ::encode and ::decode funtions and put them in util.cpp.
This is because 2.0 will still need to perform the same encode/decode
operations without Att.cpp around.
- 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.
- Full implementation of TDB2::add, which includes pending/completed, undo
and backlog.
- Removed obsolete TF2::commitUndo, which is no longer necessary.
- Added File::truncate method, to allow a TDB2 shortcut.
- Added feature #682, which allows the configuration variable 'defaultheight'
to override the assumed height of 24 lines when 'detection' is not enabled
(thanks to Steve Rader).
- 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.
- Added a diagnostic dump of the TDB2 state in debug mode.
- Added a call to TDB2::dump at the start of TDB2::commit.
- Removed unnecessary calls to TDB2::dump.
- 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.
- Some attribute values (ie wait:tomorrow) when parsed, need to take
the data type of the attribute (date) and use that as an implied type
of the value (date literal).
- Arg renders type-less and category-less values as "", instead of "none".
Cleaner output.
- 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.
- Improved some task validation errors by including data.
- Improved the phrasing of some error to be less pompous.
- Marked validation errors that need to be downgraded to warnings.
- Arg now has a _value member that reflects the value in play, rather
than the input _raw value. Only _value is used in eval.
- DOM expansion capabilities are now controlled by rc.dom.
- Arguments are now categorized as either "literal" or a specific
category, with accompanying type. Type is inferred for literals,
and referenced for attributes.