Render -Duseperlio functional again.
authorNick Ing-Simmons <nik@tiuk.ti.com>
Fri, 23 Mar 2001 10:20:46 +0000 (10:20 +0000)
committerNick Ing-Simmons <nik@tiuk.ti.com>
Fri, 23 Mar 2001 10:20:46 +0000 (10:20 +0000)
 - this is "quick fix" which calls PerlIO_apply_layers after opening,
   which is what old scheme did. New scheme needs to change that
   to make open(...,\$scalar) etc. work but this will do for now.

p4raw-id: //depot/perlio@9304

perlio.c

index d192892..9c7e3cd 100644 (file)
--- a/perlio.c
+++ b/perlio.c
@@ -808,7 +808,15 @@ PerlIO_openn(pTHX_ const char *layers, const char *mode, int fd, int imode, int
  PerlIO_funcs *tab = (f && *f) ? PerlIOBase(f)->tab : PerlIO_top_layer(aTHX_ layers);
  if (!_perlio)
   PerlIO_stdstreams();
- return (*tab->Open)(aTHX_ tab,mode,fd,imode,perm,f,narg,args);
+ PerlIO_debug("openn(%s,'%s','%s',%d,%x,%o,%p,%d,%p)\n",
+              tab->name,layers,mode,fd,imode,perm,f,narg,args);
+ f = (*tab->Open)(aTHX_ tab,mode,fd,imode,perm,f,narg,args);
+ if (f)
+  {
+   if (layers && *layers)
+    PerlIO_apply_layers(aTHX_ f,mode,layers);
+  }
+ return f;
 }