From: Shuai Meng Subject: [PATCH 3/7] vbscript: Implemented Tan(try 2) Message-Id: <53ECD49D.2040806@gmail.com> Date: Thu, 14 Aug 2014 23:24:13 +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 7321258..440dbb3 100644 --- a/dlls/vbscript/global.c +++ b/dlls/vbscript/global.c @@ -693,8 +693,14 @@ static HRESULT Global_Sin(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIA static HRESULT Global_Tan(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, tan(d)); } static HRESULT Global_Exp(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 91ccc66..7eed379 100644 --- a/dlls/vbscript/tests/api.vbs +++ b/dlls/vbscript/tests/api.vbs @@ -1031,4 +1031,23 @@ Call ok(getVT(Sin(False)) = "VT_R8", "getVT(Sin(False)) = " & getVT(Sin(False))) Call ok(Sin(CByte(0)) = 0, "Sin(CByte(0)) = " & Sin(CByte(0))) Call ok(getVT(Sin(CByte(0))) = "VT_R8", "getVT(Sin(CByte(0))) = " & getVT(Sin(CByte(0)))) +Call ok(Tan(Empty) = 0, "Tan(Empty) = " & Tan(Empty)) +Call ok(getVT(Tan(Empty)) = "VT_R8", "getVT(Tan(Empty)) = " & getVT(Tan(Empty))) +Call ok(Tan(0) = 0, "Tan(0) = " & Tan(0)) +Call ok(getVT(Tan(0)) = "VT_R8", "getVT(Tan(0)) = " & getVT(Tan(0))) +Call ok(Tan(0) = 0, "Tan(0) = " & Tan(0)) +Call ok(getVT(Tan(0)) = "VT_R8", "getVT(Tan(0)) = " & getVT(Tan(0))) +Call ok(Tan(CSng(0)) = 0, "Tan(CSng(0/3)) = " & Tan(CSng(0/3))) +Call ok(getVT(Tan(CSng(0))) = "VT_R8", "getVT(Tan(CSng(0))) = " & getVT(Tan(CSng(0)))) +Call ok(Tan(0) = 0, "Tan(0) = " & Tan(0)) +Call ok(getVT(Tan(0)) = "VT_R8", "getVT(Tan(0)) = " & getVT(Tan(0))) +Call ok(Tan(CCur(0)) = 0, "Tan(CCur(0)) = " & Tan(CCur(0))) +Call ok(getVT(Tan(CCur(0))) = "VT_R8", "getVT(Tan(CCur(0))) = " & getVT(Tan(CCur(0)))) +Call ok(Tan("0") = 0, "Tan(""0"") = " & Tan("0")) +Call ok(getVT(Tan("0")) = "VT_R8", "getVT(Tan(""0"")) = " & getVT(Tan("0"))) +Call ok(Tan(False) = 0, "Tan(False) = " & Tan(False)) +Call ok(getVT(Tan(False)) = "VT_R8", "getVT(Tan(False)) = " & getVT(Tan(False))) +Call ok(Tan(CByte(0)) = 0, "Tan(CByte(0)) = " & Tan(CByte(0))) +Call ok(getVT(Tan(CByte(0))) = "VT_R8", "getVT(Tan(CByte(0))) = " & getVT(Tan(CByte(0)))) + Call reportSuccess()