diff options
author | WeidiDeng <weidi_deng@icloud.com> | 2023-07-13 04:32:22 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-12 14:32:22 -0600 |
commit | bbe1952a59a196b7598c6488beb770ec38a70dfc (patch) | |
tree | 24b670b7a4c6c4293dda378a0def0f9706a9df1a /caddyconfig/caddyfile/dispenser.go | |
parent | 0e2c7e1d35b287fc0e56d6db2951f791e09b5a37 (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.go | 28 |
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) } |