vbscript: Added Len implementation.

This commit is contained in:
Jacek Caban 2012-09-18 12:25:26 +02:00 committed by Alexandre Julliard
parent 20b2d057d2
commit 3fa7860145
2 changed files with 28 additions and 2 deletions

View File

@ -468,8 +468,28 @@ static HRESULT Global_RGB(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIA
static HRESULT Global_Len(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIANT *res)
{
FIXME("\n");
return E_NOTIMPL;
DWORD len;
HRESULT hres;
TRACE("%s\n", debugstr_variant(arg));
if(V_VT(arg) == VT_NULL)
return return_null(res);
if(V_VT(arg) != VT_BSTR) {
BSTR str;
hres = to_string(arg, &str);
if(FAILED(hres))
return hres;
len = SysStringLen(str);
SysFreeString(str);
}else {
len = SysStringLen(V_BSTR(arg));
}
return return_int(res, len);
}
static HRESULT Global_LenB(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIANT *res)

View File

@ -173,4 +173,10 @@ TestLCase 0.123, doubleAsString(0.123)
TestLCase Empty, ""
Call ok(getVT(LCase(Null)) = "VT_NULL", "getVT(LCase(Null)) = " & getVT(LCase(Null)))
Call ok(Len("abc") = 3, "Len(abc) = " & Len("abc"))
Call ok(Len("") = 0, "Len() = " & Len(""))
Call ok(Len(1) = 1, "Len(1) = " & Len(1))
Call ok(isNull(Len(null)), "Len(null) = " & Len(null))
Call ok(Len(empty) = 0, "Len(empty) = " & Len(empty))
Call reportSuccess()