mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-08-26 15:47:19 +02:00
E9 operator_equal
- Fixed broken logic in operator_equal. - Fixed typos in op_and.t unit test. - Fixed descriptions in op_or.t.
This commit is contained in:
parent
e0ecb7a2d8
commit
7a778ba317
3 changed files with 26 additions and 33 deletions
23
src/E9.cpp
23
src/E9.cpp
|
@ -457,18 +457,17 @@ void E9::operator_equal (
|
||||||
result._value = "false";
|
result._value = "false";
|
||||||
result._type = Arg::type_bool;
|
result._type = Arg::type_bool;
|
||||||
|
|
||||||
// 'project' and 'recur' attributes are matched leftmost.
|
// 'project' is matched leftmost.
|
||||||
if (left._raw == "project" || left._raw == "recur")
|
if (left._raw == "project")
|
||||||
{
|
{
|
||||||
coerce (left, Arg::type_string);
|
int right_len = right._value.length ();
|
||||||
coerce (right, Arg::type_string);
|
if (compare (right._value,
|
||||||
|
(right_len < left._value.length ()
|
||||||
if (right._value.length () <= left._value.length () &&
|
? left._value.substr (0, right_len)
|
||||||
compare (right._value,
|
: left._value),
|
||||||
left._value.substr (0, right._value.length ()),
|
|
||||||
case_sensitive))
|
case_sensitive))
|
||||||
{
|
{
|
||||||
result._raw = "true";
|
result._value = "true";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -493,12 +492,6 @@ void E9::operator_equal (
|
||||||
result._value = compare (left._value, right._value, case_sensitive)
|
result._value = compare (left._value, right._value, case_sensitive)
|
||||||
? "true"
|
? "true"
|
||||||
: "false";
|
: "false";
|
||||||
|
|
||||||
if (left._value == right._value)
|
|
||||||
{
|
|
||||||
result._value = "true";
|
|
||||||
result._type = Arg::type_bool;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// std::cout << "# " << left << " <operator_equal> " << right << " --> " << result << "\n";
|
// std::cout << "# " << left << " <operator_equal> " << right << " --> " << result << "\n";
|
||||||
|
|
|
@ -76,7 +76,7 @@ unlike ($output, qr/two/, 'ls project:A priority:H --> !two');
|
||||||
unlike ($output, qr/three/, 'ls project:A priority:H --> !three');
|
unlike ($output, qr/three/, 'ls project:A priority:H --> !three');
|
||||||
unlike ($output, qr/four/, 'ls project:A priority:H --> !four');
|
unlike ($output, qr/four/, 'ls project:A priority:H --> !four');
|
||||||
|
|
||||||
$output = qx{../src/task rc:op.rc ls project=A and priotity!=H};
|
$output = qx{../src/task rc:op.rc ls project=A and priority!=H};
|
||||||
unlike ($output, qr/one/, 'ls project:A priority:H --> !one');
|
unlike ($output, qr/one/, 'ls project:A priority:H --> !one');
|
||||||
like ($output, qr/two/, 'ls project:A priority:H --> two');
|
like ($output, qr/two/, 'ls project:A priority:H --> two');
|
||||||
unlike ($output, qr/three/, 'ls project:A priority:H --> !three');
|
unlike ($output, qr/three/, 'ls project:A priority:H --> !three');
|
||||||
|
|
32
test/op_or.t
32
test/op_or.t
|
@ -47,28 +47,28 @@ qx{../src/task rc:op.rc add four };
|
||||||
|
|
||||||
# Test the 'or' operator.
|
# Test the 'or' operator.
|
||||||
my $output = qx{../src/task rc:op.rc ls project:A or priority:H};
|
my $output = qx{../src/task rc:op.rc ls project:A or priority:H};
|
||||||
like ($output, qr/one/, 'ls project:A priority:H --> one');
|
like ($output, qr/one/, 'ls project:A or priority:H --> one');
|
||||||
like ($output, qr/two/, 'ls project:A priority:H --> two');
|
like ($output, qr/two/, 'ls project:A or priority:H --> two');
|
||||||
like ($output, qr/three/, 'ls project:A priority:H --> three');
|
like ($output, qr/three/, 'ls project:A or priority:H --> three');
|
||||||
unlike ($output, qr/four/, 'ls project:A priority:H --> !four');
|
unlike ($output, qr/four/, 'ls project:A or priority:H --> !four');
|
||||||
|
|
||||||
$output = qx{../src/task rc:op.rc ls project:A or priority=H};
|
$output = qx{../src/task rc:op.rc ls project:A or priority=H};
|
||||||
like ($output, qr/one/, 'ls project:A priority=H --> one');
|
like ($output, qr/one/, 'ls project:A or priority=H --> one');
|
||||||
like ($output, qr/two/, 'ls project:A priority=H --> two');
|
like ($output, qr/two/, 'ls project:A or priority=H --> two');
|
||||||
like ($output, qr/three/, 'ls project:A priority=H --> three');
|
like ($output, qr/three/, 'ls project:A or priority=H --> three');
|
||||||
unlike ($output, qr/four/, 'ls project:A priority=H --> !four');
|
unlike ($output, qr/four/, 'ls project:A or priority=H --> !four');
|
||||||
|
|
||||||
$output = qx{../src/task rc:op.rc ls project=A or priority:H};
|
$output = qx{../src/task rc:op.rc ls project=A or priority:H};
|
||||||
like ($output, qr/one/, 'ls project=A priority:H --> one');
|
like ($output, qr/one/, 'ls project=A or priority:H --> one');
|
||||||
like ($output, qr/two/, 'ls project=A priority:H --> two');
|
like ($output, qr/two/, 'ls project=A or priority:H --> two');
|
||||||
like ($output, qr/three/, 'ls project=A priority:H --> three');
|
like ($output, qr/three/, 'ls project=A or priority:H --> three');
|
||||||
unlike ($output, qr/four/, 'ls project=A priority:H --> !four');
|
unlike ($output, qr/four/, 'ls project=A or priority:H --> !four');
|
||||||
|
|
||||||
$output = qx{../src/task rc:op.rc ls project=A or priority=H};
|
$output = qx{../src/task rc:op.rc ls project=A or priority=H};
|
||||||
like ($output, qr/one/, 'ls project=A priority=H --> one');
|
like ($output, qr/one/, 'ls project=A or priority=H --> one');
|
||||||
like ($output, qr/two/, 'ls project=A priority=H --> two');
|
like ($output, qr/two/, 'ls project=A or priority=H --> two');
|
||||||
like ($output, qr/three/, 'ls project=A priority=H --> three');
|
like ($output, qr/three/, 'ls project=A or priority=H --> three');
|
||||||
unlike ($output, qr/four/, 'ls project=A priority=H --> !four');
|
unlike ($output, qr/four/, 'ls project=A or priority=H --> !four');
|
||||||
|
|
||||||
# Cleanup.
|
# Cleanup.
|
||||||
unlink 'pending.data';
|
unlink 'pending.data';
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue