Module: wine Branch: master Commit: fcc9b7171a81b3257d0803ab7258be3ff98cd182 URL: https://source.winehq.org/git/wine.git/?a=commit;h=fcc9b7171a81b3257d0803ab7...
Author: Jacek Caban jacek@codeweavers.com Date: Mon Sep 30 20:19:31 2019 +0200
vbscript: Add Day function implementation.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/vbscript/global.c | 22 ++++++++++++++++++++-- dlls/vbscript/tests/api.vbs | 3 +++ 2 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/dlls/vbscript/global.c b/dlls/vbscript/global.c index 9b2ce3d4a7..5287e27f67 100644 --- a/dlls/vbscript/global.c +++ b/dlls/vbscript/global.c @@ -198,6 +198,19 @@ static HRESULT to_string(VARIANT *v, BSTR *ret) return S_OK; }
+static HRESULT to_system_time(VARIANT *v, SYSTEMTIME *st) +{ + VARIANT date; + HRESULT hres; + + V_VT(&date) = VT_EMPTY; + hres = VariantChangeType(&date, v, 0, VT_DATE); + if(FAILED(hres)) + return hres; + + return VariantTimeToSystemTime(V_DATE(&date), st); +} + static HRESULT set_object_site(script_ctx_t *ctx, IUnknown *obj) { IObjectWithSite *obj_site; @@ -1596,8 +1609,13 @@ static HRESULT Global_Time(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARI
static HRESULT Global_Day(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIANT *res) { - FIXME("\n"); - return E_NOTIMPL; + SYSTEMTIME st; + HRESULT hres; + + TRACE("(%s)\n", debugstr_variant(arg)); + + hres = to_system_time(arg, &st); + return FAILED(hres) ? hres : return_short(res, st.wDay); }
static HRESULT Global_Month(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 6cc4984bfd..9378df752a 100644 --- a/dlls/vbscript/tests/api.vbs +++ b/dlls/vbscript/tests/api.vbs @@ -1442,6 +1442,9 @@ Call ok(getVT(Log(CByte(2))) = "VT_R8", "getVT(Log(CByte(2))) = " & getVT(Log(CB Call ok(getVT(Date) = "VT_DATE", "getVT(Date) = " & getVT(Date)) Call ok(getVT(Time) = "VT_DATE", "getVT(Time) = " & getVT(Time))
+Call ok(getVT(Day(now)) = "VT_I2", "getVT(Day(now)) = " & getVT(Day(now))) +Call ok(Day(2) = 1, "Day(time) = " & Day(2)) + Sub testRGBError(arg1, arg2, arg3, error_num) on error resume next Dim x