- "projects" report converted to 1.8.0.
- Relocated code from task.cpp to recur.cpp to allow unit tests to link
without includign task.cpp and therefore main.
- Removed obsolete sandbox directory.
- Fixed bug where Config::load deleted the pre-loaded custom reports.
- Fixed bug where Cmd::valid failed to include custom reports properly.
- T2 can now parse all supported legacy formats (ff2, ff3) as well as
ff4.
- Added tag and attribute support to T2.
- Added T2 unit tests for all formats.
- Added unit tests for Config. Why didn't I do this a year ago?
- Shut off old 1.7.0 code (gulp).
- Task now thoroughly broken, and only 1.8.0 can help.
- Added processing for context.config overrides, and associated
argc,argv handling.
- Bug fix in filt.t.cpp, but three tests still fail. Too big a
distraction to fix right now.
- Warning: build is not broken, but task is broken.
- New Cmd object to handle localized commands, customReports and general
command parsing.
- Localized new Subst methods.
- Relocate guess method from parse.cpp to text.cpp.
- Converted Att object to use new valid/parse scheme.
- Unit tests for Cmd object.
- Fixed att.t.cpp unit tests.
- Context now gathers messages and footnotes.
- task now calls into the new 1.8.0 code (via Context), then calls
into the old 1.7.0 code. Two for the price of one.
- Now supports "-tag" in filters to filter out tasks that do not
have the specified tag (thanks to Chris Pride).
- Added unit tests to prevent regression.
- Updated the filter docs to include examples.
- Prevented blank annotations from being added, and the description
being echoed as though it were the annotation applied (thanks to
Bruce Dillahunty).
- Added bug.annotate.t unit test to prevent regression.
- New unit tests for Mod object.
- Added new constructors to Mod object for ease of use.
- Added Mod handling in Att object.
- Added more Att unit tests.
- Prevents overly large ranges. A bug was reported from a user
who tried this:
% task annotate 1 1-987654321
The 1-987654321 was assumed to be a valid range, and caused task
to consume all available memory. The workaround was:
% task 1 annotate 1-987654321
But it seems a good idea to range-limit sequences. Currently
it is 1000. Perhaps this should be configurable.
- If a custom report has a specified limit to the number of tasks
it shows, then that limit may be overridden by specifying a new
quantity on the command line.
- Added unit tests to verify expected behavior.
- Updated documentation to reflect new functionality.
- Removed obsolete documentation references to an "oldest" and
"newest" configuration variable.
- Modified unit tests to accommodate changes in the verbose output
of task.
- Added tests to verify /delete-me// substitutions.
- Fixed typos in test descriptions.
- Fixed problem where a blank ID was considered valid. For example,
the command "task 1 -2" should use -2 as the description, but instead
considered this to be the sequence 1,0,2.
- Replaced old validId calls with the new validSequence calls.
- A sequence has been redefined to be the first set of consecutive
arguments that look like sequences. Once broken by a non-sequence
argument, all remaining args, even if they look like a sequence,
are not considered part of the sequence. This allows commands like
"task append 1,3-5 Write 10 emails", where 10 is not part of the
sequence because of the intervening "Write".
- Unit tests (parse.t.cpp) that exercise the parsing of sequences.
Should probably be expanded to cover more.
- Added support for the "g" modifier to the substitution command,
that replace every occurrence of "from" with "to", in the task
description and any annotations.