- 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.
- The first ID added as a sequence is accessible through the original
T::getId and T::setId interface.
- An ID added via T::getId is accessible as the first ID in a sequence.
- Allows some commands to operate exclusively with sequences, and others
with a single ID.
- Annotations were using ' to quote text, sanitizing ' -> " inside
the text. It would be better to quote with " and sanitize " -> '
because ' is more common in the text (e.g. "Doesn't work") than ".
- 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.
- Fixed bug whereby if no columns labels were specified, it was
considered a column count mismatch.
- Fixed unit tests to use m/d/Y not M/D/Y dateformat.
- Guaranteed the correct Config::get call via cast. There is some
doubt as to the correct call being made otherwise. This is not a
very likely fix, but does eliminate one possibility.
- Added format identifier code for task 1.4.3, task 1.5.0, todo.sh
2.0 and CSV.
- Implemented import for type text.
- Implemented util.cpp:slurp function.
- Gathered sample input files for import testing, and later, unit
tests.
- 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
- Added an echo of the ID and description of the task for the start,
stop, do, undo, delete and undelete commands. Thanks to Bruce
Dillahunty.
- Updated documentation.
- Added "echo.command=no" to delete.t, undo.t because the default
value is "yes", which breaks tests.
- Fixed syntax errors in utf8.t
- Corrected expected number of tests in recur.t
- Implemented unit tests to very that "confirmation=yes" works.
- Implemented unit tests to very that \n causes a re-prompt.
- Updated docs with regard to this fix, thanks to Bruce Dillahunty.
- Fixed bug where util.cpp:confirm was eating newlines, and not
rewriting the prompt. Consequently, after confirm asked the
question, and the user hit <Enter>, nothing was displayed but
the newline. Now uses std::getline.