From 792eba220edcabd08f4b1d2172f7e3711d1a715b Mon Sep 17 00:00:00 2001 From: David Symonds Date: Sat, 29 Aug 2009 21:13:32 -0700 Subject: [PATCH] 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 --- src/pkg/template/template.go | 4 ++-- src/pkg/template/template_test.go | 11 +++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) 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" -- 2.48.1