- Fixed bug #438, correcting the sorting of the entry_time, start_time
and end_time columns (thanks to Michelle Crane).
- Reordered ChangeLog so that bugs, features are in sequence. Don't know
why I did this. Some inner compulsion.
- Deprecated silly start_time, end_time and entry_time columns, which are
now (and were) superseded by start, end and entry columns with time formats.
- Config.cpp now detects use of these deprecated fields and complains to the
show command.
- Date.cpp now uses the variable 'input' instead of 'mdy', which was confusing
and implied that it contained a date without a time.
- Obsoleted and removed Date::toStringWithTime, which ignored requested formats.
- When checking for an epoch, Date::isEpoch just looked for strings of more
than 8 digits. The additional restriction of less than or equal to 10 digits
was added. This was breaking unit tests using the dateformat YMDHNS, which is
reasonable.
- Removed the obsolete field format hooks format-entry_time, format-start_time
and format-end_time
- Removed the obsolete field format hook unit tests hook.format-entry_time.t,
hook.format-start_time.t and hook.format-end_time.t.
- Removed use of deprecated field in hook.format-countdown_compact.t.
- Added missing shortcut comparisons in Table::sort that was causing an
unnecessary full parse of dates even if they were identical as strings.
- Coded entry_time as a synonym for entry. Ditto for start_time and end_time.
- Marked the new synonyms as deprecated.
- Added bug.438.t unit test.
- Added deprecated fields to the NEWS file.
- Added support for more varied durations when specifying recurring tasks,
such as '3 mths' or '24 hrs'.
- Fixed bug #417, which caused sorting on countdown fields to be wrong
(thanks to Michell Crane).
- Durations are now based on seconds, rather than days, and can accept/parse
negative durations.
- 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.
- Added feature #415, which supports displaying just a single page of tasks,
by specifying either 'limit:page' to a command, or 'report.xxx.limit:page'
in a report specification (thanks to T. Charles Yun).
- Modified the 'next' report to only display a page, by default.
- Allows rc.tag.indicator to replace the default + indicator.
- Allows rc.active.indicator to replace the default * indicator.
- Allows rc.recurrence.indicator to replace the default R indicator.
- Implemented all command hooks.
- Implemented several field hooks.
- Implemented several task hooks.
- Reorganized event validation code.
- Finalized Hooks -> API::call* mechanism.
- Implemented several hook unit tests.
- Corrected unit tests that didn't specify rc.hooks=on.
- Corrected builds that include Lua.
- improved dateformat handling now defaulting to YMD set via
dateformat.holiday variable
- fixed missing sorting in holiday table output when running
calendar.holidays=full
- renamed reportdateformat to dateformat.report
- added config file checking for calendar.holidays and calendar.details
- added 2 holiday files for SE and US (watertown, MA)
- changed variable name from annotation.details to annotations
- added report.X.annotations
- changed values from 2, 1, 0 to full, sparse, none
- made reportdateformat available in timesheet
- Implemented replacement Config::get* methods.
- Replaced all calls throughout the code, with the new methods which
have no static values as defaults.
- added new reportdateformat to extend the formatting of due dates
in the reports and "task info"
- added new conversion sequences a, A, b, B and Y to be used with
reportdateformat
- Fixed bug #317 which colored tasks in the 'completed' report according to
due dates, which are no longer relevant to a completed task (thanks to
Cory Donnelly).
- Fixed bug that was causing the 'completed' report to sort incorrectly.
- Fixed bug that caused the alternate line coloration to ignore whether
color was enabled or not. This (once again) added color codes to the
shadow file. This happens repeatedly - I think a unit test for this
mistake is needed.
- Broke out the guts of handleCustomReport into runCustomReport, so
that the next report can generate it's own task list, then allow the
custom report handling to render it. This means the next report is
essentially (but not quite) a custom report.
- 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.
- 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).
- 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
- 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.