vbscript: Added Trim() implementation.

This commit is contained in:
Jacek Caban 2012-10-02 10:33:30 +02:00 committed by Alexandre Julliard
parent 88f14bb590
commit 3ea9a170c0
2 changed files with 36 additions and 2 deletions

View File

@ -864,8 +864,30 @@ static HRESULT Global_RTrim(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VAR
static HRESULT Global_Trim(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIANT *res)
{
FIXME("\n");
return E_NOTIMPL;
BSTR str, conv_str = NULL;
WCHAR *begin_ptr, *end_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(begin_ptr = str; *begin_ptr && isspaceW(*begin_ptr); begin_ptr++);
for(end_ptr = str+SysStringLen(str); end_ptr-1 > begin_ptr && isspaceW(*(end_ptr-1)); end_ptr--);
str = SysAllocStringLen(begin_ptr, end_ptr-begin_ptr);
SysFreeString(conv_str);
if(!str)
return E_OUTOFMEMORY;
return return_bstr(res, str);
}
static HRESULT Global_Space(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIANT *res)

View File

@ -225,6 +225,18 @@ TestRight "test", 0, ""
TestRight 123, 2, "23"
if isEnglishLang then TestRight true, 2, "ue"
Sub TestTrim(str, exstr)
Call ok(Trim(str) = exstr, "Trim(" & str & ") = " & Trim(str))
End Sub
TestTrim " test ", "test"
TestTrim "test ", "test"
TestTrim " test", "test"
TestTrim "test", "test"
TestTrim "", ""
TestTrim 123, "123"
if isEnglishLang then TestTrim 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)))