Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7890211d authored by Sasha Smundak's avatar Sasha Smundak
Browse files

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
parent b479459a
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -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:
+2 −2
Original line number Diff line number Diff line
@@ -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
`,
	},
+0 −6
Original line number Diff line number Diff line
@@ -497,12 +497,6 @@ loop:
		switch p.tok {
		case '\\':
			p.parseEscape()
			if p.tok == '\n' {
				// Special case: '\' does not "escape" newline in comment (b/127521510)
				comment += "\\"
				p.accept(p.tok)
				break loop
			}
			comment += "\\" + p.scanner.TokenText()
			p.accept(p.tok)
		case '\n':