1 MODULE = XS::APItest PACKAGE = XS::APItest::numeric
8 const char *pv = SvPV(number, len);
13 result = grok_number(pv, len, &value);
14 PUSHs(sv_2mortal(newSViv(result)));
15 if (result & IS_NUMBER_IN_UV)
16 PUSHs(sv_2mortal(newSVuv(value)));
19 grok_number_flags(number, flags)
24 const char *pv = SvPV(number, len);
29 result = grok_number_flags(pv, len, &value, flags);
30 PUSHs(sv_2mortal(newSViv(result)));
31 if (result & IS_NUMBER_IN_UV)
32 PUSHs(sv_2mortal(newSVuv(value)));
35 grok_atou(number, endsv)
40 const char *pv = SvPV(number, len);
45 if (endsv == &PL_sv_undef) {
46 result = grok_atou(pv, NULL);
48 result = grok_atou(pv, &endptr);
50 PUSHs(sv_2mortal(newSVuv(result)));
51 if (endsv == &PL_sv_undef) {
52 PUSHs(sv_2mortal(newSVpvn(NULL, 0)));
55 PUSHs(sv_2mortal(newSViv(endptr - pv)));
57 PUSHs(sv_2mortal(newSViv(0)));