- Implemented RegX class to maintain a separate compile, and match
method, thereby allowing efficient re-use of the regex. This is
critical to Expression::eval, where an identical regex might be
applied to every task.
- Obsoleted rx.{h,cpp}, which combined the compile and match steps
into a single call, and is therefore not efficient when used in
the context of filtering.
- Fixed some unit tests that weren't building. Now they do. They
don't work of course (don't be silly) but that's a problem for
another day.
- Modified all code that relies on rx.h to use RegX.h.
- Obsoleted Cmd object.
- Removed Context::dispatch, renamed dispatch2 --> dispatch.
- Commented out import and custom report functionality that depends
on Cmd. This should be about as broken as taskwarrior gets. It's
all uphill from here.
- 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>
- Disallowed @ and / from an attribute name or modifier. This causes
input like 'user@host:path' to now be parsed as description, and not
as an unrecognized attribute.
- Added 'urgency' as a reportable, sortable column. This will allow
us to test the urgency coefficients. Note that this is experimental,
and as such will not be documented.
- When rc.regex:on is set, filters with "+tag" elements were causing
a segfault because the "tag" word was converted to a non-capturing
regex, no results were captured, and array[0] failed. Now it is
implemented that tag elements in a filter never use regexes, which
maintains the idea the tags are not really words, but tokens that
either match or don't.
- Fixed bug #461, in which the filter 'due:today' failed, but 'due.is:today'
worked. This is because while iterating over tasks, not every task has a
due date, in which case Date::Date ("") was called, which fails.
- Moved 'wait' up to second position in the Att::type method, for efficiency.
- Implemented export.yaml, import (yaml).
- Updated man page.
- 'export' is now an alias to 'export.yaml'.
- Added missing 'tags' attribute as an internal Att.
- Improved recognition of YAML.
- Added unit tests for export.yaml, import (yaml).
- Added missing unlink from dependencies.t
- Now dates (due, wait, limit) are parsed first as Durations, and on
error reparsed as Date. When a Duration is found instead of a Date,
the Duration is added to the current date/time.
+ Task now supports both a 'side' and 'diff' style of undo.
+ Undo now observes the 'color.undo.before' and 'color.undo.after'
configuration variables.
- Fixed bug #405, which incorrectly compared dates on tasks created by
versions earlier than 1.9.1 to those created by 1.9.1 or later (thanks to
Ivo Jimenez).
- Added feature #415, which supports displaying just a single page of tasks,
by specifying either 'limit:page' to a command, or 'report.xxx.limit:page'
in a report specification (thanks to T. Charles Yun).
- Modified the 'next' report to only display a page, by default.
- Implemented replacement Config::get* methods.
- Replaced all calls throughout the code, with the new methods which
have no static values as defaults.
- 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.
- Fixed bug where both single and double quotes are stored as
ampersand-quote-semi-colon, leading to the gradual conversion of
one to the other. Fix is backward compatible. Thanks to John
Florian.
- Fixed bug in Att::match that causes blank dates to be interpreted
as 12/31/1969, and therefore pass "xxx.before:" tests.
- Added the "cal" symlink trick to ChangeLog.
- Removed incorrect i18n tags from Config.cpp.
- Allowed .taskrc:confirmation=no to bypass Permission checking.