Skip to content

Commit

Permalink
Merge pull request #4 from mvdan/crlf-2
Browse files Browse the repository at this point in the history
fix parsing CRLF files, part 2
  • Loading branch information
warpfork authored Sep 24, 2021
2 parents 73c1a4a + 97e3a9a commit 9dc11b3
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions read.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,17 +51,17 @@ func Parse(data []byte) (*Document, error) {
var expectCodeBlock bool
var codeBlockOffset int
hunkInProgress := DocHunk{LineStart: -1}
for i, line := range doc.Lines {
for i, origLine := range doc.Lines {
// Support CRLF line endings, for Windows.
line = bytes.TrimSuffix(line, sigilCarriageReturn)
line := bytes.TrimSuffix(origLine, sigilCarriageReturn)

// Check for transition in or out of codeblock.
if bytes.HasPrefix(line, sigilCodeBlock) {
switch inCodeBlock {
case false: // starting a block
if expectCodeBlock {
hunkInProgress.BlockTag = string(line[len(sigilCodeBlock):])
codeBlockOffset = offset + len(line) + 1
codeBlockOffset = offset + len(origLine) + 1
}
expectCodeBlock = false
case true: // ending a block
Expand Down Expand Up @@ -120,7 +120,7 @@ func Parse(data []byte) (*Document, error) {
next:
// Track total offset, so we can use it to subslice out document hunks.
// Mind: this is going to be off by one at the very end of the file... but that turns out never to matter to us.
offset += len(line) + 1
offset += len(origLine) + 1
}
return &doc, nil
}

0 comments on commit 9dc11b3

Please sign in to comment.