]> Cypherpunks repositories - gostls13.git/commitdiff
add {.tab}
authorRob Pike <r@golang.org>
Wed, 22 Apr 2009 07:53:35 +0000 (00:53 -0700)
committerRob Pike <r@golang.org>
Wed, 22 Apr 2009 07:53:35 +0000 (00:53 -0700)
fix a couple of comments

TBR=rsc
OCL=27716
CL=27716

src/lib/template/template.go
src/lib/template/template_test.go

index 6be09500053da926a5f5b6547d8c1f019b586b43..1676a8fdde1a08c8cc2cbb67251f03167e05c228 100644 (file)
@@ -73,10 +73,11 @@ type ParseError struct {
        os.ErrorString
 }
 
-// All the literals are aces.
+// Most of the literals are aces.
 var lbrace = []byte{ '{' }
 var rbrace = []byte{ '}' }
 var space = []byte{ ' ' }
+var tab = []byte{ '\t' }
 
 // The various types of "tokens", which are plain text or (usually) brace-delimited descriptors
 const (
@@ -330,7 +331,7 @@ func (t *Template) analyze(item []byte) (tok int, w []string) {
                return;
        }
        switch w[0] {
-       case ".meta-left", ".meta-right", ".space":
+       case ".meta-left", ".meta-right", ".space", ".tab":
                tok = tokLiteral;
                return;
        case ".or":
@@ -413,6 +414,8 @@ func (t *Template) parseSimple(item []byte) (done bool, tok int, w []string) {
                        t.elems.Push(&literalElement{t.rdelim});
                case ".space":
                        t.elems.Push(&literalElement{space});
+               case ".tab":
+                       t.elems.Push(&literalElement{tab});
                default:
                        t.parseError("internal error: unknown literal: %s", w[0]);
                }
@@ -714,7 +717,7 @@ func validDelim(d []byte) bool {
        return true;
 }
 
-// Public interface
+// -- Public interface
 
 // Parse initializes a Template by parsing its definition.  The string
 // s contains the template text.  If any errors occur, Parse returns
@@ -730,11 +733,10 @@ func (t *Template) Parse(s string) (err os.Error) {
                t.parse();
                t.errorchan <- nil;     // clean return;
        }();
-       err = <-t.errorchan;
-       return
+       return <-t.errorchan;
 }
 
-// Execute executes a parsed template on the specified data object,
+// Execute applies a parsed template to the specified data object,
 // generating output to wr.
 func (t *Template) Execute(data interface{}, wr io.Write) os.Error {
        // Extract the driver data.
index bad417669caac14594c30df4213863496969be35..cacc4404fad7c3e9bdde7c9c46599a90c540bfe4 100644 (file)
@@ -73,6 +73,7 @@ var tests = []*Test {
        &Test{ " {.meta-left}   \n", "{" },
        &Test{ " {.meta-right}   \n", "}" },
        &Test{ " {.space}   \n", " " },
+       &Test{ " {.tab}   \n", "\t" },
        &Test{ "     {#comment}   \n", "" },
 
        // Variables at top level