stas 2003/11/23 13:26:01
Modified: ModPerl-Registry/lib/ModPerl PerlRun.pm Registry.pm RegistryCooker.pm . Changes Log: Fix ModPerl::Registry handlers family to modify $0 only for the duration of the handler, by localizing it Revision Changes Path 1.7 +1 -1 modperl-2.0/ModPerl-Registry/lib/ModPerl/PerlRun.pm Index: PerlRun.pm =================================================================== RCS file: /home/cvs/modperl-2.0/ModPerl-Registry/lib/ModPerl/PerlRun.pm,v retrieving revision 1.6 retrieving revision 1.7 diff -u -u -r1.6 -r1.7 --- PerlRun.pm 23 Mar 2003 04:52:24 -0000 1.6 +++ PerlRun.pm 23 Nov 2003 21:26:01 -0000 1.7 @@ -37,7 +37,7 @@ cache_it => 'NOP', read_script => 'read_script', rewrite_shebang => 'rewrite_shebang', - set_script_name => 'set_script_name', + get_script_name => 'get_script_name', chdir_file => 'chdir_file_normal', get_mark_line => 'get_mark_line', compile => 'compile', 1.8 +1 -1 modperl-2.0/ModPerl-Registry/lib/ModPerl/Registry.pm Index: Registry.pm =================================================================== RCS file: /home/cvs/modperl-2.0/ModPerl-Registry/lib/ModPerl/Registry.pm,v retrieving revision 1.7 retrieving revision 1.8 diff -u -u -r1.7 -r1.8 --- Registry.pm 23 Mar 2003 04:52:24 -0000 1.7 +++ Registry.pm 23 Nov 2003 21:26:01 -0000 1.8 @@ -37,7 +37,7 @@ cache_it => 'cache_it', read_script => 'read_script', rewrite_shebang => 'rewrite_shebang', - set_script_name => 'set_script_name', + get_script_name => 'get_script_name', chdir_file => 'chdir_file_normal', get_mark_line => 'get_mark_line', compile => 'compile', 1.38 +10 -8 modperl-2.0/ModPerl-Registry/lib/ModPerl/RegistryCooker.pm Index: RegistryCooker.pm =================================================================== RCS file: /home/cvs/modperl-2.0/ModPerl-Registry/lib/ModPerl/RegistryCooker.pm,v retrieving revision 1.37 retrieving revision 1.38 diff -u -u -r1.37 -r1.38 --- RegistryCooker.pm 30 Aug 2003 02:39:45 -0000 1.37 +++ RegistryCooker.pm 23 Nov 2003 21:26:01 -0000 1.38 @@ -173,7 +173,6 @@ my $r = $self->{REQ}; my $package = $self->{PACKAGE}; - $self->set_script_name; $self->chdir_file; my $cv = \&{"$package\::handler"}; @@ -356,10 +355,13 @@ $self->strip_end_data_segment; + my $script_name = $self->get_script_name || $0; + my $eval = join '', 'package ', $self->{PACKAGE}, ";", - "sub handler {\n", + "sub handler {", + "local \$0 = '$script_name';", $line, ${ $self->{CODE} }, "\n}"; # last line comment without newline? @@ -568,15 +570,15 @@ } ######################################################################### -# func: set_script_name -# dflt: set_script_name -# desc: set $0 to the script's name +# func: get_script_name +# dflt: get_script_name +# desc: get the script's name to set into $0 # args: $self - registry blessed object -# rtrn: nothing +# rtrn: path to the script's filename ######################################################################### -sub set_script_name { - *0 = \(shift->{FILENAME}); +sub get_script_name { + shift->{FILENAME}; } ######################################################################### 1.260 +3 -0 modperl-2.0/Changes Index: Changes =================================================================== RCS file: /home/cvs/modperl-2.0/Changes,v retrieving revision 1.259 retrieving revision 1.260 diff -u -u -r1.259 -r1.260 --- Changes 22 Nov 2003 10:27:42 -0000 1.259 +++ Changes 23 Nov 2003 21:26:01 -0000 1.260 @@ -12,6 +12,9 @@ =item 1.99_12-dev +Fix ModPerl::Registry handlers family to modify $0 only for the +duration of the handler, by localizing it [Stas] + Fix :Apache perlio's STDOUT to be reentrant + modules/include_subreq test [Stas]