Jacek Caban : vbscript: Support using function return value in expressions.

Alexandre Julliard julliard at winehq.org
Fri Nov 1 15:37:48 CDT 2019


Module: wine
Branch: master
Commit: ef737598e6b029a1af6c61e4cf8905c48ff63d23
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=ef737598e6b029a1af6c61e4cf8905c48ff63d23

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Fri Nov  1 17:55:31 2019 +0100

vbscript: Support using function return value in expressions.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/vbscript/interp.c       | 5 ++---
 dlls/vbscript/tests/lang.vbs | 9 +++++++++
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/dlls/vbscript/interp.c b/dlls/vbscript/interp.c
index 8568b7098c..7339f42aba 100644
--- a/dlls/vbscript/interp.c
+++ b/dlls/vbscript/interp.c
@@ -104,9 +104,8 @@ static HRESULT lookup_identifier(exec_ctx_t *ctx, BSTR name, vbdisp_invoke_type_
     DISPID id;
     HRESULT hres;
 
-    if(invoke_type == VBDISP_LET
-            && (ctx->func->type == FUNC_FUNCTION || ctx->func->type == FUNC_PROPGET || ctx->func->type == FUNC_DEFGET)
-            && !wcsicmp(name, ctx->func->name)) {
+    if((ctx->func->type == FUNC_FUNCTION || ctx->func->type == FUNC_PROPGET || ctx->func->type == FUNC_DEFGET)
+       && !wcsicmp(name, ctx->func->name)) {
         ref->type = REF_VAR;
         ref->u.v = &ctx->ret_val;
         return S_OK;
diff --git a/dlls/vbscript/tests/lang.vbs b/dlls/vbscript/tests/lang.vbs
index 5d8e02a7ab..4623a08e2b 100644
--- a/dlls/vbscript/tests/lang.vbs
+++ b/dlls/vbscript/tests/lang.vbs
@@ -1621,4 +1621,13 @@ with new TestPropSyntax
      ok .prop = 1, ".prop = "&.prop
 end with
 
+function testsetresult(x, y)
+    set testsetresult = new TestPropSyntax
+    testsetresult.prop = x
+    y = testsetresult.prop + 1
+end function
+
+set x = testsetresult(1, 2)
+ok x.prop = 1, "x.prop = " & x.prop
+
 reportSuccess()




More information about the wine-cvs mailing list