List-Uniqnum
view release on metacpan or search on metacpan
else {
nv_arg = SvNV(arg);
/* for NaN, use the platform's normal stringification */
if (nv_arg != nv_arg) sv_setpvf(keysv, "%" NVgf, nv_arg);
/* use "0" for all zeros */
else if(nv_arg == 0) sv_setpvs(keysv, "0");
else sv_setpvn(keysv, (char *) &nv_arg, 8);
}
#endif
#ifdef HV_FETCH_EMPTY_HE
he = (HE*) hv_common(seen, NULL, SvPVX(keysv), SvCUR(keysv), 0, HV_FETCH_LVALUE | HV_FETCH_EMPTY_HE, NULL, 0);
if (HeVAL(he))
continue;
HeVAL(he) = &PL_sv_undef;
#else
if(hv_exists(seen, SvPVX(keysv), SvCUR(keysv)))
continue;
hv_store(seen, SvPVX(keysv), SvCUR(keysv), &PL_sv_yes, 0);
#endif
if(GIMME_V == G_ARRAY)
ST(retcount) = SvOK(arg) ? arg : sv_2mortal(newSViv(0));
retcount++;
}
finish:
if(GIMME_V == G_ARRAY) {
XSRETURN(retcount);
}
else {
ST(0) = sv_2mortal(newSViv(retcount));
XSRETURN(1);
}
}
int _have_msc_ver(void) {
#ifdef _MSC_VER
return _MSC_VER;
#else
return 0;
#endif
}
MODULE = List::Uniqnum PACKAGE = List::Uniqnum
PROTOTYPES: DISABLE
int
uv_fits_double (arg)
UV arg
void
uniqnum (input_sv, ...)
SV * input_sv
PREINIT:
I32* temp;
PPCODE:
temp = PL_markstack_ptr++;
uniqnum(aTHX_ input_sv);
if (PL_markstack_ptr != temp) {
/* truly void, because dXSARGS not invoked */
PL_markstack_ptr = temp;
XSRETURN_EMPTY; /* return empty stack */
}
/* must have used dXSARGS; list context implied */
return; /* assume stack size is correct */
int
_have_msc_ver ()
( run in 1.538 second using v1.01-cache-2.11-cpan-5511b514fd6 )