chiark / gitweb /
Dgit.pm: printdebug: Selectively print $debugprefix, and add a doc
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 11 Aug 2018 09:52:58 +0000 (10:52 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 11 Aug 2018 10:38:39 +0000 (11:38 +0100)
Remember whether the last printdebug ended in a \n.  If it didn't,
suppress printing the next newline.

I don't think anywhere calls printdebug without @_ right now.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Debian/Dgit.pm

index 3d517e1..34e40a3 100644 (file)
@@ -159,11 +159,21 @@ sub enabledebuglevel ($) {
 }
     
 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 ($) {