mirror of
https://github.com/golang/go
synced 2024-11-11 22:20:22 -07:00
text/template/parse: fix bug handling /*/
Incorrect syntax for comment was erroneously accepted. Fixes #3919. R=golang-dev, rsc CC=golang-dev https://golang.org/cl/6453105
This commit is contained in:
parent
4f308edc86
commit
2253f67157
@ -264,16 +264,17 @@ func lexText(l *lexer) stateFn {
|
||||
|
||||
// lexLeftDelim scans the left delimiter, which is known to be present.
|
||||
func lexLeftDelim(l *lexer) stateFn {
|
||||
if strings.HasPrefix(l.input[l.pos:], l.leftDelim+leftComment) {
|
||||
l.pos += len(l.leftDelim)
|
||||
if strings.HasPrefix(l.input[l.pos:], leftComment) {
|
||||
return lexComment
|
||||
}
|
||||
l.pos += len(l.leftDelim)
|
||||
l.emit(itemLeftDelim)
|
||||
return lexInsideAction
|
||||
}
|
||||
|
||||
// lexComment scans a comment. The left comment marker is known to be present.
|
||||
func lexComment(l *lexer) stateFn {
|
||||
l.pos += len(leftComment)
|
||||
i := strings.Index(l.input[l.pos:], rightComment+l.rightDelim)
|
||||
if i < 0 {
|
||||
return l.errorf("unclosed comment")
|
||||
|
@ -203,6 +203,10 @@ var lexTests = []lexTest{
|
||||
tRight,
|
||||
tEOF,
|
||||
}},
|
||||
{"text with bad comment", "hello-{{/*/}}-world", []item{
|
||||
{itemText, 0, "hello-"},
|
||||
{itemError, 0, `unclosed comment`},
|
||||
}},
|
||||
}
|
||||
|
||||
// collect gathers the emitted items into a slice.
|
||||
|
Loading…
Reference in New Issue
Block a user