Fix escaped_comment.mk
diff --git a/parser.go b/parser.go
index a51e32c..6688537 100644
--- a/parser.go
+++ b/parser.go
@@ -90,7 +90,9 @@
func removeComment(line []byte) []byte {
var parenStack []byte
- for i, ch := range line {
+ // Do not use range as we may modify |line| and |i|.
+ for i := 0; i < len(line); i++ {
+ ch := line[i]
switch ch {
case '(', '{':
parenStack = append(parenStack, ch)
@@ -100,7 +102,12 @@
}
case '#':
if len(parenStack) == 0 {
- return line[:i]
+ if i == 0 || line[i-1] != '\\' {
+ return line[:i]
+ }
+ // Drop the backslash before '#'.
+ line = append(line[:i-1], line[i:]...)
+ i--
}
}
}