summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rwxr-xr-xlib/diagnostics.pm15
1 files changed, 11 insertions, 4 deletions
diff --git a/lib/diagnostics.pm b/lib/diagnostics.pm
index 1f3f30c1c0..f174ee5feb 100755
--- a/lib/diagnostics.pm
+++ b/lib/diagnostics.pm
@@ -51,6 +51,11 @@ The B<-verbose> flag first prints out the L<perldiag> introduction before
any other diagnostics. The $diagnostics::PRETTY variable can generate nicer
escape sequences for pagers.
+Warnings dispatched from perl itself (or more accurately, those that match
+descriptions found in L<perldiag>) are only displayed once (no duplicate
+descriptions). User code generated warnings ala warn() are unaffected,
+allowing duplicate user messages to be displayed.
+
=head2 The I<splain> Program
While apparently a whole nuther program, I<splain> is actually nothing
@@ -458,13 +463,15 @@ sub splainthis {
s/\.?\n+$//;
my $orig = $_;
# return unless defined;
- if ($exact_duplicate{$_}++) {
- return 1;
- }
s/, <.*?> (?:line|chunk).*$//;
$real = s/(.*?) at .*? (?:line|chunk) \d+.*/$1/;
s/^\((.*)\)$/$1/;
- return 0 unless &transmo;
+ if ($exact_duplicate{$orig}++) {
+ return &transmo;
+ }
+ else {
+ return 0 unless &transmo;
+ }
$orig = shorten($orig);
if ($old_diag{$_}) {
autodescribe();