Merge changes from topic "glob_escapes"

* changes:
  Revert "soong_zip: support globs in -f and -D arguments"
  Revert "Add a --symlinks argument to soong_zip"
diff --git a/java/app_builder.go b/java/app_builder.go
index e27b1b7..954ca44 100644
--- a/java/app_builder.go
+++ b/java/app_builder.go
@@ -103,10 +103,10 @@
 			`cp ${manifest} ${outDir}/AndroidManifest.xml && ` +
 			`cp ${classesJar} ${outDir}/classes.jar && ` +
 			`cp ${rTxt} ${outDir}/R.txt && ` +
-			`${config.SoongZipCmd} -jar -o $out -C ${outDir} -D ${outDir}`,
+			`${config.SoongZipCmd} -jar -o $out -C ${outDir} -D ${outDir} ${resArgs}`,
 		CommandDeps: []string{"${config.SoongZipCmd}"},
 	},
-	"manifest", "classesJar", "rTxt", "outDir")
+	"manifest", "classesJar", "rTxt", "resArgs", "outDir")
 
 func BuildAAR(ctx android.ModuleContext, outputFile android.WritablePath,
 	classesJar, manifest, rTxt android.Path, res android.Paths) {
diff --git a/java/builder.go b/java/builder.go
index 07af8eb..48b5a7b 100644
--- a/java/builder.go
+++ b/java/builder.go
@@ -321,7 +321,7 @@
 		Output:      outputFile,
 		Implicits:   deps,
 		Args: map[string]string{
-			"jarArgs": strings.Join(proptools.NinjaAndShellEscape(jarArgs), " "),
+			"jarArgs": strings.Join(proptools.NinjaEscape(jarArgs), " "),
 		},
 	})
 }
diff --git a/java/java_resources.go b/java/java_resources.go
index 4d8a757..fdc1590 100644
--- a/java/java_resources.go
+++ b/java/java_resources.go
@@ -20,8 +20,6 @@
 	"strings"
 
 	"android/soong/android"
-
-	"github.com/google/blueprint/pathtools"
 )
 
 var resourceExcludes = []string{
@@ -66,7 +64,7 @@
 					if !strings.HasPrefix(path, dir.String()) {
 						panic(fmt.Errorf("path %q does not start with %q", path, dir))
 					}
-					args = append(args, "-f", pathtools.MatchEscape(path))
+					args = append(args, "-f", path)
 				}
 			}
 		}
@@ -109,7 +107,7 @@
 		if i == 0 || dir != lastDir {
 			args = append(args, "-C", dir)
 		}
-		args = append(args, "-f", pathtools.MatchEscape(path))
+		args = append(args, "-f", path)
 		lastDir = dir
 	}
 
diff --git a/zip/cmd/main.go b/zip/cmd/main.go
index c4e1196..dfd56dc 100644
--- a/zip/cmd/main.go
+++ b/zip/cmd/main.go
@@ -186,8 +186,6 @@
 	emulateJar := flags.Bool("jar", false, "modify the resultant .zip to emulate the output of 'jar'")
 	writeIfChanged := flags.Bool("write_if_changed", false, "only update resultant .zip if it has changed")
 
-	symlinks := flags.Bool("symlinks", true, "store symbolic links in zip instead of following them")
-
 	parallelJobs := flags.Int("parallel", runtime.NumCPU(), "number of parallel threads to use")
 	cpuProfile := flags.String("cpuprofile", "", "write cpu profile to file")
 	traceFile := flags.String("trace", "", "write trace to file")
@@ -201,11 +199,6 @@
 
 	flags.Parse(expandedArgs[1:])
 
-	if flags.NArg() > 0 {
-		fmt.Fprintf(os.Stderr, "unexpected arguments %s\n", strings.Join(flags.Args(), " "))
-		usage()
-	}
-
 	err := zip.Run(zip.ZipArgs{
 		FileArgs:                 fArgs,
 		OutputFilePath:           *out,
@@ -218,10 +211,9 @@
 		NumParallelJobs:          *parallelJobs,
 		NonDeflatedFiles:         nonDeflatedFiles,
 		WriteIfChanged:           *writeIfChanged,
-		StoreSymlinks:            *symlinks,
 	})
 	if err != nil {
-		fmt.Fprintln(os.Stderr, "error:", err.Error())
+		fmt.Fprintln(os.Stderr, err.Error())
 		os.Exit(1)
 	}
 }
diff --git a/zip/zip.go b/zip/zip.go
index d9645b8..6b36e10 100644
--- a/zip/zip.go
+++ b/zip/zip.go
@@ -107,7 +107,6 @@
 
 	compressorPool sync.Pool
 	compLevel      int
-	followSymlinks pathtools.ShouldFollowSymlinks
 }
 
 type zipEntry struct {
@@ -133,7 +132,6 @@
 	NumParallelJobs          int
 	NonDeflatedFiles         map[string]bool
 	WriteIfChanged           bool
-	StoreSymlinks            bool
 }
 
 const NOQUOTE = '\x00'
@@ -214,36 +212,21 @@
 		args.AddDirectoryEntriesToZip = true
 	}
 
-	// Have Glob follow symlinks if they are not being stored as symlinks in the zip file.
-	followSymlinks := pathtools.ShouldFollowSymlinks(!args.StoreSymlinks)
-
 	w := &ZipWriter{
-		time:           jar.DefaultTime,
-		createdDirs:    make(map[string]string),
-		createdFiles:   make(map[string]string),
-		directories:    args.AddDirectoryEntriesToZip,
-		compLevel:      args.CompressionLevel,
-		followSymlinks: followSymlinks,
+		time:         jar.DefaultTime,
+		createdDirs:  make(map[string]string),
+		createdFiles: make(map[string]string),
+		directories:  args.AddDirectoryEntriesToZip,
+		compLevel:    args.CompressionLevel,
 	}
 	pathMappings := []pathMapping{}
 
 	noCompression := args.CompressionLevel == 0
 
 	for _, fa := range args.FileArgs {
-		var srcs []string
-		for _, s := range fa.SourceFiles {
-			globbed, _, err := pathtools.Glob(s, nil, followSymlinks)
-			if err != nil {
-				return err
-			}
-			srcs = append(srcs, globbed...)
-		}
+		srcs := fa.SourceFiles
 		if fa.GlobDir != "" {
-			globbed, _, err := pathtools.Glob(filepath.Join(fa.GlobDir, "**/*"), nil, followSymlinks)
-			if err != nil {
-				return err
-			}
-			srcs = append(srcs, globbed...)
+			srcs = append(srcs, recursiveGlobFiles(fa.GlobDir)...)
 		}
 		for _, src := range srcs {
 			err := fillPathPairs(fa, src, &pathMappings, args.NonDeflatedFiles, noCompression)
@@ -478,15 +461,7 @@
 	var fileSize int64
 	var executable bool
 
-	var s os.FileInfo
-	var err error
-	if z.followSymlinks {
-		s, err = os.Stat(src)
-	} else {
-		s, err = os.Lstat(src)
-	}
-
-	if err != nil {
+	if s, err := os.Lstat(src); err != nil {
 		return err
 	} else if s.IsDir() {
 		if z.directories {