+func withPrependedTgt(s string) {
+ if s[0] != '[' {
+ stderrWrite(erasedStatus(s, "\n"))
+ return
+ }
+ i := strings.IndexByte(s, ']')
+ if i == -1 {
+ stderrWrite(s)
+ return
+ }
+ tgt, s := s[1:i], s[i+1:]
+ if tgt != LastLoggedTgt {
+ LastLoggedTgt = tgt
+ tgt = "redo " + tgt + " ..."
+ if MyPID != 0 {
+ tgt = fmt.Sprintf("[%d] %s", MyPID, tgt)
+ }
+ stderrWrite(erasedStatus(colourize(CDebug, tgt), "\n"))
+ }
+ stderrWrite(erasedStatus(s, "\n"))
+}
+
+func stderrWrite(s string) {
+ LogMutex.Lock()
+ os.Stderr.WriteString(s)
+ LogMutex.Unlock()
+}
+