From f225ddab80d678b79592fc9d612830d6b74dca9f Mon Sep 17 00:00:00 2001 From: TKlerx Date: Fri, 13 Mar 2015 15:12:35 +0100 Subject: [PATCH] Fixed reading from file when using standard separator (" ") splitting and trimming for list parameters Revert "splitting and trimming for list parameters" This reverts commit dc606986f114e66ecc9a06c1be9900586dd7249c. splitting and trimming for list parameters Revert "splitting and trimming for list parameters" This reverts commit 2f76521253054bb9b321e7020e652d0d77d87d60. --- .../java/com/beust/jcommander/JCommander.java | 27 +++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/beust/jcommander/JCommander.java b/src/main/java/com/beust/jcommander/JCommander.java index 2e049a11..585ac73a 100644 --- a/src/main/java/com/beust/jcommander/JCommander.java +++ b/src/main/java/com/beust/jcommander/JCommander.java @@ -351,11 +351,28 @@ private String[] expandArgs(String[] originalArgv) { // Expand @ // for (String arg : originalArgv) { - if (arg.startsWith("@")) { String fileName = arg.substring(1); - vResult1.addAll(readFile(fileName)); - } + List fileArgs = readFile(fileName); + List splitFileArgs = Lists.newArrayList(); + //special treatment for standard separator (" ") + String[] v1 = fileArgs.toArray(new String[0]); + for (int i = 0; i < fileArgs.size(); i++) { + String arg2 = fileArgs.get(i); + if (isOption(v1, arg2)) { + String sep = getSeparatorFor(v1, arg2); + if (" ".equals(sep)) { + String[] sp = arg2.split("[" + sep + "]", 2); + for (String ssp : sp) { + splitFileArgs.add(ssp); + } + }else{ + splitFileArgs.add(arg2); + } + } + } + vResult1.addAll(splitFileArgs); + } else { List expanded = expandDynamicArg(arg); vResult1.addAll(expanded); @@ -481,9 +498,9 @@ private static List readFile(String fileName) { try { BufferedReader bufRead = new BufferedReader(new FileReader(fileName)); - + String line; - + // Read through file one line at time. Print line # and line while ((line = bufRead.readLine()) != null) { // Allow empty lines and # comments in these at files