Skip to content

Commit 3f3a49c

Browse files
committed
Fixed reading from file when using standard separator (" ")
1 parent cea0c16 commit 3f3a49c

File tree

1 file changed

+24
-5
lines changed

1 file changed

+24
-5
lines changed

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

+24-5
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@
3838
import java.util.Map;
3939
import java.util.ResourceBundle;
4040

41+
import bsh.classpath.BshClassPath.GeneratedClassSource;
42+
4143
import com.beust.jcommander.FuzzyMap.IKey;
4244
import com.beust.jcommander.converters.IParameterSplitter;
4345
import com.beust.jcommander.converters.NoConverter;
@@ -351,11 +353,28 @@ private String[] expandArgs(String[] originalArgv) {
351353
// Expand @
352354
//
353355
for (String arg : originalArgv) {
354-
355356
if (arg.startsWith("@")) {
356357
String fileName = arg.substring(1);
357-
vResult1.addAll(readFile(fileName));
358-
}
358+
List<String> fileArgs = readFile(fileName);
359+
List<String> splitFileArgs = Lists.newArrayList();
360+
//special treatment for standard separator (" ")
361+
String[] v1 = fileArgs.toArray(new String[0]);
362+
for (int i = 0; i < fileArgs.size(); i++) {
363+
String arg2 = fileArgs.get(i);
364+
if (isOption(v1, arg2)) {
365+
String sep = getSeparatorFor(v1, arg2);
366+
if (" ".equals(sep)) {
367+
String[] sp = arg2.split("[" + sep + "]", 2);
368+
for (String ssp : sp) {
369+
splitFileArgs.add(ssp);
370+
}
371+
}else{
372+
splitFileArgs.add(arg2);
373+
}
374+
}
375+
}
376+
vResult1.addAll(splitFileArgs);
377+
}
359378
else {
360379
List<String> expanded = expandDynamicArg(arg);
361380
vResult1.addAll(expanded);
@@ -481,9 +500,9 @@ private static List<String> readFile(String fileName) {
481500

482501
try {
483502
BufferedReader bufRead = new BufferedReader(new FileReader(fileName));
484-
503+
485504
String line;
486-
505+
487506
// Read through file one line at time. Print line # and line
488507
while ((line = bufRead.readLine()) != null) {
489508
// Allow empty lines and # comments in these at files

0 commit comments

Comments
 (0)