Blame parts/inc/mPUSH

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");