mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-08-20 04:13:07 +02:00
Merge branch '2.3.0' of tasktools.org:task into 2.3.0
This commit is contained in:
commit
2074a6e31b
9 changed files with 40 additions and 21 deletions
3
AUTHORS
3
AUTHORS
|
@ -182,3 +182,6 @@ suggestions:
|
||||||
Friedrich Heusler
|
Friedrich Heusler
|
||||||
Ben Armstrong
|
Ben Armstrong
|
||||||
XTaran
|
XTaran
|
||||||
|
John West
|
||||||
|
Dmitriy Matrosov
|
||||||
|
Michele Santullo
|
||||||
|
|
|
@ -67,7 +67,11 @@ Bugs
|
||||||
Wilk).
|
Wilk).
|
||||||
+ #1263 The 'waiting' report properly lists only pending tasks with a wait date
|
+ #1263 The 'waiting' report properly lists only pending tasks with a wait date
|
||||||
(thanks to Fidel Mato).
|
(thanks to Fidel Mato).
|
||||||
|
+ #1268 Edit doesn't accept changes, if task has completed dependency (thanks
|
||||||
|
to Dmitriy Matrosov, Michele Santullo).
|
||||||
+ #1270 The 'undo' command is now properly removing backlog entries.
|
+ #1270 The 'undo' command is now properly removing backlog entries.
|
||||||
|
+ #1273 Query with negative relative date differs greatly from absolute date
|
||||||
|
in past (thanks to John West).
|
||||||
+ #1279 Assorted corrections to the task-ref.pdf document (thanks to Benjamin
|
+ #1279 Assorted corrections to the task-ref.pdf document (thanks to Benjamin
|
||||||
Weber).
|
Weber).
|
||||||
+ #1286 Cannot use "sow", "som", etc in "entry.after", "end.after" filters
|
+ #1286 Cannot use "sow", "som", etc in "entry.after", "end.after" filters
|
||||||
|
@ -80,6 +84,7 @@ Bugs
|
||||||
+ #1387 ZSH Auto-Completion dates are not current (thanks to Benjamin Weber).
|
+ #1387 ZSH Auto-Completion dates are not current (thanks to Benjamin Weber).
|
||||||
+ #1388 Updated task(1) man pages with import/export script examples (thanks to
|
+ #1388 Updated task(1) man pages with import/export script examples (thanks to
|
||||||
Benjamin Weber).
|
Benjamin Weber).
|
||||||
|
+ #1410 Incomplete Date Synonym List in man task (thanks to Benjamin Weber).
|
||||||
+ Fixed bug so that 'limit:page' now considers footnote messages.
|
+ Fixed bug so that 'limit:page' now considers footnote messages.
|
||||||
+ Fixed bug where specifying an ID of 0 yielded all completed/deleted tasks
|
+ Fixed bug where specifying an ID of 0 yielded all completed/deleted tasks
|
||||||
(thanks to greenskeleton).
|
(thanks to greenskeleton).
|
||||||
|
|
|
@ -890,6 +890,22 @@ This sets the wait date to 1/18/2038.
|
||||||
.TP
|
.TP
|
||||||
Next occurring weekday
|
Next occurring weekday
|
||||||
task ... due:fri
|
task ... due:fri
|
||||||
|
|
||||||
|
.TP
|
||||||
|
Predictable holidays
|
||||||
|
task ... due:goodfriday
|
||||||
|
.br
|
||||||
|
task ... due:easter
|
||||||
|
.br
|
||||||
|
task ... due:eastermonday
|
||||||
|
.br
|
||||||
|
task ... due:ascension
|
||||||
|
.br
|
||||||
|
task ... due:pentecost
|
||||||
|
.br
|
||||||
|
task ... due:midsommar
|
||||||
|
.br
|
||||||
|
task ... due:midsommarafton
|
||||||
.RE
|
.RE
|
||||||
|
|
||||||
.SS FREQUENCIES
|
.SS FREQUENCIES
|
||||||
|
|
|
@ -368,6 +368,8 @@ bool Duration::valid (const std::string& input)
|
||||||
Nibbler n (lower_input);
|
Nibbler n (lower_input);
|
||||||
n.getNumber (value);
|
n.getNumber (value);
|
||||||
|
|
||||||
|
// Negative values are valid, but do not need to complicate the validation
|
||||||
|
// check.
|
||||||
if (value < 0.0)
|
if (value < 0.0)
|
||||||
value = -value;
|
value = -value;
|
||||||
|
|
||||||
|
|
|
@ -185,7 +185,10 @@ void E9::eval (const Task& task, std::vector <Arg>& value_stack)
|
||||||
{
|
{
|
||||||
Duration dur (operand._raw);
|
Duration dur (operand._raw);
|
||||||
Date now;
|
Date now;
|
||||||
now += (int)(time_t) dur;
|
if (dur.negative ())
|
||||||
|
now -= (int)(time_t) dur;
|
||||||
|
else
|
||||||
|
now += (int)(time_t) dur;
|
||||||
operand._value = now.toEpochString ();
|
operand._value = now.toEpochString ();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -990,11 +990,6 @@ void Task::addDependency (const std::string& uuid)
|
||||||
if (uuid == get ("uuid"))
|
if (uuid == get ("uuid"))
|
||||||
throw std::string (STRING_TASK_DEPEND_ITSELF);
|
throw std::string (STRING_TASK_DEPEND_ITSELF);
|
||||||
|
|
||||||
// Check that uuid is resolvable.
|
|
||||||
int id = context.tdb2.pending.id (uuid);
|
|
||||||
if (id == 0)
|
|
||||||
throw format (STRING_TASK_DEPEND_MISS_CREA, id);
|
|
||||||
|
|
||||||
// Store the dependency.
|
// Store the dependency.
|
||||||
std::string depends = get ("depends");
|
std::string depends = get ("depends");
|
||||||
if (depends != "")
|
if (depends != "")
|
||||||
|
|
|
@ -660,20 +660,10 @@ void CmdEdit::parseTask (Task& task, const std::string& after, const std::string
|
||||||
std::vector <std::string>::iterator dep;
|
std::vector <std::string>::iterator dep;
|
||||||
for (dep = dependencies.begin (); dep != dependencies.end (); ++dep)
|
for (dep = dependencies.begin (); dep != dependencies.end (); ++dep)
|
||||||
{
|
{
|
||||||
std::vector <int> ids;
|
if (dep->length () >= 7)
|
||||||
|
task.addDependency (*dep);
|
||||||
// Crude UUID check
|
|
||||||
if (dep->length () == 36)
|
|
||||||
{
|
|
||||||
int id = context.tdb2.pending.id (*dep);
|
|
||||||
ids.push_back (id);
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
A3::extract_id (*dep, ids);
|
task.addDependency ((int) strtol (dep->c_str (), NULL, 10));
|
||||||
|
|
||||||
std::vector <int>::iterator id;
|
|
||||||
for (id = ids.begin (); id != ids.end(); id++)
|
|
||||||
task.addDependency (*id);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// UDAs
|
// UDAs
|
||||||
|
|
|
@ -463,7 +463,7 @@ void Command::modify_task (
|
||||||
std::string& description)
|
std::string& description)
|
||||||
{
|
{
|
||||||
// Utilize Task::modify
|
// Utilize Task::modify
|
||||||
task.modify(arguments, description);
|
task.modify (arguments, description);
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
|
@ -51,7 +51,7 @@ int convertDuration (const std::string& input)
|
||||||
|
|
||||||
int main (int argc, char** argv)
|
int main (int argc, char** argv)
|
||||||
{
|
{
|
||||||
UnitTest t (644);
|
UnitTest t (646);
|
||||||
|
|
||||||
// Ensure environment has no influence.
|
// Ensure environment has no influence.
|
||||||
unsetenv ("TASKDATA");
|
unsetenv ("TASKDATA");
|
||||||
|
@ -728,6 +728,11 @@ int main (int argc, char** argv)
|
||||||
t.is (convertDuration ("10d"), 10, "valid duration 10d");
|
t.is (convertDuration ("10d"), 10, "valid duration 10d");
|
||||||
|
|
||||||
t.is (convertDuration ("-"), 0, "valid duration -");
|
t.is (convertDuration ("-"), 0, "valid duration -");
|
||||||
|
|
||||||
|
d = Duration ("-4d");
|
||||||
|
t.is ((time_t)d, 4*86400, "-4d == 4*86400");
|
||||||
|
t.ok (d.negative (), "-4d == negative");
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Duration left, right;
|
Duration left, right;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue