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