From 097b73fc5cb8bdbb798f77a57a98ef495774299a Mon Sep 17 00:00:00 2001 From: Byron Brummer Date: Wed, 19 May 1999 21:01:17 -0700 Subject: avoid removing duplicates in user-generated warnings Message-Id: <199905201101.EAA91175@thrush.omix.com> Subject: [PATCH] Re: warn buffers/loses output in ?? - 5.005_03 p4raw-id: //depot/perl@3453 --- lib/diagnostics.pm | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'lib') 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 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) 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 Program While apparently a whole nuther program, I 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(); -- cgit v1.2.1