diff options
author | cushon <cushon@google.com> | 2017-04-13 22:29:04 +0200 |
---|---|---|
committer | Jakob Buchgraber <buchgr@google.com> | 2017-04-14 12:40:51 +0200 |
commit | 11789f49e26be9c9dfb225b32ea0413258a8cb8c (patch) | |
tree | 025831a227e450951eb9e5224308477270484319 /src/java_tools | |
parent | 3a759c41c022f9837110672d7b4834b69f527867 (diff) |
Fix escaping of '@' in javabuilder command lines
"@" is used to denote params files, so when it appears in labels it is
escaped as "@@". The second "@" should be removed during flag parsing
to avoid e.g. having it show up in strict deps errors.
See bazelbuild/buildtools#83
PiperOrigin-RevId: 153098855
Diffstat (limited to 'src/java_tools')
-rw-r--r-- | src/java_tools/buildjar/java/com/google/devtools/build/buildjar/OptionsParser.java | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/OptionsParser.java b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/OptionsParser.java index feebbe2691..e50b5ceed5 100644 --- a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/OptionsParser.java +++ b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/OptionsParser.java @@ -252,7 +252,9 @@ public final class OptionsParser { * @throws java.io.IOException if one of the files containing options cannot be read. */ private static void expandArgument(Deque<String> expanded, String arg) throws IOException { - if (arg.startsWith("@") && !arg.startsWith("@@")) { + if (arg.startsWith("@@")) { + expanded.add(arg.substring(1)); + } else if (arg.startsWith("@")) { for (String line : Files.readAllLines(Paths.get(arg.substring(1)), UTF_8)) { if (line.length() > 0) { expandArgument(expanded, line); |