- Using '--' on the command line separates the left hand side, where
task is free to interpret arguments in the usual way, and the right
hand side, which is then assumed to be part of the task description,
and is not interpreted by task.
- Fixed bug where variable instantiation inside a case statement
was not scoped, but somehow builds on Leopard, but fails on
Fedora Core 10. Thanks to Federico Hernandez.
- 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.
- When a task description contained a colon, the two words preceding
the colon were concatenated. For example, "aa bb:cc dd" gets
concatenated to "aabb:cc dd".
- Added unit to test to prevent regression.
- Updated documentation.
- Improved (fixed) logical consistency checks that prevent the
addition of a recurrence frequency without a due date.
- Improved (fixed) logical consistency checks that prevent the
addition of an until date with a recurrence frequency.
- When a recurring task is modified, all sibling instances, as well
as the parent task now get modified.
- When a recurring task is appended, all sibling instances, as well
as the parent task now get modified.
- Updated documentation.
- It is now possible to upgrade a regular task to a recurring task,
which is triggered by the "recur" attribute.
- Added support for "annotate" command to annotate existing tasks.
- Bumped file format to version 3, due to the annotations.
- Added unit tests to verify that annotations work.
- Changed 'description' column everywhere to include annotations.
- Added 'description_only' column to exclude the annotations.
- Fixed bug in Table.cpp that calculated the width of multi-line
columns by using the cell length, instead of the length of the
longest individual line.
- Updated documentation with new feature.
- Updated documentation with new column.
- Enhanced t.t unit tests to cover format 43
- Using size_t as a result for std::string::find causes a silent error,
reported only on Ubuntu 8. size_t is not large enough. The proper
result type is std::string::size_type. This fixes a problem with
the command "task old" responding with "Ambiguous commane 'old' -
could be one of oldest, oldest.description, oldest.limit, oldest.sort".
- Added support for the "report.X.limit" configuration variable, to
restrict the number of rows a report generates.
- Added support for Table::render (limit) to limit the number of rows
that are rendered.
- Removed "oldest" and "newest" report code.
- Added "oldest" and "newest" custom report details to Config.cpp
- Updated various documentation.
- Added unit tests for Date enhancements
- Added unit tests for duration recognition
- Task parsing now supports due: using relative dates
- Task parsing now supports recur: and until: attributes
- Task parsing now support private attributes base: and range: