- 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.
- Relocated longUsage and shortUsage to report.cpp, where they belong,
which has the positive side effect of allowing all the compiled unit
tests to link.
- 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.
- "projects" report converted to 1.8.0.
- Relocated code from task.cpp to recur.cpp to allow unit tests to link
without includign task.cpp and therefore main.
- Removed obsolete sandbox directory.
- Fixed bug where Config::load deleted the pre-loaded custom reports.
- Fixed bug where Cmd::valid failed to include custom reports properly.
- Added unit tests for Config. Why didn't I do this a year ago?
- Shut off old 1.7.0 code (gulp).
- Task now thoroughly broken, and only 1.8.0 can help.
- New Cmd object to handle localized commands, customReports and general
command parsing.
- Localized new Subst methods.
- Relocate guess method from parse.cpp to text.cpp.
- Converted Att object to use new valid/parse scheme.
- Unit tests for Cmd object.
- Fixed att.t.cpp unit tests.
- New unit tests for Mod object.
- Added new constructors to Mod object for ease of use.
- Added Mod handling in Att object.
- Added more Att unit tests.
- Fixed problem where a blank ID was considered valid. For example,
the command "task 1 -2" should use -2 as the description, but instead
considered this to be the sequence 1,0,2.
- Replaced old validId calls with the new validSequence calls.
- A sequence has been redefined to be the first set of consecutive
arguments that look like sequences. Once broken by a non-sequence
argument, all remaining args, even if they look like a sequence,
are not considered part of the sequence. This allows commands like
"task append 1,3-5 Write 10 emails", where 10 is not part of the
sequence because of the intervening "Write".
- Unit tests (parse.t.cpp) that exercise the parsing of sequences.
Should probably be expanded to cover more.
- Added unit tests for Date enhancements
- Added unit tests for duration recognition
- Task parsing now supports due: using relative dates
- Task parsing now supports recur: and until: attributes
- Task parsing now support private attributes base: and range: