# define sv_catpvn_nomg sv_catpvn
#endif
+#ifndef mPUSHu
+# define mPUSHu(U) PUSHs(sv_2mortal(newSVuv(U)))
+#endif
+
#ifndef HvNAME_get
# define HvNAME_get(H) HvNAME(H)
#endif
STATIC SV *indirect_hint(pTHX) {
#define indirect_hint() indirect_hint(aTHX)
SV *id;
-#if I_HAS_PERL(5, 10, 0)
+#if I_HAS_PERL(5, 9, 5)
id = Perl_refcounted_he_fetch(aTHX_ PL_curcop->cop_hints_hash,
NULL,
__PACKAGE__, __PACKAGE_LEN__,
if (mpos < opos) {
SV *code = indirect_detag(hint);
- if (hint) {
+ if (code) {
+ SV *file;
+ line_t line;
dSP;
+ onamesv = sv_mortalcopy(onamesv);
+ mnamesv = sv_mortalcopy(mnamesv);
+
+#ifdef USE_ITHREADS
+ file = newSVpv(CopFILE(&PL_compiling), 0);
+#else
+ file = sv_mortalcopy(CopFILESV(&PL_compiling));
+#endif
+ line = CopLINE(&PL_compiling);
+
ENTER;
SAVETMPS;
PUSHMARK(SP);
- EXTEND(SP, 2);
+ EXTEND(SP, 4);
PUSHs(onamesv);
PUSHs(mnamesv);
+ PUSHs(file);
+ mPUSHu(line);
PUTBACK;
call_sv(code, G_VOID);