summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorByron Brummer <byron@omix.com>1999-05-19 21:01:17 -0700
committerGurusamy Sarathy <gsar@cpan.org>1999-05-24 04:39:49 +0000
commit097b73fc5cb8bdbb798f77a57a98ef495774299a (patch)
treeff4ed3202cc73a54fb1df5be5a8adbaf13c40983 /lib
parent538573f733f1f6e6430074c1bcabb095b33cf3c4 (diff)
downloadperl-097b73fc5cb8bdbb798f77a57a98ef495774299a.tar.gz
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
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();