- Fixed bug that required the '%YAML' prologue in a YAML import.
This commit is contained in:
Paul Beckingham 2011-05-13 20:23:32 -04:00
parent 1d10370341
commit 73f72c54c1
3 changed files with 50 additions and 4 deletions

View file

@ -80,9 +80,15 @@ static fileType determineFileType (const std::vector <std::string>& lines)
return task_1_4_3;
}
if (lines.size () > 2 &&
lines[0] == "%YAML 1.1" &&
lines[1] == "---")
if ((lines.size () > 2 &&
lines[0] == "%YAML 1.1" &&
lines[1] == "---")
||
(lines.size () > 3 &&
(lines[0].find ("task:") != std::string::npos ||
lines[1].find ("task:") != std::string::npos ||
lines[2].find ("task:") != std::string::npos ||
lines[3].find ("task:") != std::string::npos)))
{
return yaml;
}
@ -1249,6 +1255,23 @@ static std::string importYAML (const std::vector <std::string>& lines)
t.set (name, value);
}
if (t.size ())
{
// Generate a UUID if not present.
if (t.get ("uuid") == "")
t.set ("uuid", uuid ());
// Add defaults.
decorateTask (t);
t.setStatus (status);
// TODO Fail on UUID collision.
context.tdb.add (t);
t.clear ();
++count;
}
context.tdb.commit ();
context.tdb.unlock ();