- new-uuid is *not* set by default
- new-uuid overrides new-id when set
The reasoning is that new-uuid is mostly used by code (eg: Python's
taskw module), whereas new-id is mostly used by humans.
By making new-uuid not set by default, calling code can set it to
receive UUIDs (preserving 2.5.x behaviour), but humans can continue to
use integer task IDs.
- Many files were missing an explicit cmake.h include. Some were not including
it at all. Now it's used almost everywhere.
(cherry picked from commit 82ae86979c497e6d1d0c6b2b5a55aa379ec82c98)
- Fixed validation bug whereby recurring child tasks inherited the
parent status ("recurring") instead of the expected "pending".
- Modified 'add' command to code duplicated in Task::validate.
- Cleaned up associated bug.period.t unit test.
- 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.
- 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.
- 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.
- Added regex support to substirutions.
- Fixed bug that prevented 1.9.4 from shipping with regexes. If the
description is "aXXaaXXa", and the substitution is /XX/.../ then the
first substitutions changes the length of the string to "a...aaXXa"
and therefore invalidates the index for the second match, and makes
this change: "a...a...Xa". The fix is to keep a running 'skew' count
of the difference in 'from' and 'to' length, to adjust the match
indexes.
- Moved the helper deltaSubstitutions function into the Task object,
which makes more sense.
- Cleaned up output composition for CmdAdd.
- Eliminated #ifdef FEATURE_REGEX. They are here to stay.