- Fixed bug that caused colorization to be way, way off. Silly
mistake.
- Fixed bug whereby due dates and durations were stored as-is, but
should have been converted.
- On a related note, added Date::toEpochString,
Duration::operator (std::string).
- Implemented import command
- Implemented Context::clearMessages to remove all accumulated
messages. This is needed because parts of the import process are
recursive and we don't want Context to dump messages for every
import record on completion.
- Added header, footer and message sinks.
- Added individual colorization of headers, footers and messages.
- Added new configuration variables to Config.cpp, taskrc.5.
- Added colorization functions to rules.cpp
- TDB::load can entirely skip the loading of completed.data if the
specified filter is just so.
- Added FEATURE_TDB_OPT definition to allow disabling of this.
- Corrected export unit test to account for the new syntax of the export
command, which no longer accepts a file name argument, and send the report to
stdout instead.
- Added text.cpp/ucFirst function to capitalize words, so that "pending"
can now appear as "Pending" on the info report. This helps task pass
many more test cases.
- The project attribute is now automatically filtered with
project.startswith:<value>
to provide leftmost matching (ie subprojects).
- Unmodifiable attributes (uuid, start ...) are now prevented from
being updated if the command is designated as a "write" command.
- Implemented Att::type to discern attribute types to assist with
type-specific modifier evaluation.
- Fixed bug that required attributes to have specified values, whereas
stating "name:" means no value for name.
- 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.
- 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.
- Removed the obsolete T object (the old Task object), that is no
longer needed since the Task object is now complete, and there is
nothing in T to refer to. This is a big milestone.