From: Byron Brummer Date: Thu, 20 May 1999 04:01:17 +0000 (-0700) Subject: avoid removing duplicates in user-generated warnings X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=097b73fc5cb8bdbb798f77a57a98ef495774299a;p=p5sagit%2Fp5-mst-13.2.git 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 --- diff --git a/lib/diagnostics.pm b/lib/diagnostics.pm index 1f3f30c..f174ee5 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();