caddyfile: Assert having a space after heredoc marker to simply check (#6117)

This commit is contained in:
bbaa 2024-02-20 20:29:20 +08:00 committed by GitHub
parent 4284e39a17
commit 8bbf8ec629
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 8 additions and 4 deletions

View File

@ -124,19 +124,23 @@ func Format(input []byte) []byte {
}
// if we're in a heredoc, all characters are read&write as-is
if heredoc == heredocOpened {
write(ch)
heredocClosingMarker = append(heredocClosingMarker, ch)
if len(heredocClosingMarker) > len(heredocMarker) {
if len(heredocClosingMarker) > len(heredocMarker)+1 { // We assert that the heredocClosingMarker is followed by a unicode.Space
heredocClosingMarker = heredocClosingMarker[1:]
}
// check if we're done
if slices.Equal(heredocClosingMarker, heredocMarker) {
if unicode.IsSpace(ch) && slices.Equal(heredocClosingMarker[:len(heredocClosingMarker)-1], heredocMarker) {
heredocMarker = nil
heredocClosingMarker = nil
heredoc = heredocClosed
} else {
write(ch)
if ch == '\n' {
heredocClosingMarker = heredocClosingMarker[:0]
}
continue
}
}
if last == '<' && space {
space = false