- Fixed bug whereby the start, stop and delete commands were not
complaining when filter arguments were specified, even though they
were ignored. Thanks to Charles T. Yun.
- Fixed bug that prevented the chaining of two attributes with
different modifiers to effect a date range, such as:
task ls due.after:8/1/2009 due.before:8/31/2009
Thanks to John Florian.
- Now supports "rc:complete.all.projects" to show all historical
project names.
- Now supports "rc:complete.all.tags" to show all historical tags names.
- Fixed bug in modify and append that was erroneously reporting "No
changes" when a bulk update occurred.
- Added bug.bulk.t unit tests to cover this example.
- Fixed bug that generated an export file that was incompatible with
task 1.7.1 import. Now there is a smooth migration path back to
1.7.1 in case 1.8.0 proves unacceptable.
- Fixed bug that caused code to use a combination of srandom and rand,
or srand and random. Should be srandom/random, srand/rand, not a
mix.
- Fixed bug that failed to set uuid in handleAdd, such that the uuid
already assigned in context.task was used, which was generated before
srand/srandom was is called.
- Implemented confirmation on big changes. That means if the description is
changed, or more than 2 tasks are modified in a single command.
- Implemented taskDiff to detect differences between two tasks.
- Implemented taskDifferences to describe differences between two tasks.
- .taskrc debug= now defaults to 'off', which will reduce clutter
and won't surprise beta testers.
- interactive.cpp did not compile when ncurses was not detected by
autoconf. That code branch obviously never got executed.
- The interactive shell now instructs the user to type 'quit' to
leave the shell.
- "debug" now considered a valid configuration variable.
- "alias.*" now considered a valid configuration variable.
- Moved some messages over to use Context::debug.
- When a task is added, the new ID is echoed back, for convenience.
This requires a scan of the pending file, so there is a performance
hit, and the feature is controlled by the FEATURE_NEW_ID define.
- Fixed bug whereby handleRecurrence was being called after the tasks
were loaded and filtered, and thus handleRecurrence operated on a
filtered set, and failed. The fix is to move the call to before the
TDB::load call, and to add another TDB::loadPending call inside
handleRecurrence. This means TDB::load needs to be reentrant without
re-reading the file, and can therefore be called twice, with the
likelihood of there being a different filter for each call. This in
turn led to the problem whereby handleRecurrence would generate the
synthetic tasks, which then sat uncommitted in TDB::mNew. The fix
for this is that every call to TDB::loadPending gets the contents of
TDB::mNew appended (with correct IDs). This bug is what you might
call a good one.
- Fixed bug where "foo:bar" was not recognized as an attribute, and
generated an error rather than demoting is to part of the description.
- Fixed bug where en-passant deltas were applied only to the first task
in a sequence.
- Fixed various unit test.
- Added header, footer and message sinks.
- Added individual colorization of headers, footers and messages.
- Added new configuration variables to Config.cpp, taskrc.5.
- Added colorization functions to rules.cpp