- Changed the max date from Jan 19 2038 to Dec 31 2038. This still
serves the purpose, but avoids the UTC/EST/CEST timezon problems
we have seen (thanks to Federico Hernandez).
- 'task cal' or 'task cal y'
Prints a calendar starting from the current month/year
- 'task cal due' or 'task cal due y'
Prints a calendar starting from the month with
the oldest active due task
- 'task cal 2010'
Prints a yearly 12-month calendar
- 'task cal 4 2010' or 'task cal 4 2010 y'
Prints a calendar starting from the given month/year
Calendars are either printed as 12 month calendars (y) or
printed with the number of months that fits into the terminal width
- The next report is now a custom report. There is also a nasty
piece of logic that lets the next report exist as a custom report,
and also with it's own handleReportNext function to prep and filter
the tasks, then hand off to runCustomReport.
- 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.
- Fixed bug whereby handleRecurrence was being called after the tasks
were loaded and filtered, and thus handleRecurrence operated on a
filtered set, and failed. The fix is to move the call to before the
TDB::load call, and to add another TDB::loadPending call inside
handleRecurrence. This means TDB::load needs to be reentrant without
re-reading the file, and can therefore be called twice, with the
likelihood of there being a different filter for each call. This in
turn led to the problem whereby handleRecurrence would generate the
synthetic tasks, which then sat uncommitted in TDB::mNew. The fix
for this is that every call to TDB::loadPending gets the contents of
TDB::mNew appended (with correct IDs). This bug is what you might
call a good one.
- 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.
- Implemented history report.
- Improved (not to the point of them working) filters.
- Improved automatic filter construction.
- Removed obsolete members from Task.
- Added tag support to the "add" command.
- 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.
- Converted active, overdue and completed reports to custom reports.
- Added new recurring report.
- Added support for new 'end' column, which is the completion date.
- Renamed parse.cpp -> valid.cpp to reflect its new role of housing
all the validation routines that don't belong to objects.
- Split report.cpp into report.cpp and custom.cpp.
- 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 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.