diff --git a/ChangeLog b/ChangeLog index 06d2046a3..128aef743 100644 --- a/ChangeLog +++ b/ChangeLog @@ -73,6 +73,8 @@ + Fixed bug #299 which prevented excluding multiple projects from a report, by using "task list project.isnt:foo project.isnt:bar" (thanks to John Florian). + + Fixed bug #368 which caused recurring tasks 'until' dates to be rendered as + epoch numbers instead of dates (thanks to Cory Donnelly). ------ old releases ------------------------------ diff --git a/src/report.cpp b/src/report.cpp index 938dde6d1..8e3f2cb96 100644 --- a/src/report.cpp +++ b/src/report.cpp @@ -383,7 +383,14 @@ int handleInfo (std::string &outs) { row = table.addRow (); table.addCell (row, 0, "Recur until"); - table.addCell (row, 1, task->get ("until")); + + Date dt (atoi (task->get ("until").c_str ())); + std::string format = context.config.get ("reportdateformat"); + if (format == "") + format = context.config.get ("dateformat"); + + std::string until = getDueDate (*task, format); + table.addCell (row, 1, until); } if (task->has ("mask")) diff --git a/src/tests/bug.368.t b/src/tests/bug.368.t new file mode 100755 index 000000000..8b2e25f5d --- /dev/null +++ b/src/tests/bug.368.t @@ -0,0 +1,65 @@ +#! /usr/bin/perl +################################################################################ +## task - a command line task list manager. +## +## Copyright 2006 - 2010, Paul Beckingham. +## All rights reserved. +## +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 2 of the License, or (at your option) any later +## version. +## +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +## FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. +## +## You should have received a copy of the GNU General Public License along with +## this program; if not, write to the +## +## Free Software Foundation, Inc., +## 51 Franklin Street, Fifth Floor, +## Boston, MA +## 02110-1301 +## USA +## +################################################################################ + +use strict; +use warnings; +use Test::More tests => 7; + +# Create the rc file. +if (open my $fh, '>', 'bug.rc') +{ + print $fh "data.location=.\n", + "dateformat=m/d/Y\n", + "confirmation=no\n"; + close $fh; + ok (-r 'bug.rc', 'Created bug.rc'); +} + +# Setup: Add a recurring task, generate an instance, then add a project. +qx{../task rc:bug.rc add foo due:today recur:daily until:eom}; +my $output = qx{../task rc:bug.rc info 1}; + +# Result: Make sure the 'until' date is rendered as a date, not an epoch. +unlike ($output, qr/Recur until\s+\d{10}/, 'until is not shown as an epoch'); + like ($output, qr/Recur until\s+\d+\/\d+\/\d{4}/, 'until is shown as a date'); + +# Cleanup. +unlink 'pending.data'; +ok (!-r 'pending.data', 'Removed pending.data'); + +unlink 'completed.data'; +ok (!-r 'completed.data', 'Removed completed.data'); + +unlink 'undo.data'; +ok (!-r 'undo.data', 'Removed undo.data'); + +unlink 'bug.rc'; +ok (!-r 'bug.rc', 'Removed bug.rc'); + +exit 0; +