mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-06-26 10:54:26 +02:00
Bug #427 - Task edit can't correctly parse annotations with times
Task edit was assuming a space as separator between the date and text field of an annotation. As the dateformat for an annotation now can be more flexible incl. time and spaces, task couldn't parse the annotation lines of task edit correctly anymore. The bug was fixed by introducing a new separator ' --' between the date and text parts of an annotation.
This commit is contained in:
parent
9a50c0b963
commit
1b2cfd427c
1 changed files with 6 additions and 6 deletions
12
src/edit.cpp
12
src/edit.cpp
|
@ -156,8 +156,8 @@ static std::string formatTask (Task task)
|
|||
<< " Parent: " << task.get ("parent") << std::endl
|
||||
<< " Foreground color: " << task.get ("fg") << std::endl
|
||||
<< " Background color: " << task.get ("bg") << std::endl
|
||||
<< "# Annotations look like this: <date> <text>, and there can be any number" << std::endl
|
||||
<< "# of them." << std::endl;
|
||||
<< "# Annotations look like this: <date> -- <text> and there can be any number of them" << std::endl
|
||||
<< "# ' -- ' is the separator between the date and text field. It should not be removed" << std::endl;
|
||||
|
||||
std::vector <Att> annotations;
|
||||
task.getAnnotations (annotations);
|
||||
|
@ -165,11 +165,11 @@ static std::string formatTask (Task task)
|
|||
{
|
||||
Date dt (::atoi (anno->name ().substr (11).c_str ()));
|
||||
before << " Annotation: " << dt.toString (context.config.get ("dateformat.annotation"))
|
||||
<< " " << anno->value () << std::endl;
|
||||
<< " -- " << anno->value () << std::endl;
|
||||
}
|
||||
|
||||
Date now;
|
||||
before << " Annotation: " << now.toString (context.config.get ("dateformat.annotation")) << " " << std::endl
|
||||
before << " Annotation: " << now.toString (context.config.get ("dateformat.annotation")) << " -- " << std::endl
|
||||
<< "# End" << std::endl;
|
||||
|
||||
return before.str ();
|
||||
|
@ -499,7 +499,7 @@ static void parseTask (Task& task, const std::string& after)
|
|||
found,
|
||||
eol - found), "\t ");
|
||||
|
||||
std::string::size_type gap = value.find (" ");
|
||||
std::string::size_type gap = value.find (" -- ");
|
||||
if (gap != std::string::npos)
|
||||
{
|
||||
Date when (value.substr (0, gap), context.config.get ("dateformat.annotation"));
|
||||
|
@ -511,7 +511,7 @@ static void parseTask (Task& task, const std::string& after)
|
|||
|
||||
std::stringstream name;
|
||||
name << "annotation_" << when.toEpoch ();
|
||||
std::string text = trim (value.substr (gap), "\t ");
|
||||
std::string text = trim (value.substr (gap + 4), "\t ");
|
||||
annotations.push_back (Att (name.str (), text));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue