Merge branch '1.9.3' of tasktools.org:task into 1.9.3

This commit is contained in:
Paul Beckingham 2010-10-23 15:03:16 -04:00
commit 191d8ef355
4 changed files with 21 additions and 6 deletions

View file

@ -647,7 +647,7 @@ void Task::validate () const
if (has ("wait"))
{
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.");
}

View file

@ -95,18 +95,32 @@ void handleRecurrence ()
{
if (mask.length () <= i)
{
mask += '-';
changed = true;
Task rec (*t); // Clone the parent.
rec.set ("uuid", uuid ()); // New UUID.
rec.setStatus (Task::pending); // Shiny.
rec.set ("parent", t->get ("uuid")); // Remember mom.
char dueDate[16];
sprintf (dueDate, "%u", (unsigned int) d->toEpoch ());
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];
sprintf (indexMask, "%u", (unsigned int) i);
rec.set ("imask", indexMask); // Store index into mask.