- 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.
- The A3::Arg object is very similar to the E9::Term object, so the two are
being merged. First step is to separate A3::Arg into it's own space, then
add a _type member.
- Added more valid stop characters as terminators for various arg types.
- Removed redundant E9 special handling for dates, which is already built in
to the Date object.
- Addressed bug #804 by allowing rc.hyphenate to control whether hyphens are
inserted when long lines are broken. This may help prevent xterm from
mis-parsing URLs in task annotations, when wrapped (thanks to Yann Davin).
- Added unit tests.
- Duration were parsed as <int><unit> in A3, whereas <number><unit> is
correct.
- Added Nibbler::str method for internal access.
- Nibbler::save, ::restore now return positions. Useful for extracting
substrings.
- Modified countdown.t to use the (now) correct units for durations.
- When a date attribute is updated, the expression may have evaluated to
a duration, which at this point is simply a number. If it is below a
certain threshold (5y) then it is considered a duration and added to
'now', otherwise it is considered a date.
- Change the was performance measurements are taken. This in preparation
to automated daily perf charts, leading to efforts to speed up certain
operations.
- If a file (pending.data) is open and locked, trying to open it again
caused an error, whereas is now does nothing and reports success.
- Corrected timing info in Command::filter.