Merge branch '1.9.3' of tasktools.org:task into 1.9.3
This commit is contained in:
2
AUTHORS
2
AUTHORS
@@ -30,6 +30,7 @@ The following submitted code, packages or analysis, and deserve special thanks:
|
|||||||
Kevin Owens
|
Kevin Owens
|
||||||
Mick Koch
|
Mick Koch
|
||||||
Kathryn Andersen
|
Kathryn Andersen
|
||||||
|
Alexander Schremmer
|
||||||
|
|
||||||
Thanks to the following, who submitted detailed bug reports and excellent
|
Thanks to the following, who submitted detailed bug reports and excellent
|
||||||
suggestions:
|
suggestions:
|
||||||
@@ -59,6 +60,5 @@ suggestions:
|
|||||||
Seneca Cunningham
|
Seneca Cunningham
|
||||||
Dirk Deimeke
|
Dirk Deimeke
|
||||||
Michelle Crane
|
Michelle Crane
|
||||||
Alexander Schremmer
|
|
||||||
Elizabeth Maxson
|
Elizabeth Maxson
|
||||||
|
|
||||||
|
|||||||
@@ -8,8 +8,9 @@
|
|||||||
as relative to the current date/time.
|
as relative to the current date/time.
|
||||||
+ Added feature #189, that records the start and stop times as an
|
+ Added feature #189, that records the start and stop times as an
|
||||||
annotation for a task.
|
annotation for a task.
|
||||||
+ Added features #244, #272, #274 and #275, which support import and
|
+ Added features #244, #272, #273, #274, #275 and #279, which support
|
||||||
export of YAML 1.1. YAML is now the default export format for task.
|
import and export of YAML 1.1. YAML is now the default export format
|
||||||
|
for task.
|
||||||
+ Added feature #391, now the 'task color legend' command will show
|
+ Added feature #391, now the 'task color legend' command will show
|
||||||
samples of all the defined colors and color rules from your .taskrc
|
samples of all the defined colors and color rules from your .taskrc
|
||||||
and theme.
|
and theme.
|
||||||
|
|||||||
@@ -647,7 +647,7 @@ void Task::validate () const
|
|||||||
if (has ("wait"))
|
if (has ("wait"))
|
||||||
{
|
{
|
||||||
Date wait (::atoi (get ("wait").c_str ()));
|
Date wait (::atoi (get ("wait").c_str ()));
|
||||||
if (wait > due)
|
if (wait < due)
|
||||||
throw std::string ("A 'wait' date must be after a 'due' date.");
|
throw std::string ("A 'wait' date must be after a 'due' date.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -95,18 +95,32 @@ void handleRecurrence ()
|
|||||||
{
|
{
|
||||||
if (mask.length () <= i)
|
if (mask.length () <= i)
|
||||||
{
|
{
|
||||||
mask += '-';
|
|
||||||
changed = true;
|
changed = true;
|
||||||
|
|
||||||
Task rec (*t); // Clone the parent.
|
Task rec (*t); // Clone the parent.
|
||||||
rec.set ("uuid", uuid ()); // New UUID.
|
rec.set ("uuid", uuid ()); // New UUID.
|
||||||
rec.setStatus (Task::pending); // Shiny.
|
|
||||||
rec.set ("parent", t->get ("uuid")); // Remember mom.
|
rec.set ("parent", t->get ("uuid")); // Remember mom.
|
||||||
|
|
||||||
char dueDate[16];
|
char dueDate[16];
|
||||||
sprintf (dueDate, "%u", (unsigned int) d->toEpoch ());
|
sprintf (dueDate, "%u", (unsigned int) d->toEpoch ());
|
||||||
rec.set ("due", dueDate); // Store generated due date.
|
rec.set ("due", dueDate); // Store generated due date.
|
||||||
|
|
||||||
|
if (t->get ("wait").size())
|
||||||
|
{
|
||||||
|
Date old_wait (atoi (t->get ("wait").c_str ()));
|
||||||
|
Date old_due (atoi (t->get ("due").c_str ()));
|
||||||
|
Date due (*d);
|
||||||
|
sprintf (dueDate, "%u", (unsigned int) (due + (old_wait - old_due)).toEpoch ());
|
||||||
|
rec.set ("wait", dueDate);
|
||||||
|
rec.setStatus (Task::waiting);
|
||||||
|
mask += 'W';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mask += '-';
|
||||||
|
rec.setStatus (Task::pending);
|
||||||
|
}
|
||||||
|
|
||||||
char indexMask[12];
|
char indexMask[12];
|
||||||
sprintf (indexMask, "%u", (unsigned int) i);
|
sprintf (indexMask, "%u", (unsigned int) i);
|
||||||
rec.set ("imask", indexMask); // Store index into mask.
|
rec.set ("imask", indexMask); // Store index into mask.
|
||||||
|
|||||||
Reference in New Issue
Block a user