Skip to content

Commit f225dda

Browse files
committed
Fixed reading from file when using standard separator (" ")
splitting and trimming for list parameters Revert "splitting and trimming for list parameters" This reverts commit dc60698. splitting and trimming for list parameters Revert "splitting and trimming for list parameters" This reverts commit 2f76521.
1 parent cea0c16 commit f225dda

File tree

1 file changed

+22
-5
lines changed

1 file changed

+22
-5
lines changed

src/main/java/com/beust/jcommander/JCommander.java

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -351,11 +351,28 @@ private String[] expandArgs(String[] originalArgv) {
351351
// Expand @
352352
//
353353
for (String arg : originalArgv) {
354-
355354
if (arg.startsWith("@")) {
356355
String fileName = arg.substring(1);
357-
vResult1.addAll(readFile(fileName));
358-
}
356+
List<String> fileArgs = readFile(fileName);
357+
List<String> splitFileArgs = Lists.newArrayList();
358+
//special treatment for standard separator (" ")
359+
String[] v1 = fileArgs.toArray(new String[0]);
360+
for (int i = 0; i < fileArgs.size(); i++) {
361+
String arg2 = fileArgs.get(i);
362+
if (isOption(v1, arg2)) {
363+
String sep = getSeparatorFor(v1, arg2);
364+
if (" ".equals(sep)) {
365+
String[] sp = arg2.split("[" + sep + "]", 2);
366+
for (String ssp : sp) {
367+
splitFileArgs.add(ssp);
368+
}
369+
}else{
370+
splitFileArgs.add(arg2);
371+
}
372+
}
373+
}
374+
vResult1.addAll(splitFileArgs);
375+
}
359376
else {
360377
List<String> expanded = expandDynamicArg(arg);
361378
vResult1.addAll(expanded);
@@ -481,9 +498,9 @@ private static List<String> readFile(String fileName) {
481498

482499
try {
483500
BufferedReader bufRead = new BufferedReader(new FileReader(fileName));
484-
501+
485502
String line;
486-
503+
487504
// Read through file one line at time. Print line # and line
488505
while ((line = bufRead.readLine()) != null) {
489506
// Allow empty lines and # comments in these at files

0 commit comments

Comments
 (0)