Commit 712276c7 authored by Frédéric Delanoy's avatar Frédéric Delanoy Committed by Alexandre Julliard

cmd: Fix IF operands parsing for '==' operator.

parent 3627c289
...@@ -1525,9 +1525,18 @@ void WCMD_if (WCHAR *p, CMD_LIST **cmdList) { ...@@ -1525,9 +1525,18 @@ void WCMD_if (WCHAR *p, CMD_LIST **cmdList) {
WCMD_parameter(p, 2+negate, &command, NULL); WCMD_parameter(p, 2+negate, &command, NULL);
} }
else if ((s = strstrW (p, eqeqW))) { else if ((s = strstrW (p, eqeqW))) {
/* We need to get potential surrounding double quotes, so param1/2 can't be used */
WCHAR *leftPart, *leftPartEnd, *rightPart, *rightPartEnd;
s += 2; s += 2;
test = caseInsensitive ? (!lstrcmpiW(condition, WCMD_parameter(s, 0, NULL, NULL))) WCMD_parameter(p, 0+negate+caseInsensitive, &leftPart, &leftPartEnd);
: (!lstrcmpW (condition, WCMD_parameter(s, 0, NULL, NULL))); WCMD_parameter(p, 1+negate+caseInsensitive, &rightPart, &rightPartEnd);
test = caseInsensitive
? (CompareStringW(LOCALE_SYSTEM_DEFAULT, NORM_IGNORECASE,
leftPart, leftPartEnd-leftPart+1,
rightPart, rightPartEnd-rightPart+1) == CSTR_EQUAL)
: (CompareStringW(LOCALE_SYSTEM_DEFAULT, 0,
leftPart, leftPartEnd-leftPart+1,
rightPart, rightPartEnd-rightPart+1) == CSTR_EQUAL);
WCMD_parameter(s, 1, &command, NULL); WCMD_parameter(s, 1, &command, NULL);
} }
else { else {
......
...@@ -382,15 +382,15 @@ NUL ...@@ -382,15 +382,15 @@ NUL
if/else should work with blocks if/else should work with blocks
if seems to work if seems to work
else seems to work else seems to work
@todo_wine@if seems not to detect /c as parameter if seems not to detect /c as parameter
Testing case sensitivity with and without /i option Testing case sensitivity with and without /i option
if seems to default to case sensitivity if seems to default to case sensitivity
if /i seems to work if /i seems to work
if /I seems to work if /I seems to work
Testing string comparisons Testing string comparisons
equal equal
@todo_wine@non equal non equal
@todo_wine@non equal non equal
equal equal
Testing tabs handling Testing tabs handling
doom doom
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment