Devel-PPPort
view release on metacpan or search on metacpan
parts/inc/uv view on Meta::CPAN
#if !defined(my_strnlen)
#if { NEED my_strnlen }
Size_t
my_strnlen(const char *str, Size_t maxlen)
{
const char *p = str;
while(maxlen-- && *p)
p++;
return p - str;
}
#endif
#endif
=xsinit
#define NEED_my_strnlen
=xsubs
SV *
sv_setuv(uv)
UV uv
CODE:
RETVAL = newSViv(1);
sv_setuv(RETVAL, uv);
OUTPUT:
RETVAL
SV *
newSVuv(uv)
UV uv
CODE:
RETVAL = newSVuv(uv);
OUTPUT:
RETVAL
UV
sv_2uv(sv)
SV *sv
CODE:
RETVAL = sv_2uv(sv);
OUTPUT:
RETVAL
UV
SvUVx(sv)
SV *sv
CODE:
sv--;
RETVAL = SvUVx(++sv);
OUTPUT:
RETVAL
void
XSRETURN_UV()
PPCODE:
XSRETURN_UV(42);
void
PUSHu()
PREINIT:
dTARG;
PPCODE:
TARG = sv_newmortal();
EXTEND(SP, 1);
PUSHu(42);
XSRETURN(1);
void
XPUSHu()
PREINIT:
dTARG;
PPCODE:
TARG = sv_newmortal();
XPUSHu(43);
XSRETURN(1);
STRLEN
my_strnlen(s, max)
char * s
STRLEN max
CODE:
RETVAL= my_strnlen(s, max);
OUTPUT:
RETVAL
=tests plan => 11
BEGIN { require warnings if ivers($]) > ivers('5.006') }
is(&Devel::PPPort::sv_setuv(42), 42);
is(&Devel::PPPort::newSVuv(123), 123);
is(&Devel::PPPort::sv_2uv("4711"), 4711);
is(&Devel::PPPort::sv_2uv("1735928559"), 1735928559);
is(&Devel::PPPort::SvUVx("1735928559"), 1735928559);
is(&Devel::PPPort::SvUVx(1735928559), 1735928559);
is(&Devel::PPPort::SvUVx(0xdeadbeef), 0xdeadbeef);
is(&Devel::PPPort::XSRETURN_UV(), 42);
is(&Devel::PPPort::PUSHu(), 42);
is(&Devel::PPPort::XPUSHu(), 43);
is(&Devel::PPPort::my_strnlen("abc\0def", 7), 3);
( run in 4.915 seconds using v1.01-cache-2.11-cpan-2e0ccfb7a10 )