- 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: