- Corrected problem in unit test that expected the wrong result.
- Fixed Color::Color (const std::string&) so that the foreground and
background are now considered two different colors, are upgraded
separately, if necessary, and then blended. The problem affected
all instances of "<256-color> on <16-color>". Hooray for unit
tests.
- Oddly, there were no unit tests for the Color object. Now there are
1,033.
- Three of these tests fail, which justifies adding them in the first place.
- Task was preventing removal of due date from any task that had a due date,
which is wrong. It should be any task with a recur: value and a due date
(thanks to John Florian).
- 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)
- added displaying of holidays in 'task cal'
via calendar.holidays
- the legend in the calendar can now be turned off
- weeknumbers in the calendar can now be color-coded
- 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
- Now supports 'task config name value', 'task config name ""', and
'task config name' to directly modify the .taskrc file.
- Updated man page.
- Added unit tests.
- Modified existing config command to also display configuration
variables that have no values.
- Implemented Path::operator (std::string) const, to provide an
automatic cast to std::string for any Path, File or Directory.
- Made use of new cast in various code.
- Changed use of spaces in atoi () calls.
- Switched from std::string::data () to std::string::c_str () calls.
- Config is now providing a default set of all configuration variables.
- The default set is used to both initialize a Config object, and to
create a sample .taskrc.
- 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
- Merged Path, File and Directory handling objects from metatask.git.
- Merged unit tests.
- These objects will replace a fair amount of code in task 1.9 and
more in 2.0.
- Added 1 new color configuration variables to colorize weekend days
in the calendar: 'calendar.color.weekend'.
- Changed the default colors in the calendar.
- Added 3 new color configuration variables to colorize today, days with due tasks
and days with overdue tasks in the calendar:
'calendar.color.today', 'color.calendar.due' and 'calendar.calendar.overdue'
- added 2 new configuration variables 'calendar.details' and
'calendar.details.report' that make it possible to display
details of task with due date when doing 'task cal'
- version now only displays the version number and copyright notice
- config displays the task configuration that version used to show
- configuration variable longversion is not longer needed
- Gathers timing for runs of the list report for 1, 10, 100 and 1000
tasks. This will create a history of data in the tinderbox runs
for later analysis.
- Fixed Timer class to use a fixed precision, that for some reason,
does not work on Haiku. Put a conditional compile around it for
now - perhaps later Haiku alpha releases will change things?
- Added benchmark2.t, which enables high-resolution timers for a
single 'list' command, with 10, 100 and 1000 task databases. Then
it emits readily-found and parsed data for charts.
- Eliminated obsolete benchmark data for hardware I no longer own.
- Added unit tests to make sure formatSeconds is doing the right thing.
It isn't, and it needs to change, but at least now we can see what is
wrong with it.