mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-06-26 10:54:26 +02:00
JSON encode/decode string UDAs
Previously, multiline string UDAs were not preserved when editing a task via 'task X edit'. String UDAs are now JSON encoded/decoded during the edit cycle to allow preservation of multiline
This commit is contained in:
parent
62944f3c7d
commit
2ac1787dae
1 changed files with 8 additions and 1 deletions
|
@ -298,7 +298,12 @@ std::string CmdEdit::formatTask (Task task, const std::string& dateformat)
|
|||
|
||||
std::string type = Context::getContext ().config.get ("uda." + uda + ".type");
|
||||
if (type == "string" || type == "numeric")
|
||||
before << " UDA " << uda << ": " << padding << task.get (uda) << '\n';
|
||||
{
|
||||
auto value = task.get (uda);
|
||||
if (type == "string")
|
||||
value = json::encode (value);
|
||||
before << " UDA " << uda << ": " << padding << value << '\n';
|
||||
}
|
||||
else if (type == "date")
|
||||
before << " UDA " << uda << ": " << padding << formatDate (task, uda, dateformat) << '\n';
|
||||
else if (type == "duration")
|
||||
|
@ -662,6 +667,8 @@ void CmdEdit::parseTask (Task& task, const std::string& after, const std::string
|
|||
if (type != "")
|
||||
{
|
||||
auto value = findValue (after, "\n UDA " + col.first + ":");
|
||||
if (type == "string")
|
||||
value = json::decode (value);
|
||||
if ((task.get (col.first) != value) && (type != "date" ||
|
||||
(task.get (col.first) != Datetime (value, dateformat).toEpochString ())) &&
|
||||
(type != "duration" ||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue