Module: wine Branch: master Commit: be583662d45b84693b71d44d2ecf6ef39fdf29b9 URL: http://source.winehq.org/git/wine.git/?a=commit;h=be583662d45b84693b71d44d2e...
Author: Jacek Caban jacek@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