Jacek Caban : vbscript: Reset error number on error mode change.

Alexandre Julliard julliard at winehq.org
Mon Jun 16 12:37:48 CDT 2014


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Fri Jun 13 17:27:44 2014 +0200

vbscript: Reset error number on error mode change.

---

 dlls/vbscript/interp.c        |    1 +
 dlls/vbscript/tests/error.vbs |   14 ++++++++++++++
 2 files changed, 15 insertions(+)

diff --git a/dlls/vbscript/interp.c b/dlls/vbscript/interp.c
index 3b5f78c..10641db 100644
--- a/dlls/vbscript/interp.c
+++ b/dlls/vbscript/interp.c
@@ -1276,6 +1276,7 @@ static HRESULT interp_errmode(exec_ctx_t *ctx)
     TRACE("%d\n", err_mode);
 
     ctx->resume_next = err_mode;
+    ctx->script->err_number = S_OK;
     return S_OK;
 }
 
diff --git a/dlls/vbscript/tests/error.vbs b/dlls/vbscript/tests/error.vbs
index afe9da2..830344c 100644
--- a/dlls/vbscript/tests/error.vbs
+++ b/dlls/vbscript/tests/error.vbs
@@ -284,6 +284,20 @@ x = 0
 call callTestOnError(false)
 call ok(x = 1, "x = " & x)
 
+sub testOnErrorClear()
+    on error resume next
+    call ok(Err.Number = 0, "Err.Number = " & Err.Number)
+    throwInt(E_TESTERROR)
+    call ok(Err.Number = E_TESTERROR, "Err.Number = " & Err.Number)
+
+    on error goto 0
+    call ok(Err.Number = 0, "Err.Number = " & Err.Number)
+    x = "ok"
+end sub
+
+call testOnErrorClear()
+call ok(x = "ok", "testOnErrorClear failed")
+
 sub testForEachError()
     on error resume next
 




More information about the wine-cvs mailing list