mirror of
git://source.winehq.org/git/wine.git
synced 2024-09-15 03:04:47 +00:00
vbscript: Implement FormatNumber().
This commit is contained in:
parent
b0915dfb57
commit
fffdb2b2b9
|
@ -2945,10 +2945,36 @@ static HRESULT Global_ScriptEngineBuildVersion(BuiltinDisp *This, VARIANT *arg,
|
|||
return return_int(res, VBSCRIPT_BUILD_VERSION);
|
||||
}
|
||||
|
||||
static HRESULT Global_FormatNumber(BuiltinDisp *This, VARIANT *arg, unsigned args_cnt, VARIANT *res)
|
||||
static HRESULT Global_FormatNumber(BuiltinDisp *This, VARIANT *args, unsigned args_cnt, VARIANT *res)
|
||||
{
|
||||
FIXME("\n");
|
||||
return E_NOTIMPL;
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
int num_dig, inc_lead, use_parens, group;
|
||||
} s;
|
||||
int val[4];
|
||||
} int_args = { .s.num_dig = -1, .s.inc_lead = -2, .s.use_parens = -2, .s.group = -2 };
|
||||
HRESULT hres;
|
||||
BSTR str;
|
||||
int i;
|
||||
|
||||
TRACE("\n");
|
||||
|
||||
assert(1 <= args_cnt && args_cnt <= 5);
|
||||
|
||||
for (i = 1; i < args_cnt; ++i)
|
||||
{
|
||||
if (V_VT(args+i) == VT_ERROR) continue;
|
||||
if (V_VT(args+i) == VT_NULL) return MAKE_VBSERROR(VBSE_ILLEGAL_NULL_USE);
|
||||
if (FAILED(hres = to_int(args+i, &int_args.val[i-1]))) return hres;
|
||||
}
|
||||
|
||||
hres = VarFormatNumber(args, int_args.s.num_dig, int_args.s.inc_lead, int_args.s.use_parens,
|
||||
int_args.s.group, 0, &str);
|
||||
if (FAILED(hres)) return hres;
|
||||
|
||||
return return_bstr(res, str);
|
||||
}
|
||||
|
||||
static HRESULT Global_FormatCurrency(BuiltinDisp *This, VARIANT *args, unsigned args_cnt, VARIANT *res)
|
||||
|
|
|
@ -2436,4 +2436,40 @@ end sub
|
|||
call testFormatDateTime()
|
||||
call testFormatDateTimeError()
|
||||
|
||||
sub testFormatNumberError()
|
||||
on error resume next
|
||||
dim x
|
||||
call Err.clear()
|
||||
x = FormatNumber(null)
|
||||
call ok(Err.number = 13, "Err.number = " & Err.number)
|
||||
call ok(getVT(x) = "VT_EMPTY*", "getVT = " & getVT(x))
|
||||
call Err.clear()
|
||||
x = FormatNumber(.10,null)
|
||||
call ok(Err.number = 94, "Err.number = " & Err.number)
|
||||
call ok(getVT(x) = "VT_EMPTY*", "getVT = " & getVT(x))
|
||||
call Err.clear()
|
||||
x = FormatNumber(.10,0,null)
|
||||
call ok(Err.number = 94, "Err.number = " & Err.number)
|
||||
call ok(getVT(x) = "VT_EMPTY*", "getVT = " & getVT(x))
|
||||
call Err.clear()
|
||||
x = FormatNumber(.10,0,0,null)
|
||||
call ok(Err.number = 94, "Err.number = " & Err.number)
|
||||
call ok(getVT(x) = "VT_EMPTY*", "getVT = " & getVT(x))
|
||||
call Err.clear()
|
||||
x = FormatNumber(.10,0,0,0,null)
|
||||
call ok(Err.number = 94, "Err.number = " & Err.number)
|
||||
call ok(getVT(x) = "VT_EMPTY*", "getVT = " & getVT(x))
|
||||
end sub
|
||||
|
||||
sub testFormatNumber()
|
||||
dim x
|
||||
|
||||
x = FormatNumber(0)
|
||||
x = FormatNumber(.12,,,-1)
|
||||
call ok(getVT(x) = "VT_BSTR*", "getVT = " & getVT(x))
|
||||
end sub
|
||||
|
||||
call testFormatNumber()
|
||||
call testFormatNumberError()
|
||||
|
||||
Call reportSuccess()
|
||||
|
|
Loading…
Reference in a new issue