vbscript: Support VT_BSTR in stack_pop_bool.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51911
Signed-off-by: Robert Wilhelm <robert.wilhelm@gmx.net>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
(cherry picked from commit b9e38a41ea
)
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
This commit is contained in:
parent
f560fad07d
commit
d4024e428b
|
@ -416,6 +416,7 @@ static int stack_pop_bool(exec_ctx_t *ctx, BOOL *b)
|
|||
{
|
||||
variant_val_t val;
|
||||
HRESULT hres;
|
||||
VARIANT_BOOL vb;
|
||||
|
||||
hres = stack_pop_val(ctx, &val);
|
||||
if(FAILED(hres))
|
||||
|
@ -436,6 +437,12 @@ static int stack_pop_bool(exec_ctx_t *ctx, BOOL *b)
|
|||
case VT_I4:
|
||||
*b = V_I4(val.v);
|
||||
break;
|
||||
case VT_BSTR:
|
||||
hres = VarBoolFromStr(V_BSTR(val.v), ctx->script->lcid, 0, &vb);
|
||||
if(FAILED(hres))
|
||||
return hres;
|
||||
*b=vb;
|
||||
break;
|
||||
default:
|
||||
FIXME("unsupported for %s\n", debugstr_variant(val.v));
|
||||
release_val(&val);
|
||||
|
|
|
@ -357,6 +357,22 @@ while empty
|
|||
ok false, "while empty executed"
|
||||
wend
|
||||
|
||||
x = 0
|
||||
if "0" then
|
||||
ok false, "if ""0"" executed"
|
||||
else
|
||||
x = 1
|
||||
end if
|
||||
Call ok(x = 1, "if ""0"" else not executed")
|
||||
|
||||
x = 0
|
||||
if "-1" then
|
||||
x = 1
|
||||
else
|
||||
ok false, "if ""-1"" else executed"
|
||||
end if
|
||||
Call ok(x = 1, "if ""-1"" not executed")
|
||||
|
||||
x = 0
|
||||
WHILE x < 3 : x = x + 1 : Wend
|
||||
Call ok(x = 3, "x not equal to 3")
|
||||
|
|
Loading…
Reference in New Issue