- Fixed bug #860, which prevented lower-case priority values from being
accepted (thanks to Michelle Crane).
- Added unit tests.
- Also included ChangeLog updates from other fixes that were misseed.
- Fixed bug in Task::addDependency where a 'dup dep' error string was not
properly composed, which cause the error message to be shown as 'k'.
- Relocated expression evaluation on modification to only be processed for
date attributes. This impacts DOM, but fixes more than it breaks.
- Corrected unit test that was expecting an old-style error message.
- Added protection against array overrun in next_mod_group. Again.
- 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.
- Removed the newly obsoleted Command::apply_defaults, which is now
merged into Task::validate, and therefore applied to all modifications
and new tasks.
- 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.
- Task is no longer a map of string to Att. Att is itself a name/
value pair, so the name was redundant. Task is now a map of string
to string. This brings the obsoletion of Att much closer.
- Added feature #811, which makes the 'execute' command optional, and
controlled by '#define HAVE_EXECUTE 1' in cmake.h. This allows a build
that does not have the potential security hole, in the event that taskwarrior
is run at elevated privilege, or run in the context of a web server.
- A3 now tracks whether a command is read-only, and builds filters accordingly.
- Implemented extract_filter, extract_modfications and extract_words stubs.
- Removed all E9 implementation details - this is going to be written from
scratch.
- Commented out troublesome "distance_from_command" code.
- Commented out DOM diagnostics, for now.
- Commented out TDB2 diagnostics, for now.
- Category "seq" arguments are now assigned type "exp".
- All type "exp" arguments are now tokenized.
- Broke out expression handling into two distinct flavors: filter
and expression. Filters need lots of preparation and mapping,
which includes implicit 'AND' operators, expansion of syntactic
sugar like /pattern/ etc and evaluate to a Boolean. Expressions
are simpler wiht less preparation, and evaluate to a Variant.
- Added feature #800, adding a new command 'columns' that lists all the columns
available for custom reports, and includes their formatting options (thanks
to T. Charles Yun).
- Implemented Command::filter_shortcut to detect when a filter begins
with "status:pending" and skip the loading/parsing of completed.data.
- Removed obsolete att.t.cpp tests.
- Removed diagnostics from TDB2::TDB2 that were causing a segfault.
I suppose there is no std::cout available during global ctors?
- Implemented CmdAdd.cpp and CmdLog.cpp using TDB2.
- Implemented simple append writes in TDB2.
- Modified CmdImport to accept and parse JSON.
- Added more const-ness in DOM, Expression and Task, to allow TDB2::get_tasks
to return a const vector ref, which is a Very Good Thing.
- Corrected usage for the export command.
- Implemented Task::urgency as a call to Task::urgency_c, which is a const
overload to allow urgency calculations (without caching) for const Task
objects.
- Removed obolete code from TDB.
- Added lots of diagnostic output for TDB2 - it's annoying, but will be
gone soon.
- Added mention in CmdHelp of the new <filter> and <modifications>
syntax elements. Needs more.
- Added Command::filter overload which uses TDB2. Not in use yet.