]> Cypherpunks repositories - gostls13.git/commitdiff
automatically add tabs after newlines
authorRob Pike <r@golang.org>
Fri, 21 Nov 2008 02:10:46 +0000 (18:10 -0800)
committerRob Pike <r@golang.org>
Fri, 21 Nov 2008 02:10:46 +0000 (18:10 -0800)
R=gri
DELTA=12  (10 added, 0 deleted, 2 changed)
OCL=19758
CL=19758

src/lib/testing.go

index 3a95d61d7bf0fb5af10910735a5134a0725b690a..0bcdcffcd3617c6234028d5f33bf7b4a4324724e 100644 (file)
@@ -14,6 +14,16 @@ func init() {
        flag.Bool("chatty", false, &chatty, "chatty");
 }
 
+// Insert tabs after newlines - but not the last one
+func Tabify(s string) string {
+       for i := 0; i < len(s) - 1; i++ {       // -1 because if last char is newline, don't bother
+               if s[i] == '\n' {
+                       return s[0:i+1] + "\t" + Tabify(s[i+1:len(s)]);
+               }
+       }
+       return s
+}
+
 export type T struct {
        errors  string;
        failed  bool;
@@ -31,11 +41,11 @@ func (t *T) FailNow() {
 }
 
 func (t *T) Log(args ...) {
-       t.errors += "\t" + fmt.sprintln(args);
+       t.errors += "\t" + Tabify(fmt.sprintln(args));
 }
 
 func (t *T) Logf(format string, args ...) {
-       t.errors += fmt.sprintf("\t" + format, args);
+       t.errors += Tabify(fmt.sprintf("\t" + format, args));
        l := len(t.errors);
        if l > 0 && t.errors[l-1] != '\n' {
                t.errors += "\n"