summaryrefslogtreecommitdiff
path: root/caddyconfig/caddyfile/dispenser.go
diff options
context:
space:
mode:
authorWeidiDeng <weidi_deng@icloud.com>2023-07-13 04:32:22 +0800
committerGitHub <noreply@github.com>2023-07-12 14:32:22 -0600
commitbbe1952a59a196b7598c6488beb770ec38a70dfc (patch)
tree24b670b7a4c6c4293dda378a0def0f9706a9df1a /caddyconfig/caddyfile/dispenser.go
parent0e2c7e1d35b287fc0e56d6db2951f791e09b5a37 (diff)
caddyfile: Fix comparing if two tokens are on the same line (#5626)
* fix comparing if two tokens are on the same line * compare tokens from copies when importing
Diffstat (limited to 'caddyconfig/caddyfile/dispenser.go')
-rw-r--r--caddyconfig/caddyfile/dispenser.go28
1 files changed, 4 insertions, 24 deletions
diff --git a/caddyconfig/caddyfile/dispenser.go b/caddyconfig/caddyfile/dispenser.go
index 580de4a..6c33f4f 100644
--- a/caddyconfig/caddyfile/dispenser.go
+++ b/caddyconfig/caddyfile/dispenser.go
@@ -106,7 +106,7 @@ func (d *Dispenser) nextOnSameLine() bool {
}
curr := d.tokens[d.cursor]
next := d.tokens[d.cursor+1]
- if curr.File == next.File && curr.Line+curr.NumLineBreaks() == next.Line {
+ if !isNextOnNewLine(curr, next) {
d.cursor++
return true
}
@@ -127,7 +127,7 @@ func (d *Dispenser) NextLine() bool {
}
curr := d.tokens[d.cursor]
next := d.tokens[d.cursor+1]
- if curr.File != next.File || curr.Line+curr.NumLineBreaks() < next.Line {
+ if isNextOnNewLine(curr, next) {
d.cursor++
return true
}
@@ -464,17 +464,7 @@ func (d *Dispenser) isNewLine() bool {
prev := d.tokens[d.cursor-1]
curr := d.tokens[d.cursor]
-
- // If the previous token is from a different file,
- // we can assume it's from a different line
- if prev.File != curr.File {
- return true
- }
-
- // If the previous token (incl line breaks) ends
- // on a line earlier than the current token,
- // then the current token is on a new line
- return prev.Line+prev.NumLineBreaks() < curr.Line
+ return isNextOnNewLine(prev, curr)
}
// isNextOnNewLine determines whether the current token is on a different
@@ -490,15 +480,5 @@ func (d *Dispenser) isNextOnNewLine() bool {
curr := d.tokens[d.cursor]
next := d.tokens[d.cursor+1]
-
- // If the next token is from a different file,
- // we can assume it's from a different line
- if curr.File != next.File {
- return true
- }
-
- // If the current token (incl line breaks) ends
- // on a line earlier than the next token,
- // then the next token is on a new line
- return curr.Line+curr.NumLineBreaks() < next.Line
+ return isNextOnNewLine(curr, next)
}