- 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 that caused due dates and recurrence periods to be quoted on
export, which then caused confusion on a subsequent import (thanks to
John Florian).
- 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.
- Fixed bug that generated an export file that was incompatible with
task 1.7.1 import. Now there is a smooth migration path back to
1.7.1 in case 1.8.0 proves unacceptable.
- Fixed bug that meant Task::composeF4 added a newline, but Task::parse
did not expect a newline. This caused Task::determineVersion to
detect a format 1 encoding and throw. Changed TDB::load to not remove
any \n characters, and Task::parse to accept lines either with or
without.
- Implemented info report.
- Removed odd Subst and Sequence objects from Task - are they just
vestigial limbs, or did I add them for a good reason? They are
gone now.
- Added Filter::applySequence to replace old filterSequence.
- Removed obsolete report.cpp filter function.
- Modified Record::get* methods to be const.
- Implemented TDB2::add.
- Renamed Task::valid to Task::validate.
- Implemented Task::setEntry to default creation time.
- Fixed bug where TDB2 was opening files "rw" instead of "r+".
- Renamed T2.h -> Task.h, T2.cpp -> Task.cpp. This permanently avoids
the problem where g++ on OpenBSD 4.5 fails because of the T class,
which probably conflicts with C++ templates. Who knows.