summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCedric Beust <cedric@beust.com>2013-07-05 23:36:56 -0700
committerCedric Beust <cedric@beust.com>2013-07-05 23:36:56 -0700
commit33dcbc6fdca9e9318a37b9f3b8e4f821c69b0f7b (patch)
tree878c54383520597e0cfdba7bf6732547f9bb4a0a
parente014aa0143809847d06e6923ce4a5949b3c0e401 (diff)
parentb2435441a8c891f9577fdab4421a580f5f807758 (diff)
downloadplatform_external_jcommander-33dcbc6fdca9e9318a37b9f3b8e4f821c69b0f7b.tar.gz
platform_external_jcommander-33dcbc6fdca9e9318a37b9f3b8e4f821c69b0f7b.tar.bz2
platform_external_jcommander-33dcbc6fdca9e9318a37b9f3b8e4f821c69b0f7b.zip
Merge pull request #157 from mikedrob/quotes
Quotes
-rw-r--r--src/main/java/com/beust/jcommander/JCommander.java3
-rw-r--r--src/test/java/test/QuotedMainTest.java29
2 files changed, 31 insertions, 1 deletions
diff --git a/src/main/java/com/beust/jcommander/JCommander.java b/src/main/java/com/beust/jcommander/JCommander.java
index 1bc0084..b78d890 100644
--- a/src/main/java/com/beust/jcommander/JCommander.java
+++ b/src/main/java/com/beust/jcommander/JCommander.java
@@ -680,6 +680,7 @@ public class JCommander {
while (i < args.length && ! commandParsed) {
String arg = args[i];
String a = trim(arg);
+ args[i] = a;
p("Parsing arg: " + a);
JCommander jc = findCommandByAlias(arg);
@@ -748,7 +749,7 @@ public class JCommander {
// Regular (non-command) parsing
//
List mp = getMainParameter(arg);
- String value = arg;
+ String value = a; // If there's a non-quoted version, prefer that one
Object convertedValue = value;
if (m_mainParameter.getGenericType() instanceof ParameterizedType) {
diff --git a/src/test/java/test/QuotedMainTest.java b/src/test/java/test/QuotedMainTest.java
new file mode 100644
index 0000000..abb97c0
--- /dev/null
+++ b/src/test/java/test/QuotedMainTest.java
@@ -0,0 +1,29 @@
+package test;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+import com.beust.jcommander.JCommander;
+import com.beust.jcommander.Parameter;
+
+public class QuotedMainTest {
+ @Parameter
+ List<String> args = new ArrayList<String>();
+
+ String quoted = "\" \"";
+
+ @Test
+ public void testMain() {
+ JCommander jc = new JCommander(this);
+ jc.parse(quoted);
+ Assert.assertEquals(args.size(), 1);
+ Assert.assertEquals(args.get(0), " ");
+ }
+
+ public static void main(String[] args) {
+ new QuotedMainTest().testMain();
+ }
+}