From: David Symonds Date: Sun, 30 Aug 2009 04:13:32 +0000 (-0700) Subject: Fix .alternates execution: it was skipping every second token. X-Git-Tag: weekly.2009-11-06~714 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=792eba220edcabd08f4b1d2172f7e3711d1a715b;p=gostls13.git Fix .alternates execution: it was skipping every second token. R=r APPROVED=r DELTA=13 (11 added, 0 deleted, 2 changed) OCL=34081 CL=34081 --- diff --git a/src/pkg/template/template.go b/src/pkg/template/template.go index 5667aba2d6..0df31755ac 100644 --- a/src/pkg/template/template.go +++ b/src/pkg/template/template.go @@ -738,7 +738,7 @@ func (t *Template) executeRepeated(r *repeatedElement, st *state) { // .alternates between elements if !first && r.altstart >= 0 { - for i := r.altstart; i < r.altend; i++ { + for i := r.altstart; i < r.altend; { i = t.executeElement(i, newst) } } @@ -758,7 +758,7 @@ func (t *Template) executeRepeated(r *repeatedElement, st *state) { // .alternates between elements if !first && r.altstart >= 0 { - for i := r.altstart; i < r.altend; i++ { + for i := r.altstart; i < r.altend; { i = t.executeElement(i, newst) } } diff --git a/src/pkg/template/template_test.go b/src/pkg/template/template_test.go index 74db28a268..74418699ff 100644 --- a/src/pkg/template/template_test.go +++ b/src/pkg/template/template_test.go @@ -187,6 +187,17 @@ var tests = []*Test { out: "this should appear: empty field\n" }, + &Test{ + in: "{.repeated section pdata }\n" + "{item}\n" + "{.alternates with}\n" + "is\nover\nmultiple\nlines\n" + "{.end}\n", + + out: "ItemNumber1\n" + "is\nover\nmultiple\nlines\n" + "ItemNumber2\n" + }, &Test{ in: "{.section pdata }\n" "{.repeated section @ }\n"