On 09/20/2010 02:14 PM, Eric Blake wrote:
However, my perl is rather weak, so I'm not sure if I can quickly
correct it. Help would be appreciated.
Hmm, reading lib/Autom4te/Channels.pm is proving to be enlightening:
> Maybe the solution is just to teach autom4te that warning outputs
> consist of partial messages.
>
Does this look sane? Since my perl is weak, are there any suggestions
on more robust ways to express this action? I'm also working on a
testsuite addition, to make sure we don't regress in the future.
diff --git i/ChangeLog w/ChangeLog
index 458343f..c2ae56b 100644
--- i/ChangeLog
+++ w/ChangeLog
@@ -1,3 +1,10 @@
+2010-09-20 Eric Blake <ebl...@redhat.com>
+
+ autom4te: don't filter out portions of location traces
+ * bin/autom4te.in (_m4_warn): Pass warnings through the channels
+ machinery as a single chunk, to avoid partial filtering.
+ Reported by Bruno Haible.
+
2010-09-17 Eric Blake <ebl...@redhat.com>
build: support autobuild
diff --git i/bin/autom4te.in w/bin/autom4te.in
index e1d40e3..e7afb6c 100644
--- i/bin/autom4te.in
+++ w/bin/autom4te.in
@@ -1022,11 +1022,11 @@ for (split (/\n*$separator\n*/o, contents
("$tmp/warnings")))
# | input.as:3: foo is expanded from...
# | input.as:5: the top level
my ($cat, $loc, $msg, $stacktrace) = split ('::', $_, 4);
- msg $cat, $loc, "warning: $msg";
+ msg $cat, $loc, "warning: $msg", partial => ($stacktrace =~ /top
level/) + 0;
for (split /\n/, $stacktrace)
{
my ($loc, $trace) = split (': ', $_, 2);
- msg $cat, $loc, $trace;
+ msg $cat, $loc, $trace, partial => ($trace !~ /top level/) + 0;
}
}
--
Eric Blake ebl...@redhat.com +1-801-349-2682
Libvirt virtualization library http://libvirt.org