- Support 'allow.empty.filter', defaulting to 'yes', but if 'no' disallows the
combination of a write command and an empty filter. Ordinarily this is just
a warning that requires confirmation (thanks to Lee Lieske).
- Standardized DOM interface to return success/failure, with the possibility
of blank values. This matches the Eval::source callback interface‥
- Added more unit tests.
- When a filter resolves an identifier through a DOM reference, it records
the source. In other words, when 'priority' is resolved to 'H', the source
reference ('priority') is stored in the variant. This is because different
data attributes behave differently when compared.
- Full transition to the new filtering mechanism, using the new expression
evaluator. It is working well enough to start the dogfood. Many tests
now broken.
- Implemented the safety mechanism that checks for confirmation is a
write command processes a filter, but the filter expression is blank.
For example, running "task delete" would delete all tasks unless this
safety check is in place.
- Added feature #710, which adds an attribute modifier prefix to return the
complement of a filtered set (thanks to Dan White).
- Added missing description to the 'help' command.
Signed-off-by: Paul Beckingham <paul@beckingham.net>
- Added new attribute modifiers 'word' and 'noword' which find the existence
of whole words, or prove the non-existence of whole words. If a task has
the description "Pay the bill", then "description.word:the" will match, but
"description.word:th" will not. For partial word matches, there is still
"description.contains:th".
- Added unit tests for the text.cpp functions.
- Added unit tests including the new modifiers in filters.
- Added unit tests to parse the new modifiers.
- Modified man page.
- Modified the Context::autoFilter processing to use the new modifiers for
+tag and -tag filtering.
- Added a support email to an error message, while looking at the filter code.
- Added new modifiers to the help report.
- Modified a utf8.t unit test to include an alphanumeric tag, rather than a
smiley face.
- Fixed bug that prevented using end.after: and end.before: together
to effect a range.
- Required differentiation between positive and negative attribute
modifiers, and special handling.