- Added unit tests to make sure formatSeconds is doing the right thing.
It isn't, and it needs to change, but at least now we can see what is
wrong with it.
- Fixed broken unit tests that relied on the string 'ABSOLUTELY NO
WARRANTY' being present in the output of the version command. The
tests now rely upon 'GNU General Public License' instead.
- Fixed util.cpp formatSeconds and formatSecondsCompact, that were using
an algorithm that accentuated rounding errors.
- Fixed unit tests that were expecting wrong answers from the wrong
algorithm above.
- Added include file support to Config.cpp.
- Implemented isAbsolutePath helper.
- Added unit tests for isAbsolutePath.
- Fixed small bug in bug.bulk.t.
- Added TODO items to config.t.cpp.
- The 'version' command now complains about use of deprecated color names and
duplicate entries.
- Unit tests verify duplicate detection.
- Unit tests verify deprecated color detection.
- Most validation code moved from command.cpp to Config.cpp.
- 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 a broken fix (e7c8114dff) for
the calendar command - previously if task could find no tasks with
due dates, no calendar was displayed, and an error message shown.
That broken fix was only on the 1.9.0 branch and never released.
The correct behavior is to show a line of months. This bug broke
15 unit tests.
- Fixed minor problem in unit tests where the output was not captured,
although this has no bearing on the results.
- The fix to bug #322 means the way default commands are specified
is now a little different. If the command "task rc:x" is run, the
default command no longer needs to also include "rc:x".
- Fixed bug #317 which colored tasks in the 'completed' report according to
due dates, which are no longer relevant to a completed task (thanks to
Cory Donnelly).
- Fixed bug that was causing the 'completed' report to sort incorrectly.
- Fixed bug in annotate.t, where a custom report named 'r' was used
in the unit tests. This name had to be lengthened to 'rrr' to avoid
conflict with the 'recurring' report. This, in itself, is a different
bug.
- Fixed bug whereby the start, stop and delete commands were not
complaining when filter arguments were specified, even though they
were ignored. Thanks to Charles T. Yun.
- Fixed bug that prevented the chaining of two attributes with
different modifiers to effect a date range, such as:
task ls due.after:8/1/2009 due.before:8/31/2009
Thanks to John Florian.
- Fixed bug in modify and append that was erroneously reporting "No
changes" when a bulk update occurred.
- Added bug.bulk.t unit tests to cover this example.
- t.t.cpp was throwing an error because UUID is no longer set in Task::Task
and so the sample task t3 was 'empty', which doesn't sit well with the
round trip testing.
- Fixed bug that was causing more non-unique UUIDs. Here are the
changes made:
- Task.cpp, tasks are no longer provided with a UUID in Task::Task.
This prevents the global context.task from being constructed before
srandom/srand is called.
- main.cpp, instead of srandom/srand (time (NULL)), it now uses
struct timeval tv_usec member, which has a micro-second granularity,
instead of time (NULL) which has a second granularity. When
"task add ..." is called in a unit test, several calls are made per
second, this the random number generator is seeded with the same
value.
- Modified the unit test to cover all 6 tasks created, instead of
5.