X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pp_sys.c;h=a849dbb82e35e9d2dd241205d4abe0139bcf64af;hb=ffb4593ce8673bf9b750cef7f50a426a002fff80;hp=cbd5764a313eccc2aee339541f526a587fb2924b;hpb=d5a9bfb0fc8643b1208bad4f15e3c88ef46b4160;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pp_sys.c b/pp_sys.c index cbd5764..a849dbb 100644 --- a/pp_sys.c +++ b/pp_sys.c @@ -501,10 +501,16 @@ PP(pp_open) djSP; dTARGET; GV *gv; SV *sv; + SV *name; + I32 have_name = 0; char *tmps; STRLEN len; MAGIC *mg; + if (MAXARG > 2) { + name = POPs; + have_name = 1; + } if (MAXARG > 1) sv = POPs; if (!isGV(TOPs)) @@ -537,6 +543,8 @@ PP(pp_open) PUSHMARK(SP); XPUSHs(SvTIED_obj((SV*)gv, mg)); XPUSHs(sv); + if (have_name) + XPUSHs(name); PUTBACK; ENTER; call_method("OPEN", G_SCALAR); @@ -546,7 +554,7 @@ PP(pp_open) } tmps = SvPV(sv, len); - if (do_open(gv, tmps, len, FALSE, O_RDONLY, 0, Nullfp)) + if (do_open9(gv, tmps, len, FALSE, O_RDONLY, 0, Nullfp, name, have_name)) PUSHi( (I32)PL_forkprocess ); else if (PL_forkprocess == 0) /* we are a new child */ PUSHi(0);