Jacek Caban : vbscript: Added interp_eqv implementation.

Alexandre Julliard julliard at winehq.org
Wed Sep 14 12:25:41 CDT 2011


Module: wine
Branch: master
Commit: 89c9a737f4efe25f81793f7198fc70727b30aa92
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=89c9a737f4efe25f81793f7198fc70727b30aa92

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Wed Sep 14 13:00:12 2011 +0200

vbscript: Added interp_eqv implementation.

---

 dlls/vbscript/interp.c       |   22 ++++++++++++++++++++--
 dlls/vbscript/tests/lang.vbs |    4 ++++
 2 files changed, 24 insertions(+), 2 deletions(-)

diff --git a/dlls/vbscript/interp.c b/dlls/vbscript/interp.c
index 8a875ee..1c01933 100644
--- a/dlls/vbscript/interp.c
+++ b/dlls/vbscript/interp.c
@@ -638,8 +638,26 @@ static HRESULT interp_xor(exec_ctx_t *ctx)
 
 static HRESULT interp_eqv(exec_ctx_t *ctx)
 {
-    FIXME("\n");
-    return E_NOTIMPL;
+    variant_val_t r, l;
+    VARIANT v;
+    HRESULT hres;
+
+    TRACE("\n");
+
+    hres = stack_pop_val(ctx, &r);
+    if(FAILED(hres))
+        return hres;
+
+    hres = stack_pop_val(ctx, &l);
+    if(SUCCEEDED(hres)) {
+        hres = VarEqv(l.v, r.v, &v);
+        release_val(&l);
+    }
+    release_val(&r);
+    if(FAILED(hres))
+        return hres;
+
+    return stack_push(ctx, &v);
 }
 
 static HRESULT interp_imp(exec_ctx_t *ctx)
diff --git a/dlls/vbscript/tests/lang.vbs b/dlls/vbscript/tests/lang.vbs
index 329df36..0b24b2d 100644
--- a/dlls/vbscript/tests/lang.vbs
+++ b/dlls/vbscript/tests/lang.vbs
@@ -102,6 +102,10 @@ call ok(not (false xor false), "false xor false is true?")
 call ok(not (true or false xor true), "true or false xor true is true?")
 call ok(not (true xor false or true), "true xor false or true is true?")
 
+call ok(false eqv false, "false does not equal false?")
+call ok(not (false eqv true), "false equals true?")
+call ok(getVT(false eqv null) = "VT_NULL", "getVT(false eqv null) = " & getVT(false eqv null))
+
 x = 3
 Call ok(2+2 = 4, "2+2 = " & (2+2))
 Call ok(false + 6 + true = 5, "false + 6 + true <> 5")




More information about the wine-cvs mailing list