wbemprox: Support NULL tests that use equality operators.

Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Hans Leidekker 2017-11-20 15:07:03 +01:00 committed by Alexandre Julliard
parent 92e999f34b
commit b5633cc69b
2 changed files with 31 additions and 1 deletions

View File

@ -106,8 +106,14 @@ static void test_select( IWbemServices *services )
{'S','E','L','E','C','T',' ','*',' ','F','R','O','M',' ', {'S','E','L','E','C','T',' ','*',' ','F','R','O','M',' ',
'W','i','n','3','2','_','V','i','d','e','o','C','o','n','t','r','o','l','l','e','r',' ','w','h','e','r','e',' ', 'W','i','n','3','2','_','V','i','d','e','o','C','o','n','t','r','o','l','l','e','r',' ','w','h','e','r','e',' ',
'a','v','a','i','l','a','b','i','l','i','t','y',' ','=',' ','\'','3','\'',0}; 'a','v','a','i','l','a','b','i','l','i','t','y',' ','=',' ','\'','3','\'',0};
static const WCHAR query12[] =
{'S','E','L','E','C','T',' ','*',' ','F','R','O','M',' ','W','i','n','3','2','_','B','I','O','S',
' ','W','H','E','R','E',' ','N','A','M','E',' ','<','>',' ','N','U','L','L', 0};
static const WCHAR query13[] =
{'S','E','L','E','C','T',' ','*',' ','F','R','O','M',' ','W','i','n','3','2','_','B','I','O','S',
' ','W','H','E','R','E',' ','N','U','L','L',' ','=',' ','N','A','M','E', 0};
static const WCHAR *test[] = { query1, query2, query3, query4, query5, query6, query7, query8, query9, query10, static const WCHAR *test[] = { query1, query2, query3, query4, query5, query6, query7, query8, query9, query10,
query11 }; query11, query12, query13 };
HRESULT hr; HRESULT hr;
IEnumWbemClassObject *result; IEnumWbemClassObject *result;
BSTR wql = SysAllocString( wqlW ); BSTR wql = SysAllocString( wqlW );

View File

@ -414,6 +414,30 @@ expr:
if (!$$) if (!$$)
YYABORT; YYABORT;
} }
| prop_val TK_EQ TK_NULL
{
$$ = expr_unary( ctx, $1, OP_ISNULL );
if (!$$)
YYABORT;
}
| TK_NULL TK_EQ prop_val
{
$$ = expr_unary( ctx, $3, OP_ISNULL );
if (!$$)
YYABORT;
}
| prop_val TK_NE TK_NULL
{
$$ = expr_unary( ctx, $1, OP_NOTNULL );
if (!$$)
YYABORT;
}
| TK_NULL TK_NE prop_val
{
$$ = expr_unary( ctx, $3, OP_NOTNULL );
if (!$$)
YYABORT;
}
; ;
string_val: string_val: