- Implemented unit tests (more of a demo) that add a bunch of UTF-8
encoded tasks, as a starting point to updating task to be aware of
encodings, Unicode etc.
- abbreviation.t contains unit tests that fail to specify an alternate
rc file (rc:abbrev.rc), and so instead rely on ~/.taskrc. For a new
installation, there is no .taskrc, so task offers to create one.
When done in the context of a unit test, task hangs waiting for input.
- due.t was incorrectly reporting the number of tests it intended to
run.
- export.t was not updated when the export command was updated to include
recurrence information.
- The custom report limit "report.x.limit" was being used to limit the
rendered rows in the table. Instead, there should be something like
min (limit, actual_rows) used, in Table.cpp.
The symptom was duplicate tasks in a "task oldest" report, when there
were less than 10 tasks.
- Using size_t as a result for std::string::find causes a silent error,
reported only on Ubuntu 8. size_t is not large enough. The proper
result type is std::string::size_type. This fixes a problem with
the command "task old" responding with "Ambiguous commane 'old' -
could be one of oldest, oldest.description, oldest.limit, oldest.sort".
- Added unit tests to verify that the next report returns the correct
tasks.
- Added unit test to verify that unrecognized columns in a custom
report are flagged.
- Added unit tests to verify that only pending and completed tasks
are included in the summary report.
- Now sanitizes output by replacing ' with " in descriptions.
- Added 'recur' attribute to exported output.
- Removed recurring, deleted and complete tasks from the export.
- Improved dateformat.t tests to cover all acceptable date format
characters.
- Unit tests for shadow file update notification.
- Unit tests for shadow file updates under certain circumstances.
- Unit tests for shadow file no updates under other circumstances.
- Every command now returns an output string, or at least has an
opportunity to do so.
- TDB::gc is only performed a) when allowed, and b) when the command
will display line numbers.
- updateShadowFile is only performed when a) shadow updates are allowed,
and either b) when a command is guaranteed to have modified a task or
c) when TDB:gc has already made changes.
- Task runs the default command when no arguments are provided, but
when an "rc:..." argument is provided, it does not run the default
command.
- Implemented unit tests to verify the functioning of default commands,
default project and default priority.
- Implemented unit tests to verify that the "oldest" report does
indeed show the oldest 10 tasks.
- Implemented unit tests to verify that the "newest" report does
indeed show the newest 10 tasks.
- Added support for the "report.X.limit" configuration variable, to
restrict the number of rows a report generates.
- Added support for Table::render (limit) to limit the number of rows
that are rendered.
- Removed "oldest" and "newest" report code.
- Added "oldest" and "newest" custom report details to Config.cpp
- Updated various documentation.
- Fixed bug whereby if a new month rolls around, and no task is added,
no row of data is shown in the history or ghistory reports, even
though tasks may have been completed or deleted ni the new month.
- Task now displays as many calendars will fit across the window,
unless a lower value is specified in the "monthsperline" configuration
variable.
- Task now obeys the "color" configuration variable when determining
whether to add a legend to the calendar output.
- Added support for the "locking" configuration variable that disables
file locking. This can be helpful to folks who use task on Solaris,
and store their task data files on an NFS mount.
- Added unit tests to verify that the completed.data file is not
created until the first report is run after the task is marked
as done.
- Added unit tests to verify that delete/undelete work as expected.
- Added unit tests for all auto coloration configuration settings.
- Tweaked colorization rule precedence to allow color.due to override
the built-in coloration of due tasks.
- Added color.recurring to the list of valid config values.
- Added message to "version" command hinting that folks should look
periodically for updated versions of task. Task does not "call home"
and check for updates (and never will), and so it is easy to not
realize that there may be newer versions of task with bug fixes and
new features.
- Added new column 'recur' for use in custom reports.
- Implemented Table::ascendingPeriod, Table::descendingPeriod allowing
sorting on the recur column.
- Added unit tests to both use the new column and test the sorting.
- Code cleanup.
- Made Table::optimize a public method.
- Table::optimize called only from handleReportGHistory, where it's
needed.
- Retaining benchmark.txt, to allow further improvements.
- Added Timer class to display high resolution timing information.
- Found terrible bug in Table::optimize that was taking up 99.7%,
on average, of the Table::rendering time, including sorting. This
fix naturally causes a 187-fold speedup of rendering.
- Changed report.cpp in handleCustomReport to only load pending tasks,
instead of all pending tasks. Subtle, but important difference.
- Added tests for attribute abbreviation.
- Added tests for filter permutation testing.
- Added benchmark for ongoing performance measurement.
- Mentioned test suite in docs. Why not?
- Added unit tests to cover automatic colorization by priority.
- Added unit tests to cover automatic disabling of color when !isatty.
- Added unit tests to cover display of unsupported configuration
variable in the 'version' report.
- Added support the '_forcecolor' configuration variable to allow the
possibility of unit tests that test color support, yet redirect
output to a file. This configuration variable will not be
documented.