X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pp_hot.c;h=bf33ab872a68bbf78b4bcb79a23e9331a462a298;hb=e5cf08def37eb3e6aae76e85f2a3156394cae970;hp=4cd9eb1455a7a5242c8b11f6f6a0cbca2d1a4f7d;hpb=b328e6b91c715c8a6bec9c3e30180cdb4f94f718;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pp_hot.c b/pp_hot.c index 4cd9eb1..bf33ab8 100644 --- a/pp_hot.c +++ b/pp_hot.c @@ -967,7 +967,19 @@ do_readline() PerlIO *fp; register IO *io = GvIO(last_in_gv); register I32 type = op->op_type; + MAGIC *mg; + if (SvMAGICAL(last_in_gv) && (mg = mg_find((SV*)last_in_gv, 'q'))) { + PUSHMARK(SP); + XPUSHs(mg->mg_obj); + PUTBACK; + ENTER; + perl_call_method("READLINE", GIMME); + LEAVE; + SPAGAIN; + if (GIMME == G_SCALAR) sv_setsv(TARG, TOPs); + RETURN; + } fp = Nullfp; if (io) { fp = IoIFP(io); @@ -1225,7 +1237,6 @@ PP(pp_enter) PP(pp_helem) { dSP; - SV** svp; HE* he; SV *keysv = POPs; HV *hv = (HV*)POPs;