/* ---- from parts/inc/newRV ---- */
#define NEED_newRV_noinc
+/* ---- from parts/inc/snprintf ---- */
+#define NEED_my_snprintf
+
/* ---- from parts/inc/sv_xpvf ---- */
#define NEED_vnewSVpvf
#define NEED_sv_catpvf_mg
/* ---- from parts/inc/variables ---- */
#define NEED_PL_signals
+/* ---- from parts/inc/warn ---- */
+#define NEED_warner
+
/* =========== END XSINIT =================================================== */
#include "ppport.h"
Copy(str, copy, len+1, char);
sv_usepvn_mg(sv, copy, len);
+int
+SvVSTRING_mg(sv)
+ SV *sv;
+ CODE:
+ RETVAL = SvVSTRING_mg(sv) != NULL;
+ OUTPUT:
+ RETVAL
+
##----------------------------------------------------------------------
## XSUBs from parts/inc/memory
##----------------------------------------------------------------------
XSRETURN(1);
}
+int
+PERL_ABS(a)
+ int a
+
+void
+SVf(x)
+ SV *x
+ PPCODE:
+#if ((PERL_VERSION > 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION >= 0)))
+ x = newSVpvf("[%"SVf"]", x);
+#endif
+ XPUSHs(x);
+ XSRETURN(1);
+
##----------------------------------------------------------------------
## XSUBs from parts/inc/mPUSH
##----------------------------------------------------------------------
RETVAL
##----------------------------------------------------------------------
+## XSUBs from parts/inc/pvs
+##----------------------------------------------------------------------
+
+void
+newSVpvs()
+ PPCODE:
+ XPUSHs(newSVpvs("newSVpvs"));
+ XSRETURN(1);
+
+void
+sv_catpvs(sv)
+ SV *sv
+ PPCODE:
+ sv_catpvs(sv, "sv_catpvs");
+
+void
+sv_setpvs(sv)
+ SV *sv
+ PPCODE:
+ sv_setpvs(sv, "sv_setpvs");
+
+void
+hv_fetchs(hv)
+ SV *hv
+ PREINIT:
+ SV **s;
+ PPCODE:
+ s = hv_fetchs((HV *) SvRV(hv), "hv_fetchs", 0);
+ XPUSHs(sv_mortalcopy(*s));
+ XSRETURN(1);
+
+void
+hv_stores(hv, sv)
+ SV *hv
+ SV *sv
+ PPCODE:
+ hv_stores((HV *) SvRV(hv), "hv_stores", SvREFCNT_inc(sv));
+
+##----------------------------------------------------------------------
+## XSUBs from parts/inc/snprintf
+##----------------------------------------------------------------------
+
+void
+my_snprintf()
+ PREINIT:
+ char buf[128];
+ int len;
+ PPCODE:
+ len = my_snprintf(buf, sizeof buf, "foo%s%d", "bar", 42);
+ XPUSHs(newSViv(len));
+ XPUSHs(newSVpv(buf, 0));
+ XSRETURN(2);
+
+##----------------------------------------------------------------------
## XSUBs from parts/inc/Sv_set
##----------------------------------------------------------------------
OUTPUT:
RETVAL
+void
+TestSvSTASH_set(sv, name)
+ SV *sv
+ char *name
+ CODE:
+ sv = SvRV(sv);
+ SvREFCNT_dec(SvSTASH(sv));
+ SvSTASH_set(sv, (HV*) SvREFCNT_inc(gv_stashpv(name, 0)));
+
##----------------------------------------------------------------------
## XSUBs from parts/inc/sv_xpvf
##----------------------------------------------------------------------
RETVAL
##----------------------------------------------------------------------
+## XSUBs from parts/inc/SvREFCNT
+##----------------------------------------------------------------------
+
+void
+SvREFCNT()
+ PREINIT:
+ SV *sv, *svr;
+ PPCODE:
+ sv = newSV(0);
+ XPUSHs(newSViv(SvREFCNT(sv) == 1));
+ svr = SvREFCNT_inc(sv);
+ XPUSHs(newSViv(sv == svr));
+ XPUSHs(newSViv(SvREFCNT(sv) == 2));
+ svr = SvREFCNT_inc_simple(sv);
+ XPUSHs(newSViv(sv == svr));
+ XPUSHs(newSViv(SvREFCNT(sv) == 3));
+ svr = SvREFCNT_inc_NN(sv);
+ XPUSHs(newSViv(sv == svr));
+ XPUSHs(newSViv(SvREFCNT(sv) == 4));
+ svr = SvREFCNT_inc_simple_NN(sv);
+ XPUSHs(newSViv(sv == svr));
+ XPUSHs(newSViv(SvREFCNT(sv) == 5));
+ SvREFCNT_inc_void(sv);
+ XPUSHs(newSViv(SvREFCNT(sv) == 6));
+ SvREFCNT_inc_simple_void(sv);
+ XPUSHs(newSViv(SvREFCNT(sv) == 7));
+ SvREFCNT_inc_void_NN(sv);
+ XPUSHs(newSViv(SvREFCNT(sv) == 8));
+ SvREFCNT_inc_simple_void_NN(sv);
+ XPUSHs(newSViv(SvREFCNT(sv) == 9));
+ while (SvREFCNT(sv) > 1)
+ SvREFCNT_dec(sv);
+ XPUSHs(newSViv(SvREFCNT(sv) == 1));
+ SvREFCNT_dec(sv);
+ XSRETURN(14);
+
+##----------------------------------------------------------------------
## XSUBs from parts/inc/threads
##----------------------------------------------------------------------
}
OUTPUT:
RETVAL
+
+##----------------------------------------------------------------------
+## XSUBs from parts/inc/warn
+##----------------------------------------------------------------------
+
+void
+warner()
+ CODE:
+#if ((PERL_VERSION > 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION >= 0)))
+ warner(packWARN(WARN_MISC), "warner %s:%d", "bar", 42);
+#endif
+
+void
+Perl_warner()
+ CODE:
+#if ((PERL_VERSION > 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION >= 0)))
+ Perl_warner(aTHX_ packWARN(WARN_MISC), "Perl_warner %s:%d", "bar", 42);
+#endif
+
+void
+Perl_warner_nocontext()
+ CODE:
+#if ((PERL_VERSION > 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION >= 0)))
+ Perl_warner_nocontext(packWARN(WARN_MISC), "Perl_warner_nocontext %s:%d", "bar", 42);
+#endif
+
+void
+ckWARN()
+ CODE:
+#if ((PERL_VERSION > 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION >= 0)))
+ if (ckWARN(WARN_MISC))
+ Perl_warner_nocontext(packWARN(WARN_MISC), "ckWARN %s:%d", "bar", 42);
+#endif