aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Willemsen <dwillemsen@google.com>2018-02-07 13:01:28 -0800
committerDan Willemsen <dwillemsen@google.com>2018-02-07 13:01:28 -0800
commit398aa879e959a01d3feb7ba18c2cb163ff41180e (patch)
treec75669fd7602753774c8113a2fd5f3a6761e2f2a
parent223a86e1a10b48c9676fb25364cdb3a164246f64 (diff)
parent054627c9ee92e6b0ef87e5ff3479b457d0c78bbe (diff)
downloadplatform_build_kati-398aa879e959a01d3feb7ba18c2cb163ff41180e.tar.gz
platform_build_kati-398aa879e959a01d3feb7ba18c2cb163ff41180e.tar.bz2
platform_build_kati-398aa879e959a01d3feb7ba18c2cb163ff41180e.zip
Merge remote-tracking branch 'aosp/upstream' into master
* aosp/upstream: Support the implicit "-a" in find Test: OUT_DIR=out DIST_DIR=dist prebuilts/build-tools/build-prebuilts.sh Change-Id: Ia1bf168a3ee4c7c01d66a810cacf648ab42e6edd
-rw-r--r--find.cc16
-rw-r--r--testcase/find_command.mk1
2 files changed, 11 insertions, 6 deletions
diff --git a/find.cc b/find.cc
index 1b9e23f..1bf0b9e 100644
--- a/find.cc
+++ b/find.cc
@@ -526,12 +526,16 @@ class FindCommandParser {
while (true) {
if (!GetNextToken(&tok))
return NULL;
- if (tok != "-and" && tok != "-a") {
- UngetToken(tok);
- return c.release();
+ if (tok == "-and" || tok == "-a") {
+ if (!GetNextToken(&tok) || tok.empty())
+ return NULL;
+ } else {
+ if (tok != "-not" && tok != "\\!" && tok != "\\(" && tok != "-name" &&
+ tok != "-type") {
+ UngetToken(tok);
+ return c.release();
+ }
}
- if (!GetNextToken(&tok) || tok.empty())
- return NULL;
unique_ptr<FindCond> r(ParseFact(tok));
if (!r.get()) {
return NULL;
@@ -562,7 +566,7 @@ class FindCommandParser {
}
// <expr> ::= <term> {<or> <term>}
- // <term> ::= <fact> {<and> <fact>}
+ // <term> ::= <fact> {[<and>] <fact>}
// <fact> ::= <not> <fact> | '\(' <expr> '\)' | <pred>
// <not> ::= '-not' | '\!'
// <and> ::= '-and' | '-a'
diff --git a/testcase/find_command.mk b/testcase/find_command.mk
index c3e8a07..b714879 100644
--- a/testcase/find_command.mk
+++ b/testcase/find_command.mk
@@ -67,6 +67,7 @@ endif
$(call run_find, find testdir -name "file1")
$(call run_find, find testdir -name "file1")
$(call run_find, find testdir -name "*1")
+ $(call run_find, find testdir -name "*1" -name "file*")
$(call run_find, find testdir -name "*1" -and -name "file*")
$(call run_find, find testdir -name "*1" -or -name "file*")
$(call run_find, find testdir -name "*1" -or -type f)