mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-06-26 10:54:26 +02:00
Legacy
- Now maps unsupported duration values to supported values.
This commit is contained in:
parent
140757cfe1
commit
b7c2fd0d9c
3 changed files with 58 additions and 9 deletions
12
src/Task.cpp
12
src/Task.cpp
|
@ -555,6 +555,7 @@ bool Task::is_overdue () const
|
|||
//
|
||||
void Task::parse (const std::string& input)
|
||||
{
|
||||
// TODO Is this simply a 'chomp'?
|
||||
std::string copy;
|
||||
if (input[input.length () - 1] == '\n')
|
||||
copy = input.substr (0, input.length () - 1);
|
||||
|
@ -588,15 +589,8 @@ void Task::parse (const std::string& input)
|
|||
nl.skip (':') &&
|
||||
nl.getQuoted ('"', value))
|
||||
{
|
||||
// Experimental legacy value translation of 'recur:m' --> 'recur:mo'.
|
||||
if (name == "recur" &&
|
||||
digitsOnly (value.substr (0, value.length () - 1)) &&
|
||||
value[value.length () - 1] == 'm')
|
||||
value += 'o';
|
||||
|
||||
// TW-1274, Standardization.
|
||||
if (name == "modification")
|
||||
name = "modified";
|
||||
legacyAttributeMap (name);
|
||||
legacyValueMap (name, value);
|
||||
|
||||
if (name.substr (0, 11) == "annotation_")
|
||||
++annotation_count;
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include <cmake.h>
|
||||
#include <cstddef>
|
||||
#include <sstream>
|
||||
#include <Context.h>
|
||||
#include <text.h>
|
||||
|
@ -161,3 +162,55 @@ std::string legacyCheckForDeprecatedColumns ()
|
|||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
void legacyAttributeMap (std::string& name)
|
||||
{
|
||||
// TW-1274
|
||||
if (name == "modification")
|
||||
name = "modified";
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
void legacyValueMap (const std::string& name, std::string& value)
|
||||
{
|
||||
// One-time initialization value mapping.
|
||||
static std::map <std::string, std::string> mapping;
|
||||
if (mapping.size () == 0)
|
||||
{
|
||||
mapping["hrs"] = "hours";
|
||||
mapping["hrs"] = "hours";
|
||||
mapping["hr"] = "hours";
|
||||
mapping["mins"] = "minutes";
|
||||
mapping["mnths"] = "months";
|
||||
mapping["mths"] = "months";
|
||||
mapping["mth"] = "months";
|
||||
mapping["mos"] = "months";
|
||||
mapping["qrtrs"] = "quarters";
|
||||
mapping["qtrs"] = "quarters";
|
||||
mapping["qtr"] = "quarters";
|
||||
mapping["secs"] = "seconds";
|
||||
mapping["sec"] = "seconds";
|
||||
mapping["s"] = "seconds";
|
||||
mapping["wks"] = "weeks";
|
||||
mapping["wk"] = "weeks";
|
||||
mapping["yrs"] = "years";
|
||||
mapping["yr"] = "years";
|
||||
}
|
||||
|
||||
if (name == "recur")
|
||||
{
|
||||
std::size_t letter = value.find_first_not_of ("0123456789.");
|
||||
if (letter == std::string::npos)
|
||||
letter = 0;
|
||||
|
||||
std::map <std::string, std::string>::iterator i = mapping.find (value.substr (letter));
|
||||
if (i != mapping.end ())
|
||||
{
|
||||
if (letter)
|
||||
value = value.substr (0, letter) + i->second;
|
||||
else
|
||||
value = i->second;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
@ -86,6 +86,8 @@ void legacySortColumnMap (std::string&);
|
|||
std::string legacyCheckForDeprecatedColor ();
|
||||
std::string legacyCheckForDeprecatedVariables ();
|
||||
std::string legacyCheckForDeprecatedColumns ();
|
||||
void legacyAttributeMap (std::string&);
|
||||
void legacyValueMap (const std::string&, std::string&);
|
||||
|
||||
// list template
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue