From 8818d4099a576554d990d17764107b1b1480bead Mon Sep 17 00:00:00 2001 From: Father Chrysostomos Date: Sun, 27 Feb 2011 00:35:26 -0800 Subject: [perl #79442] A #line "F" in a string eval doesn't update *{"_ 0) { const STRLEN len = t - s; -#ifndef USE_ITHREADS SV *const temp_sv = CopFILESV(PL_curcop); const char *cf; STRLEN tmplen; @@ -1611,19 +1613,35 @@ S_incline(pTHX_ const char *s) gv_init(gv2, PL_defstash, tmpbuf2, tmplen2, FALSE); /* adjust ${"::_ 0) { + AV * const av2 = GvAVn(gv2); + SV **svp = AvARRAY(av) + start; + I32 l = (I32)line_num+1; + while (items--) + av_store(av2, l++, SvREFCNT_inc(*svp++)); + } + } } if (tmpbuf2 != smallbuf) Safefree(tmpbuf2); } if (tmpbuf != smallbuf) Safefree(tmpbuf); } -#endif CopFILE_free(PL_curcop); CopFILE_setn(PL_curcop, s, len); } - CopLINE_set(PL_curcop, atoi(n)-1); + CopLINE_set(PL_curcop, line_num); } #ifdef PERL_MAD -- cgit v1.2.1