mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-08-20 13:23:08 +02:00
Blank Durations
- Instead of dispalying '-' for a zero-length duration, nothing is ('') is displayed instead. This allows a completely empty duration column to be culled by the rc.print.empty.columns=no feature. - Unit tests updated accordingly.
This commit is contained in:
parent
089b3e7d66
commit
330761e997
4 changed files with 27 additions and 26 deletions
3
NEWS
3
NEWS
|
@ -19,7 +19,8 @@ New commands in taskwarrior 2.2.0
|
||||||
New configuration options in taskwarrior 2.2.0
|
New configuration options in taskwarrior 2.2.0
|
||||||
|
|
||||||
- New color rule 'color.uda.<uda-name>'.
|
- New color rule 'color.uda.<uda-name>'.
|
||||||
- Added the configuration variable 'print.empty.columns'.
|
- Added the configuration variable 'print.empty.columns', which defaults to
|
||||||
|
'no'. This allows more efficient use of horizontal space.
|
||||||
- Any ~ characters in a default .taskrc file are preserved.
|
- Any ~ characters in a default .taskrc file are preserved.
|
||||||
|
|
||||||
Newly deprecated features in taskwarrior 2.2.0
|
Newly deprecated features in taskwarrior 2.2.0
|
||||||
|
|
|
@ -282,7 +282,7 @@ std::string Duration::formatCompact () const
|
||||||
else if (_secs >= 3600) sprintf (formatted, "%s%dh", (_negative ? "-" : ""), (int) (_secs / 3600));
|
else if (_secs >= 3600) sprintf (formatted, "%s%dh", (_negative ? "-" : ""), (int) (_secs / 3600));
|
||||||
else if (_secs >= 60) sprintf (formatted, "%s%dm", (_negative ? "-" : ""), (int) (_secs / 60));
|
else if (_secs >= 60) sprintf (formatted, "%s%dm", (_negative ? "-" : ""), (int) (_secs / 60));
|
||||||
else if (_secs >= 1) sprintf (formatted, "%s%ds", (_negative ? "-" : ""), (int) _secs);
|
else if (_secs >= 1) sprintf (formatted, "%s%ds", (_negative ? "-" : ""), (int) _secs);
|
||||||
else strcpy (formatted, "-");
|
else formatted[0] = '\0';
|
||||||
|
|
||||||
return std::string (formatted);
|
return std::string (formatted);
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,32 +41,32 @@ if (open my $fh, '>', 'annual.rc')
|
||||||
# If a task is added with a due date ten years ago, with an annual recurrence,
|
# If a task is added with a due date ten years ago, with an annual recurrence,
|
||||||
# then the synthetic tasks in between then and now have a due date that creeps.
|
# then the synthetic tasks in between then and now have a due date that creeps.
|
||||||
#
|
#
|
||||||
# ID Project Pri Due Active Age Description
|
# ID Project Pri Due Active Description
|
||||||
# -- ------- --- ---------- ------ --- -----------
|
# -- ------- --- ---------- ------ -----------
|
||||||
# 2 1/1/2000 - foo
|
# 2 1/1/2000 foo
|
||||||
# 3 12/31/2000 - foo
|
# 3 12/31/2000 foo
|
||||||
# 4 12/31/2001 - foo
|
# 4 12/31/2001 foo
|
||||||
# 5 12/31/2002 - foo
|
# 5 12/31/2002 foo
|
||||||
# 6 12/31/2003 - foo
|
# 6 12/31/2003 foo
|
||||||
# 7 12/30/2004 - foo
|
# 7 12/30/2004 foo
|
||||||
# 8 12/30/2005 - foo
|
# 8 12/30/2005 foo
|
||||||
# 9 12/30/2006 - foo
|
# 9 12/30/2006 foo
|
||||||
# 10 12/30/2007 - foo
|
# 10 12/30/2007 foo
|
||||||
# 11 13/29/2008 - foo
|
# 11 13/29/2008 foo
|
||||||
# 12 12/29/2009 - foo
|
# 12 12/29/2009 foo
|
||||||
|
|
||||||
qx{../src/task rc:annual.rc add foo due:1/1/2000 recur:annual until:1/1/2009 2>&1};
|
qx{../src/task rc:annual.rc add foo due:1/1/2000 recur:annual until:1/1/2009 2>&1};
|
||||||
my $output = qx{../src/task rc:annual.rc list 2>&1};
|
my $output = qx{../src/task rc:annual.rc list 2>&1};
|
||||||
like ($output, qr/2\s+1\/1\/2000\s+(?:-|\d+\ssecs?)\s+foo/, 'synthetic 2 no creep');
|
like ($output, qr/2\s+1\/1\/2000\s+(?:\d+\ssecs?\s+)?foo/, 'synthetic 2 no creep');
|
||||||
like ($output, qr/3\s+1\/1\/2001\s+(?:-|\d+\ssecs?)\s+foo/, 'synthetic 3 no creep');
|
like ($output, qr/3\s+1\/1\/2001\s+(?:\d+\ssecs?\s+)?foo/, 'synthetic 3 no creep');
|
||||||
like ($output, qr/4\s+1\/1\/2002\s+(?:-|\d+\ssecs?)\s+foo/, 'synthetic 4 no creep');
|
like ($output, qr/4\s+1\/1\/2002\s+(?:\d+\ssecs?\s+)?foo/, 'synthetic 4 no creep');
|
||||||
like ($output, qr/5\s+1\/1\/2003\s+(?:-|\d+\ssecs?)\s+foo/, 'synthetic 5 no creep');
|
like ($output, qr/5\s+1\/1\/2003\s+(?:\d+\ssecs?\s+)?foo/, 'synthetic 5 no creep');
|
||||||
like ($output, qr/6\s+1\/1\/2004\s+(?:-|\d+\ssecs?)\s+foo/, 'synthetic 6 no creep');
|
like ($output, qr/6\s+1\/1\/2004\s+(?:\d+\ssecs?\s+)?foo/, 'synthetic 6 no creep');
|
||||||
like ($output, qr/7\s+1\/1\/2005\s+(?:-|\d+\ssecs?)\s+foo/, 'synthetic 7 no creep');
|
like ($output, qr/7\s+1\/1\/2005\s+(?:\d+\ssecs?\s+)?foo/, 'synthetic 7 no creep');
|
||||||
like ($output, qr/8\s+1\/1\/2006\s+(?:-|\d+\ssecs?)\s+foo/, 'synthetic 8 no creep');
|
like ($output, qr/8\s+1\/1\/2006\s+(?:\d+\ssecs?\s+)?foo/, 'synthetic 8 no creep');
|
||||||
like ($output, qr/9\s+1\/1\/2007\s+(?:-|\d+\ssecs?)\s+foo/, 'synthetic 9 no creep');
|
like ($output, qr/9\s+1\/1\/2007\s+(?:\d+\ssecs?\s+)?foo/, 'synthetic 9 no creep');
|
||||||
like ($output, qr/10\s+1\/1\/2008\s+(?:-|\d+\ssecs?)\s+foo/, 'synthetic 10 no creep');
|
like ($output, qr/10\s+1\/1\/2008\s+(?:\d+\ssecs?\s+)?foo/, 'synthetic 10 no creep');
|
||||||
like ($output, qr/11\s+1\/1\/2009\s+(?:-|\d+\ssecs?)\s+foo/, 'synthetic 11 no creep');
|
like ($output, qr/11\s+1\/1\/2009\s+(?:\d+\ssecs?\s+)?foo/, 'synthetic 11 no creep');
|
||||||
|
|
||||||
$output = qx{../src/task rc:annual.rc diag 2>&1};
|
$output = qx{../src/task rc:annual.rc diag 2>&1};
|
||||||
like ($output, qr/No duplicates found/, 'No duplicate UUIDs detected');
|
like ($output, qr/No duplicates found/, 'No duplicate UUIDs detected');
|
||||||
|
|
|
@ -79,7 +79,7 @@ int main (int argc, char** argv)
|
||||||
d = Duration (365 * 86400 + 1); t.is (d.format (), "1.0 yrs", "365 days + 1 sec -> 1.0 yrs");
|
d = Duration (365 * 86400 + 1); t.is (d.format (), "1.0 yrs", "365 days + 1 sec -> 1.0 yrs");
|
||||||
|
|
||||||
// std::string formatCompact ();
|
// std::string formatCompact ();
|
||||||
d = Duration (0), t.is (d.formatCompact (), "-", "0 -> -");
|
d = Duration (0), t.is (d.formatCompact (), "", "0 ->");
|
||||||
d = Duration (1), t.is (d.formatCompact (), "1s", "1 -> 1s");
|
d = Duration (1), t.is (d.formatCompact (), "1s", "1 -> 1s");
|
||||||
d = Duration (2), t.is (d.formatCompact (), "2s", "2 -> 2s");
|
d = Duration (2), t.is (d.formatCompact (), "2s", "2 -> 2s");
|
||||||
d = Duration (59), t.is (d.formatCompact (), "59s", "59 -> 59s");
|
d = Duration (59), t.is (d.formatCompact (), "59s", "59 -> 59s");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue