]> Cypherpunks repositories - gostls13.git/commitdiff
template: retain leading space if the line is not an action.
authorRob Pike <r@golang.org>
Mon, 16 Aug 2010 23:44:16 +0000 (09:44 +1000)
committerRob Pike <r@golang.org>
Mon, 16 Aug 2010 23:44:16 +0000 (09:44 +1000)
R=rsc
CC=golang-dev
https://golang.org/cl/1985042

src/pkg/template/template.go
src/pkg/template/template_test.go

index debcad4c0b2711a5343f537088fbedd10391cd5f..19d94c8fe253d4bf188be1b5feecce867e9f1348 100644 (file)
@@ -234,9 +234,7 @@ func (t *Template) nextItem() []byte {
                        break
                }
        }
-       if trimSpace {
-               start = i
-       } else if i > start {
+       if !trimSpace && i > start {
                // white space is valid text
                t.p = i
                return t.buf[start:i]
@@ -252,6 +250,9 @@ Switch:
                i += len(t.ldelim) // position after delimiter
                if i+1 < len(t.buf) && (t.buf[i] == '.' || t.buf[i] == '#') {
                        special = true
+                       if trimSpace {
+                               start = i - len(t.ldelim)
+                       }
                }
                for ; i < len(t.buf); i++ {
                        if t.buf[i] == '\n' {
index 8157972e42330cb7a5410999a72d6e8741ba7ba7..3ce6a4bb400b9e611afe3e86d7c585a81e033fcf 100644 (file)
@@ -98,6 +98,7 @@ var tests = []*Test{
        &Test{" {.space}   \n", " ", ""},
        &Test{" {.tab}   \n", "\t", ""},
        &Test{"     {#comment}   \n", "", ""},
+       &Test{"\tSome Text\t\n", "\tSome Text\t\n", ""},
 
        // Variables at top level
        &Test{