$preconfig{d_fork} = undef unless $OS2::can_fork; # Some funny cases can't
sub TIEHASH { bless {%preconfig} }
ENDOFSET
+ # Extract the name of the DLL from the makefile to avoid duplication
+ my ($f) = grep -r, qw(GNUMakefile Makefile);
+ my $dll;
+ if (open my $fh, '<', $f) {
+ while (<$fh>) {
+ $dll = $1, last if /^PERL_DLL_BASE\s*=\s*(\S*)\s*$/;
+ }
+ }
+ print CONFIG <<ENDOFSET if $dll;
+\$preconfig{dll_name} = '$dll';
+ENDOFSET
} else {
print CONFIG <<'ENDOFSET';
sub TIEHASH { bless {} }
$/ = '';
sub process {
- s/\A(\w*)\s+\(([\w.]+)\):\s*\n(\t?)/=item C<$1>\n\nFrom F<$2>:\n\n/m;
- my $c = substr $1, 0, 1;
- unless ($seen{$c}++) {
- print CONFIG <<EOF if $text;
+ if (s/\A(\w*)\s+\(([\w.]+)\):\s*\n(\t?)/=item C<$1>\n\nFrom F<$2>:\n\n/m) {
+ my $c = substr $1, 0, 1;
+ unless ($seen{$c}++) {
+ print CONFIG <<EOF if $text;
=back
EOF
- print CONFIG <<EOF;
+ print CONFIG <<EOF;
=head2 $c
=over 4
EOF
- $text = 1;
+ $text = 1;
+ }
+ }
+ elsif (!$text || !/\A\t/) {
+ warn "Expected a Configure variable header",
+ ($text ? " or another paragraph of description" : () );
}
s/n't/n\00t/g; # leave can't, won't etc untouched
s/^\t\s+(.*)/\n\t$1\n/gm; # Indented lines ===> paragraphs
(?! e \. g \. ) # Not e.g.
(?! \. \. \. ) # Not ...
(?! \d ) # Not 5.004
- ( [\w./]* [./] [\w./]* ) # Require . or / inside
- (?<! \. (?= \s ) ) # Do not include trailing dot
+ (?! read/ ) # Not read/write
+ (?! etc\. ) # Not etc.
+ (?! I/O ) # Not I/O
+ (
+ \$ ? # Allow leading $
+ [\w./]* [./] [\w./]* # Require . or / inside
+ )
+ (?<! \. (?= [\s)] ) ) # Do not include trailing dot
(?! [\w/] ) # Include all of it
}
(F<$1>)xg; # /usr/local