|
Packit |
7d6a7d |
################################################################################
|
|
Packit |
7d6a7d |
##
|
|
Packit |
7d6a7d |
## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
|
|
Packit |
7d6a7d |
## Version 2.x, Copyright (C) 2001, Paul Marquess.
|
|
Packit |
7d6a7d |
## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
|
|
Packit |
7d6a7d |
##
|
|
Packit |
7d6a7d |
## This program is free software; you can redistribute it and/or
|
|
Packit |
7d6a7d |
## modify it under the same terms as Perl itself.
|
|
Packit |
7d6a7d |
##
|
|
Packit |
7d6a7d |
################################################################################
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
=provides
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
__UNDEFINED__
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
=implementation
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
__UNDEFINED__ mPUSHs(s) PUSHs(sv_2mortal(s))
|
|
Packit |
7d6a7d |
__UNDEFINED__ PUSHmortal PUSHs(sv_newmortal())
|
|
Packit |
7d6a7d |
__UNDEFINED__ mPUSHp(p,l) sv_setpvn(PUSHmortal, (p), (l))
|
|
Packit |
7d6a7d |
__UNDEFINED__ mPUSHn(n) sv_setnv(PUSHmortal, (NV)(n))
|
|
Packit |
7d6a7d |
__UNDEFINED__ mPUSHi(i) sv_setiv(PUSHmortal, (IV)(i))
|
|
Packit |
7d6a7d |
__UNDEFINED__ mPUSHu(u) sv_setuv(PUSHmortal, (UV)(u))
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
__UNDEFINED__ mXPUSHs(s) XPUSHs(sv_2mortal(s))
|
|
Packit |
7d6a7d |
__UNDEFINED__ XPUSHmortal XPUSHs(sv_newmortal())
|
|
Packit |
7d6a7d |
__UNDEFINED__ mXPUSHp(p,l) STMT_START { EXTEND(sp,1); sv_setpvn(PUSHmortal, (p), (l)); } STMT_END
|
|
Packit |
7d6a7d |
__UNDEFINED__ mXPUSHn(n) STMT_START { EXTEND(sp,1); sv_setnv(PUSHmortal, (NV)(n)); } STMT_END
|
|
Packit |
7d6a7d |
__UNDEFINED__ mXPUSHi(i) STMT_START { EXTEND(sp,1); sv_setiv(PUSHmortal, (IV)(i)); } STMT_END
|
|
Packit |
7d6a7d |
__UNDEFINED__ mXPUSHu(u) STMT_START { EXTEND(sp,1); sv_setuv(PUSHmortal, (UV)(u)); } STMT_END
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
=xsubs
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
void
|
|
Packit |
7d6a7d |
mPUSHs()
|
|
Packit |
7d6a7d |
PPCODE:
|
|
Packit |
7d6a7d |
EXTEND(SP, 3);
|
|
Packit |
7d6a7d |
mPUSHs(newSVpv("foo", 0));
|
|
Packit |
7d6a7d |
mPUSHs(newSVpv("bar13", 3));
|
|
Packit |
7d6a7d |
mPUSHs(newSViv(42));
|
|
Packit |
7d6a7d |
XSRETURN(3);
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
void
|
|
Packit |
7d6a7d |
mPUSHp()
|
|
Packit |
7d6a7d |
PPCODE:
|
|
Packit |
7d6a7d |
EXTEND(SP, 3);
|
|
Packit |
7d6a7d |
mPUSHp("one", 3);
|
|
Packit |
7d6a7d |
mPUSHp("two", 3);
|
|
Packit |
7d6a7d |
mPUSHp("three", 5);
|
|
Packit |
7d6a7d |
XSRETURN(3);
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
void
|
|
Packit |
7d6a7d |
mPUSHn()
|
|
Packit |
7d6a7d |
PPCODE:
|
|
Packit |
7d6a7d |
EXTEND(SP, 3);
|
|
Packit |
7d6a7d |
mPUSHn(0.5);
|
|
Packit |
7d6a7d |
mPUSHn(-0.25);
|
|
Packit |
7d6a7d |
mPUSHn(0.125);
|
|
Packit |
7d6a7d |
XSRETURN(3);
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
void
|
|
Packit |
7d6a7d |
mPUSHi()
|
|
Packit |
7d6a7d |
PPCODE:
|
|
Packit |
7d6a7d |
EXTEND(SP, 3);
|
|
Packit |
7d6a7d |
mPUSHi(-1);
|
|
Packit |
7d6a7d |
mPUSHi(2);
|
|
Packit |
7d6a7d |
mPUSHi(-3);
|
|
Packit |
7d6a7d |
XSRETURN(3);
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
void
|
|
Packit |
7d6a7d |
mPUSHu()
|
|
Packit |
7d6a7d |
PPCODE:
|
|
Packit |
7d6a7d |
EXTEND(SP, 3);
|
|
Packit |
7d6a7d |
mPUSHu(1);
|
|
Packit |
7d6a7d |
mPUSHu(2);
|
|
Packit |
7d6a7d |
mPUSHu(3);
|
|
Packit |
7d6a7d |
XSRETURN(3);
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
void
|
|
Packit |
7d6a7d |
mXPUSHs()
|
|
Packit |
7d6a7d |
PPCODE:
|
|
Packit |
7d6a7d |
mXPUSHs(newSVpv("foo", 0));
|
|
Packit |
7d6a7d |
mXPUSHs(newSVpv("bar13", 3));
|
|
Packit |
7d6a7d |
mXPUSHs(newSViv(42));
|
|
Packit |
7d6a7d |
XSRETURN(3);
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
void
|
|
Packit |
7d6a7d |
mXPUSHp()
|
|
Packit |
7d6a7d |
PPCODE:
|
|
Packit |
7d6a7d |
mXPUSHp("one", 3);
|
|
Packit |
7d6a7d |
mXPUSHp("two", 3);
|
|
Packit |
7d6a7d |
mXPUSHp("three", 5);
|
|
Packit |
7d6a7d |
XSRETURN(3);
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
void
|
|
Packit |
7d6a7d |
mXPUSHn()
|
|
Packit |
7d6a7d |
PPCODE:
|
|
Packit |
7d6a7d |
mXPUSHn(0.5);
|
|
Packit |
7d6a7d |
mXPUSHn(-0.25);
|
|
Packit |
7d6a7d |
mXPUSHn(0.125);
|
|
Packit |
7d6a7d |
XSRETURN(3);
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
void
|
|
Packit |
7d6a7d |
mXPUSHi()
|
|
Packit |
7d6a7d |
PPCODE:
|
|
Packit |
7d6a7d |
mXPUSHi(-1);
|
|
Packit |
7d6a7d |
mXPUSHi(2);
|
|
Packit |
7d6a7d |
mXPUSHi(-3);
|
|
Packit |
7d6a7d |
XSRETURN(3);
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
void
|
|
Packit |
7d6a7d |
mXPUSHu()
|
|
Packit |
7d6a7d |
PPCODE:
|
|
Packit |
7d6a7d |
mXPUSHu(1);
|
|
Packit |
7d6a7d |
mXPUSHu(2);
|
|
Packit |
7d6a7d |
mXPUSHu(3);
|
|
Packit |
7d6a7d |
XSRETURN(3);
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
=tests plan => 10
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
ok(join(':', &Devel::PPPort::mPUSHs()), "foo:bar:42");
|
|
Packit |
7d6a7d |
ok(join(':', &Devel::PPPort::mPUSHp()), "one:two:three");
|
|
Packit |
7d6a7d |
ok(join(':', &Devel::PPPort::mPUSHn()), "0.5:-0.25:0.125");
|
|
Packit |
7d6a7d |
ok(join(':', &Devel::PPPort::mPUSHi()), "-1:2:-3");
|
|
Packit |
7d6a7d |
ok(join(':', &Devel::PPPort::mPUSHu()), "1:2:3");
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
ok(join(':', &Devel::PPPort::mXPUSHs()), "foo:bar:42");
|
|
Packit |
7d6a7d |
ok(join(':', &Devel::PPPort::mXPUSHp()), "one:two:three");
|
|
Packit |
7d6a7d |
ok(join(':', &Devel::PPPort::mXPUSHn()), "0.5:-0.25:0.125");
|
|
Packit |
7d6a7d |
ok(join(':', &Devel::PPPort::mXPUSHi()), "-1:2:-3");
|
|
Packit |
7d6a7d |
ok(join(':', &Devel::PPPort::mXPUSHu()), "1:2:3");
|