Fix comments with continuation

Backgound: aog/919954 tried to handle
```
   second line
```

but did it incorrectly. The parser works correctly (so this change
reverts aog/919954), it returns multiline comment, but the serializer
converting the internal representation to Blueprint was not emitting
'//' on the lines after the first.

Test: treehugger
Bug: 127521510
Change-Id: I0257a8b3cc4ffcaa6bea44113ceba66bb99d7e43
This commit is contained in:
Sasha Smundak
2020-11-19 02:20:40 -08:00
parent b479459ac9
commit 7890211d58
3 changed files with 10 additions and 9 deletions

View File

@@ -137,7 +137,14 @@ func ConvertFile(filename string, buffer *bytes.Buffer) (string, []error) {
switch x := node.(type) {
case *mkparser.Comment:
file.insertComment("//" + x.Comment)
// Split the comment on escaped newlines and then
// add each chunk separately.
chunks := strings.Split(x.Comment, "\\\n")
file.insertComment("//" + chunks[0])
for i := 1; i < len(chunks); i++ {
file.bpPos.Line++
file.insertComment("//" + chunks[i])
}
case *mkparser.Assignment:
handleAssignment(file, x, assignmentCond)
case *mkparser.Directive:

View File

@@ -1260,10 +1260,10 @@ prebuilt_firmware {
desc: "comment with ESC",
in: `
# Comment line 1 \
# Comment line 2
Comment line 2
`,
expected: `
// Comment line 1 \
// Comment line 1
// Comment line 2
`,
},