aboutsummaryrefslogtreecommitdiffhomepage
path: root/caddyconfig/caddyfile/formatter.go
diff options
context:
space:
mode:
Diffstat (limited to 'caddyconfig/caddyfile/formatter.go')
-rw-r--r--caddyconfig/caddyfile/formatter.go12
1 files changed, 8 insertions, 4 deletions
diff --git a/caddyconfig/caddyfile/formatter.go b/caddyconfig/caddyfile/formatter.go
index 764f79118..d506219c4 100644
--- a/caddyconfig/caddyfile/formatter.go
+++ b/caddyconfig/caddyfile/formatter.go
@@ -124,18 +124,22 @@ 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
}
- continue
}
if last == '<' && space {