Remove a TODO test that is no longer to do.
[p5sagit/p5-mst-13.2.git] / configpm
index d0947d0..4f301c3 100755 (executable)
--- a/configpm
+++ b/configpm
@@ -213,21 +213,24 @@ close CONFIG_SH;
 print CONFIG @non_v, "\n";
 
 # copy config summary format from the myconfig.SH script
-print CONFIG "my \$summary = <<'!END!';\n";
+print CONFIG "our \$summary : unique = <<'!END!';\n";
 open(MYCONFIG,"<myconfig.SH") || die "open myconfig.SH failed: $!";
 1 while defined($_ = <MYCONFIG>) && !/^Summary of/;
 do { print CONFIG $_ } until !defined($_ = <MYCONFIG>) || /^\s*$/;
 close(MYCONFIG);
 
+# NB. as $summary is unique, we need to copy it in a lexical variable
+# before expanding it, because may have been made readonly if a perl
+# interpreter has been cloned.
+
 print CONFIG "\n!END!\n", <<'EOT';
-my $summary_expanded = 0;
+my $summary_expanded;
 
 sub myconfig {
-    return $summary if $summary_expanded;
-    $summary =~ s{\$(\w+)}
+    return $summary_expanded if $summary_expanded;
+    ($summary_expanded = $summary) =~ s{\$(\w+)}
                 { my $c = $Config{$1}; defined($c) ? $c : 'undef' }ge;
-    $summary_expanded = 1;
-    $summary;
+    $summary_expanded;
 }
 
 our $Config_SH : unique = <<'!END!';
@@ -331,13 +334,18 @@ sub config_re {
 
 sub config_vars {
     foreach (@_) {
-       if (/\W/) {
-           my @matches = config_re($_);
-           print map "$_\n", @matches ? @matches : "$_: not found";
+       my ($notag,$qry,$lncont) = m/^(:)?(.*?)(:)?$/;  # flags fore and aft, 
+       my $prfx = $notag ? '': "$qry=";                # prefix for print
+       my $lnend = $lncont ? ' ' : ";\n";              # ending for print
+
+       if ($qry =~ /\W/) {
+           my @matches = config_re($qry);
+           print map "$_$lnend", @matches ? @matches : "$qry: not found"               if !$notag;
+           print map { s/\w+=//; "$_$lnend" } @matches ? @matches : "$qry: not found"  if  $notag;
        } else {
-           my $v = (exists $Config{$_}) ? $Config{$_} : 'UNKNOWN';
+           my $v = (exists $Config{$qry}) ? $Config{$qry} : 'UNKNOWN';
            $v = 'undef' unless defined $v;
-           print "$_='$v';\n";
+           print "${prfx}'${v}'$lnend";
        }
     }
 }
@@ -432,8 +440,8 @@ Config - access Perl configuration information
 =head1 SYNOPSIS
 
     use Config;
-    if ($Config{'cc'} =~ /gcc/) {
-       print "built by gcc\n";
+    if ($Config{usethreads}) {
+       print "has thread support\n"
     } 
 
     use Config qw(myconfig config_sh config_vars config_re);