mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-08-04 03:18:33 +02:00
E9 - Relational Operators
- Added missing-data handling for the relational operators <, <=, > and >=.
This commit is contained in:
parent
f11c8ee5c6
commit
e0ecb7a2d8
1 changed files with 44 additions and 20 deletions
64
src/E9.cpp
64
src/E9.cpp
|
@ -290,12 +290,18 @@ void E9::operator_lt (Arg& result, Arg& left, Arg& right)
|
||||||
else if (left._type == Arg::type_date ||
|
else if (left._type == Arg::type_date ||
|
||||||
right._type == Arg::type_date)
|
right._type == Arg::type_date)
|
||||||
{
|
{
|
||||||
Date left_date (left._value, _dateformat);
|
if (left._value == "" ||
|
||||||
Date right_date (right._value, _dateformat);
|
right._value == "")
|
||||||
|
result._value = "false";
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Date left_date (left._value, _dateformat);
|
||||||
|
Date right_date (right._value, _dateformat);
|
||||||
|
|
||||||
result._value = (left_date < right_date)
|
result._value = (left_date < right_date)
|
||||||
? "true"
|
? "true"
|
||||||
: "false";
|
: "false";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -323,12 +329,18 @@ void E9::operator_lte (Arg& result, Arg& left, Arg& right)
|
||||||
else if (left._type == Arg::type_date ||
|
else if (left._type == Arg::type_date ||
|
||||||
right._type == Arg::type_date)
|
right._type == Arg::type_date)
|
||||||
{
|
{
|
||||||
Date left_date (left._value, _dateformat);
|
if (left._value == "" ||
|
||||||
Date right_date (right._value, _dateformat);
|
right._value == "")
|
||||||
|
result._value = "false";
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Date left_date (left._value, _dateformat);
|
||||||
|
Date right_date (right._value, _dateformat);
|
||||||
|
|
||||||
result._value = (left_date <= right_date)
|
result._value = (left_date <= right_date)
|
||||||
? "true"
|
? "true"
|
||||||
: "false";
|
: "false";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -356,12 +368,18 @@ void E9::operator_gte (Arg& result, Arg& left, Arg& right)
|
||||||
else if (left._type == Arg::type_date ||
|
else if (left._type == Arg::type_date ||
|
||||||
right._type == Arg::type_date)
|
right._type == Arg::type_date)
|
||||||
{
|
{
|
||||||
Date left_date (left._value, _dateformat);
|
if (left._value == "" ||
|
||||||
Date right_date (right._value, _dateformat);
|
right._value == "")
|
||||||
|
result._value = "false";
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Date left_date (left._value, _dateformat);
|
||||||
|
Date right_date (right._value, _dateformat);
|
||||||
|
|
||||||
result._value = (left_date >= right_date)
|
result._value = (left_date >= right_date)
|
||||||
? "true"
|
? "true"
|
||||||
: "false";
|
: "false";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -388,12 +406,18 @@ void E9::operator_gt (Arg& result, Arg& left, Arg& right)
|
||||||
else if (left._type == Arg::type_date ||
|
else if (left._type == Arg::type_date ||
|
||||||
right._type == Arg::type_date)
|
right._type == Arg::type_date)
|
||||||
{
|
{
|
||||||
Date left_date (left._value, _dateformat);
|
if (left._value == "" ||
|
||||||
Date right_date (right._value, _dateformat);
|
right._value == "")
|
||||||
|
result._value = "false";
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Date left_date (left._value, _dateformat);
|
||||||
|
Date right_date (right._value, _dateformat);
|
||||||
|
|
||||||
result._value = result._value = (left_date > right_date)
|
result._value = result._value = (left_date > right_date)
|
||||||
? "true"
|
? "true"
|
||||||
: "false";
|
: "false";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue