}
sub printdebug {
+ # Prints a prefix, and @_, to DEBUG. @_ should normally contain
+ # a trailing \n.
+
+ # With no (or only empty) arguments just prints the prefix and
+ # leaves the caller to do more with DEBUG. The caller should make
+ # sure then to call printdebug with something ending in "\n" to
+ # get the prefix right in subsequent calls.
+
return unless $debuglevel >= $printdebug_when_debuglevel;
- print DEBUG $debugprefix;
+ our $printdebug_noprefix;
+ print DEBUG $debugprefix unless $printdebug_noprefix;
pop @_ while @_ and !length $_[-1];
return unless @_;
print DEBUG @_ or die $!;
+ $printdebug_noprefix = $_[-1] !~ m{\n$};
}
sub messagequote ($) {
sub failmsg {
my $s = "error: @_\n";
- $s =~ s/\n\n$/\n/;
+ $s =~ s/\n\n$/\n/g;
my $prefix = _us().": ";
$s =~ s/^/$prefix/gm;
return "\n".$s;