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