From: Shuai Meng Subject: [PATCH 1/7] vbscript: Implemented Cos(try 2) Message-Id: <53ECD464.7010604@gmail.com> Date: Thu, 14 Aug 2014 23:23:16 +0800 Change log: Applied cleanly. --- dlls/vbscript/global.c | 10 ++++++++-- dlls/vbscript/tests/api.vbs | 19 +++++++++++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/dlls/vbscript/global.c b/dlls/vbscript/global.c index 933ec08..bba0d07 100644 --- a/dlls/vbscript/global.c +++ b/dlls/vbscript/global.c @@ -669,8 +669,14 @@ static HRESULT Global_Ant(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIA static HRESULT Global_Cos(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIANT *res) { - FIXME("\n"); - return E_NOTIMPL; + HRESULT hres; + double d; + + hres = to_double(arg, &d); + if(FAILED(hres)) + return hres; + + return return_double(res, cos(d)); } static HRESULT Global_Sin(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIANT *res) diff --git a/dlls/vbscript/tests/api.vbs b/dlls/vbscript/tests/api.vbs index c52422f..ff78989 100644 --- a/dlls/vbscript/tests/api.vbs +++ b/dlls/vbscript/tests/api.vbs @@ -993,4 +993,23 @@ Call ok(getVT(ScriptEngineMajorVersion) = "VT_I4", "getVT(ScriptEngineMajorVersi Call ok(getVT(ScriptEngineMinorVersion) = "VT_I4", "getVT(ScriptEngineMinorVersion) = " & getVT(ScriptEngineMinorVersion)) +Call ok(Cos(Empty) = 1, "Cos(Empty) = " & Cos(Empty)) +Call ok(getVT(Cos(Empty)) = "VT_R8", "getVT(Cos(Empty)) = " & getVT(Cos(Empty))) +Call ok(Cos(0) = 1, "Cos(0) = " & Cos(0)) +Call ok(getVT(Cos(0)) = "VT_R8", "getVT(Cos(0)) = " & getVT(Cos(0))) +Call ok(Cos(0) = 1, "Cos(0) = " & Cos(0)) +Call ok(getVT(Cos(0)) = "VT_R8", "getVT(Cos(0)) = " & getVT(Cos(0))) +Call ok(Cos(CSng(0)) = 1, "Cos(CSng(0/3)) = " & Cos(CSng(0/3))) +Call ok(getVT(Cos(CSng(0))) = "VT_R8", "getVT(Cos(CSng(0))) = " & getVT(Cos(CSng(0)))) +Call ok(Cos(0) = 1, "Cos(0) = " & Cos(0)) +Call ok(getVT(Cos(0)) = "VT_R8", "getVT(Cos(0)) = " & getVT(Cos(0))) +Call ok(Cos(CCur(0)) = 1, "Cos(CCur(0)) = " & Cos(CCur(0))) +Call ok(getVT(Cos(CCur(0))) = "VT_R8", "getVT(Cos(CCur(0))) = " & getVT(Cos(CCur(0)))) +Call ok(Cos("0") = 1, "Cos(""0"") = " & Cos("0")) +Call ok(getVT(Cos("0")) = "VT_R8", "getVT(Cos(""0"")) = " & getVT(Cos("0"))) +Call ok(Cos(False) = 1, "Cos(False) = " & Cos(False)) +Call ok(getVT(Cos(False)) = "VT_R8", "getVT(Cos(False)) = " & getVT(Cos(False))) +Call ok(Cos(CByte(0)) = 1, "Cos(CByte(0)) = " & Cos(CByte(0))) +Call ok(getVT(Cos(CByte(0))) = "VT_R8", "getVT(Cos(CByte(0))) = " & getVT(Cos(CByte(0)))) + Call reportSuccess()