- The command "task 1 modify due: wait:2days" gave the following
output:
Warning: You have specified that the 'wait' date is after the
'due' date.
Now, we check if the due date is zero, in which case the due date is
being removed.
- The 'next' report has 'limit:page' in the filter, and when an additional arg
was specified, only the first was obeyed. This means that it could not be
effectively overriden.
Takes the "import" performance test from 5m5s on a test machine to 13s
total.
A huge part of the previously morbid performance were memory allocation
and release for very little benefit in the JSON parser. With this new
approach the copying is kept to a minimum. There is still room for
improvements.
String UDA defer the evaluation of the sort_compare method
to the '<' operator of the Variant class, since the logic for
comparing string UDAs (which can have custom sort orders) is
already implemented there.
However, since primary use case of Variant is the filter evaluation,
it handles trivial (empty) values in a manner which does not allow
for its direct usage as the comparison operator between sort UDAs.
When filtering, a trivial (empty) value should neither match
'uda < A' nor 'uda >= A'. However, when sorting tasks upon values of
this UDA, precisely one of the above expressions *must* be true.
This commit implements the UDA string sorting logic directly in
the sort_compare method.
- When 'limit:N' is encountered, it is removed from the command line, and
added as a config setting, equivalent to 'rc.limit:N'.
- This simplifieѕ subsequent command line parsing.
- bash_tap tests are executed in a temporary folder. Any data written
to the current directory will therefore be cleaned up without the
need for manually dealing with cleanup.
- $TASKDATA is set to this directory as well, so all Taskwarrior data
files are directly accessible.