- 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.
- 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.
- Converted the 'cal' command to TDB2.
- Reinstated command line handling for 'cal' command, but realized there
is a conflict with filters. Filtering disabled for 'cal' until a good
solution is found.
- Converted recur.cpp to use TDB2, which eliminates the file locking
problems that occur when both TDB and TDB2 are in use at the same time.
This will cause other issues until all commands are converted to TDB2.
- Converted CmdCustom to use TDB2, which means that for the first time,
2.0 is now optimizing data load based on filter characteristics. This
means that "task list" and "task next" etc are now *fast*.
- Improved diagnostics for TDB2, for debugging.
- 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.
- Implemented the import command, which only suports JSON. It is
the basis for all other import formats, which will be implemented
as external scripts.
- 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.
- Here's a patch to make Taskwarrior not display the prompt and not delete the
parent task if a recurring task is deleted when rc.confirmation is false.
Signed-off-by: Paul Beckingham <paul@beckingham.net>
- 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.
- Eliminated the . prefix for DOM references to the current task - it is
unnatural to state ".due < today".
- Prioritized parsing dates ahead of integers, which were masking all
dates.
- 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.
- Re-enabled the modify command.
- Re-implemented Arguments::inject_defaults to accomodate the idea
of the default command, the modify command without the modify
keyword, and the automatic info command.