use Carp;
$Carp::Internal{__PACKAGE__.""}++;
-our $VERSION = '1.30';
+our $VERSION = '1.31';
our $DEBUG;
our $VERBOSE;
our $PRETTY;
push @headers, $header if defined $header;
}
- unless ( s/=item (.*?)\s*\z//) {
+ unless ( s/=item (.*?)\s*\z//s) {
if ( s/=head1\sDESCRIPTION//) {
$msg{$header = 'DESCRIPTION'} = '';
if( $for_item ) { $header = $for_item; undef $for_item }
else {
$header = $1;
- while( $header =~ /[;,]\z/ ) {
- <POD_DIAG> =~ /^\s*(.*?)\s*\z/;
- $header .= ' '.$1;
- }
+
+ $header =~ s/\n/ /gs; # Allow multi-line headers
}
# strip formatting directives from =item line
$header =~ s/[A-Z]<(.*?)>/$1/g;
- # Since we strip "\.\n" when we search a warning, strip it here as well
- $header =~ s/\.?$//;
+ # Since we strip "(\.\s*)\n" when we search a warning, strip it here as well
+ $header =~ s/(\.\s*)?$//;
my @toks = split( /(%l?[dxX]|%[ucp]|%(?:\.\d+)?[fs])/, $header );
if (@toks > 1) {
}
}
my $lhs = join( '', @toks );
+ $lhs =~ s/(\\\s)+/\\s+/g; # Replace lit space with multi-space match
$transfmt{$header}{pat} =
- " s\a^$lhs\a\Q$header\E\as\n\t&& return 1;\n";
+ " s\a^\\s*$lhs\\s*\a\Q$header\E\as\n\t&& return 1;\n";
$transfmt{$header}{len} = $conlen;
} else {
+ my $lhs = "\Q$header\E";
+ $lhs =~ s/(\\\s)+/\\s+/g; # Replace lit space with multi-space match
$transfmt{$header}{pat} =
- " m\a^\Q$header\E\a && return 1;\n";
+ " s\a^\\s*$lhs\\s*\a\Q$header\E\a\n\t && return 1;\n";
$transfmt{$header}{len} = length( $header );
}
local $\;
local $!;
### &finish_compilation unless %msg;
- s/\.?\n+$//;
+ s/(\.\s*)?\n+$//;
my $orig = $_;
# return unless defined;
$_ .= ' at ' . $secs[$i];
}
}
-
+
# remove parenthesis occurring at the end of some messages
s/^\((.*)\)$/$1/;