- Reorganized Duration::valid and Duration::parse to use the same list
of supported constructs.
- Added missing copy constructor.
- Added missing ctor initializer list.
- Corrected handling of negative time_t values.
- Added support for more duration formats.
- Corrected autoComplete use.
- Added Duration::negative.
- Corrected unit test descriptions.
- Relocated util/formatSeconds and util/formatSecondsCompact into
Duration object.
- Relocated unit tests.
- Upgraded Duration object to use seconds, not days.
- Enhanced Duration so that it can now parse '4 mins' etc.
- Implemented replacement Config::get* methods.
- Replaced all calls throughout the code, with the new methods which
have no static values as defaults.
- 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.
- Fixed bug that caused task to not properly detect the removal of a
tag when obtaining confirmation from the user fora bulk modification
(thanks to Cory Donnelly).
- Implemented confirmation on big changes. That means if the description is
changed, or more than 2 tasks are modified in a single command.
- Implemented taskDiff to detect differences between two tasks.
- Implemented taskDifferences to describe differences between two tasks.
- Added a tri-state confirmation function for confirming bulk operations
allowing the user to answer yes/no/all to and optionally allow,
disallow or bulk-allow big changes.
- Fixed bug in calendar that failed to consider only pending tasks
when coloring in the calendar display, and when calculating the
most overdue task to be displayed.
- Modified util.cpp/formatSeconds to stop displaying fractional days,
because having a task age represented as 5.1 days is silly.
- The two load* methods were conflicting - if loadCustomReports was
called first, it stomped on the commands list and prevented
loadCommands from running. Now there is only one method.
- Rewrote util.cpp/autoComplete to use STL over libc. Might reduce
code size.
- Renamed files task.h -> main.h, task.cpp -> main.cpp. This is to
prepare for the next rename, which addresses the OpenBSD bug.
- Removed utf8.h, utf8.cpp from Makefile.am, which were inadvertantly
added.
- Fixed a bug with an unterminated buffer in uuid() (thanks to
Steven de Brouwer).
- Added Solaris 8 as another supported platform (thanks to Steven
de Brouwer).
- 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.
- 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.