aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/java_tools
diff options
context:
space:
mode:
authorGravatar cushon <cushon@google.com>2017-04-13 22:29:04 +0200
committerGravatar Jakob Buchgraber <buchgr@google.com>2017-04-14 12:40:51 +0200
commit11789f49e26be9c9dfb225b32ea0413258a8cb8c (patch)
tree025831a227e450951eb9e5224308477270484319 /src/java_tools
parent3a759c41c022f9837110672d7b4834b69f527867 (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.java4
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);