Geoffrey Young wrote:

Rodent of Unusual Size wrote:

okey, bug found.  noticed on windows because spaces in filenames
are more common there, but it happens anywhere.

here's the deal.  this command:

perl Makefile.PL -httpd "C:/A B/apache.exe" -apxs "C:/A B/apxs"

results in the following being put into t/TEST

%Apache::testConfig::Argv = qw(httpd C:\A B\apache.exe apxs C:\A B\apxs)

so, duh, the spaces lose their significance because qw() is treating
the whitespace as delimiters.


does this help?

--Geoff


------------------------------------------------------------------------

Index: lib/Apache/TestMM.pm
===================================================================
RCS file: /home/cvs/httpd-test/perl-framework/Apache-Test/lib/Apache/TestMM.pm,v
retrieving revision 1.32
diff -u -r1.32 TestMM.pm
--- lib/Apache/TestMM.pm 26 Mar 2004 01:17:08 -0000 1.32
+++ lib/Apache/TestMM.pm 16 Apr 2004 14:56:45 -0000
@@ -89,9 +89,11 @@
my $body = "BEGIN { eval { require blib; } }\n";
$body .= Apache::TestConfig->modperl_2_inc_fixup;
-
- if (@Apache::TestMM::Argv) {
- $body .= "\n\%Apache::TestConfig::Argv = qw(@Apache::TestMM::Argv);\n";
+ + foreach (@Apache::TestMM::Argv) {
+ my ($key, $value) = @Apache::TestMM::Argv[0,1];
+ $body .= "\n\$Apache::TestConfig::Argv{'$key'} = '$value';\n";
+ splice(@Apache::TestMM::Argv,0,2)
}

or a simpler:

Index: lib/Apache/TestMM.pm
===================================================================
RCS file: /home/cvs/httpd-test/perl-framework/Apache-Test/lib/Apache/TestMM.pm,v
retrieving revision 1.32
diff -u -r1.32 TestMM.pm
--- lib/Apache/TestMM.pm        26 Mar 2004 01:17:08 -0000      1.32
+++ lib/Apache/TestMM.pm        16 Apr 2004 18:28:28 -0000
@@ -91,7 +91,9 @@
     $body .= Apache::TestConfig->modperl_2_inc_fixup;

     if (@Apache::TestMM::Argv) {
-        $body .= "\n\%Apache::TestConfig::Argv = qw(@Apache::TestMM::Argv);\n";
+        $body .= "\n\%Apache::TestConfig::Argv = (" .
+            join( "," map qq["$_"], @Apache::TestMM::Argv) .
+            ");\n";
     }

     my $in = Symbol::gensym();

this patch simply quotes the arguments, leaving things as before. In case of Geoff's patch, it's simpler to write it as:

    if (@Apache::TestMM::Argv) {
        while (my ($k, $v) = splice @Apache::TestMM::Argv, 0, 2) {
            $body .= "\n\$Apache::TestConfig::Argv{'$key'} = '$value';\n";
        }
    }

Either way is fine with me.

__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com

Reply via email to