From 53ca8b2512dd9f4bd78d5b70d43d37e6dea5771d Mon Sep 17 00:00:00 2001 From: Min Yun Date: Fri, 23 Feb 2024 23:16:14 +0900 Subject: [PATCH] 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 --- androidmk/parser/parser.go | 3 +++ androidmk/parser/parser_test.go | 16 ++++++++++++++++ 2 files changed, 19 insertions(+) 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) {