diff options
author | 2024-02-23 23:16:14 +0900 | |
---|---|---|
committer | 2024-02-24 08:08:08 +0900 | |
commit | 53ca8b2512dd9f4bd78d5b70d43d37e6dea5771d (patch) | |
tree | 296102cdadba661f9c9610ed173a96160eca7cd0 | |
parent | f8c004263a41265708da3553d0fff2910faaea59 (diff) |
Handles if a space is encountered while parsing the rule
kati and GNU make may have blank lines in the middle of commands declared in rules.
Add compatibility for this.
Change-Id: Iae03053c0cb901074c26420c0c6ac1c0e00d99de
-rw-r--r-- | androidmk/parser/parser.go | 3 | ||||
-rw-r--r-- | androidmk/parser/parser_test.go | 16 |
2 files changed, 19 insertions, 0 deletions
diff --git a/androidmk/parser/parser.go b/androidmk/parser/parser.go index fb6be38e9..8a20bb052 100644 --- a/androidmk/parser/parser.go +++ b/androidmk/parser/parser.go @@ -413,6 +413,9 @@ loop: p.accept('\t') newLine = false continue loop + } else if p.tok == '\n' { + p.accept('\n') + continue loop } else if p.parseDirective() { newLine = false continue diff --git a/androidmk/parser/parser_test.go b/androidmk/parser/parser_test.go index 9efebf8e1..db3313d27 100644 --- a/androidmk/parser/parser_test.go +++ b/androidmk/parser/parser_test.go @@ -84,6 +84,22 @@ endif`, }, }, }, + { + name: "Blank line in rule's command", + in: `all: + echo first line + + echo second line`, + out: []Node{ + &Rule{ + Target: SimpleMakeString("all", NoPos), + RecipePos: NoPos, + Recipe: "echo first line\necho second line", + Prerequisites: SimpleMakeString("", NoPos), + }, + }, + }, + } func TestParse(t *testing.T) { |