Module: wine Branch: master Commit: 71a4a1d43a5b50e5b68b99b16617148a44027334 URL: http://source.winehq.org/git/wine.git/?a=commit;h=71a4a1d43a5b50e5b68b99b166...
Author: Jacek Caban jacek@codeweavers.com Date: Tue Oct 2 10:33:50 2012 +0200
vbscript: Added LTrim() implementation.
---
dlls/vbscript/global.c | 25 +++++++++++++++++++++++-- dlls/vbscript/tests/api.vbs | 12 ++++++++++++ 2 files changed, 35 insertions(+), 2 deletions(-)
diff --git a/dlls/vbscript/global.c b/dlls/vbscript/global.c index e6211b7..6db59ca 100644 --- a/dlls/vbscript/global.c +++ b/dlls/vbscript/global.c @@ -852,8 +852,29 @@ static HRESULT Global_UCase(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VAR
static HRESULT Global_LTrim(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIANT *res) { - FIXME("\n"); - return E_NOTIMPL; + BSTR str, conv_str = NULL; + WCHAR *ptr; + HRESULT hres; + + TRACE("%s\n", debugstr_variant(arg)); + + if(V_VT(arg) == VT_BSTR) { + str = V_BSTR(arg); + }else { + hres = to_string(arg, &conv_str); + if(FAILED(hres)) + return hres; + str = conv_str; + } + + for(ptr = str; *ptr && isspaceW(*ptr); ptr++); + + str = SysAllocString(ptr); + SysFreeString(conv_str); + if(!str) + return E_OUTOFMEMORY; + + return return_bstr(res, str); }
static HRESULT Global_RTrim(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 7553d59..b64043d 100644 --- a/dlls/vbscript/tests/api.vbs +++ b/dlls/vbscript/tests/api.vbs @@ -237,6 +237,18 @@ TestTrim "", "" TestTrim 123, "123" if isEnglishLang then TestTrim true, "True"
+Sub TestLTrim(str, exstr) + Call ok(LTrim(str) = exstr, "LTrim(" & str & ") = " & LTrim(str)) +End Sub + +TestLTrim " test ", "test " +TestLTrim "test ", "test " +TestLTrim " test", "test" +TestLTrim "test", "test" +TestLTrim "", "" +TestLTrim 123, "123" +if isEnglishLang then TestLTrim true, "True" + Sub TestRound(val, exval, vt) Call ok(Round(val) = exval, "Round(" & val & ") = " & Round(val)) Call ok(getVT(Round(val)) = vt, "getVT(Round(" & val & ")) = " & getVT(Round(val)))