Author: richter
Date: Fri Aug 5 16:05:31 2011
New Revision: 1154283
URL: http://svn.apache.org/viewvc?rev=1154283&view=rev
Log:
Fix Output inside of Registry script for mod_perl 2.0.4+
Modified:
perl/embperl/trunk/epdat2.h
perl/embperl/trunk/epio.c
Modified: perl/embperl/trunk/epdat2.h
URL:
http://svn.apache.org/viewvc/perl/embperl/trunk/epdat2.h?rev=1154283&r1=1154282&r2=1154283&view=diff
==============================================================================
--- perl/embperl/trunk/epdat2.h (original)
+++ perl/embperl/trunk/epdat2.h Fri Aug 5 16:05:31 2011
@@ -262,6 +262,7 @@ typedef struct tComponentOutput
int nMarker ; /* Makers for rollback output */
FILEIO * ofd ; /* output file descriptor */
+ int no_ofd_close ; /* do not close output file handle,
because it's ownd by perl */
SV * ofdobj ; /* perl object that is tied to stdout, if
any */
} tComponentOutput ;
Modified: perl/embperl/trunk/epio.c
URL:
http://svn.apache.org/viewvc/perl/embperl/trunk/epio.c?rev=1154283&r1=1154282&r2=1154283&view=diff
==============================================================================
--- perl/embperl/trunk/epio.c (original)
+++ perl/embperl/trunk/epio.c Fri Aug 5 16:05:31 2011
@@ -69,6 +69,7 @@
#endif
#define HANDLE_GV(name) gv_fetchpv(name, TRUE, SVt_PVIO)
+//#define HANDLE_GV(name) gv_fetchpv(name, GV_ADD, SVt_PVIO)
@@ -698,10 +699,11 @@ int OpenOutput (/*i/o*/ register req * r
- if (r -> Component.pOutput -> ofd && r -> Component.pOutput -> ofd !=
PerlIO_stdoutF)
+ if (r -> Component.pOutput -> ofd && r -> Component.pOutput -> ofd !=
PerlIO_stdoutF && !r -> Component.pOutput -> no_ofd_close)
PerlIO_close (r -> Component.pOutput -> ofd) ;
r -> Component.pOutput -> ofd = NULL ;
+ r -> Component.pOutput -> no_ofd_close = 0 ;
if (sFilename == NULL || *sFilename == '\0')
{
@@ -729,6 +731,13 @@ int OpenOutput (/*i/o*/ register req * r
}
return ok ;
}
+
+ r -> Component.pOutput -> ofd = IoOFP(GvIOn(handle)) ;
+ if (r -> Component.pOutput -> ofd)
+ {
+ r -> Component.pOutput -> no_ofd_close = 1 ;
+ return ok ;
+ }
}
r -> Component.pOutput -> ofd = PerlIO_stdoutF ;
@@ -796,7 +805,7 @@ int CloseOutput (/*in*/ tReq *
}
#endif
- if (pOutput -> ofd && pOutput -> ofd != PerlIO_stdoutF)
+ if (pOutput -> ofd && pOutput -> ofd != PerlIO_stdoutF && !pOutput ->
no_ofd_close)
PerlIO_close (pOutput -> ofd) ;
pOutput -> ofd = NULL ;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]