diff options
author | jeremysolarz <jeremy.solarz@gmail.com> | 2017-03-05 17:08:53 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-05 17:08:53 +0100 |
commit | fab3cb966234895881a2134fdc4c394f0382d792 (patch) | |
tree | 52e0e5579d39b1ef5d6f2e78e75fc4719eb5ad6a | |
parent | 4b75f129a2247c8259d2129aa08d8a662af8ca9b (diff) | |
parent | 294e72533c7faaf3a71dc6ecf7633fe727097961 (diff) | |
download | jcommander-fab3cb966234895881a2134fdc4c394f0382d792.tar.gz |
Merge pull request #296 from slonopotamus/dash-dash-dash-dash-dash-dash
Fix '--' handling #296
-rw-r--r-- | CHANGELOG.md | 3 | ||||
-rw-r--r-- | src/main/java/com/beust/jcommander/JCommander.java | 5 | ||||
-rw-r--r-- | src/test/java/com/beust/jcommander/JCommanderTest.java | 39 |
3 files changed, 36 insertions, 11 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index d90c905..3fcc135 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,9 @@ ## Changelog ### Current -2017-03-04 +2017-03-05 +* Fixed: '--' handling, #296 * Added: Add `getProgramName` to `JCommander`, #247 * Added: Documentation for `listConverter` and `splitter`, #253, (@jeremysolarz) * Fixed: Return right parameter name in exception, #227, (@jeremysolarz) diff --git a/src/main/java/com/beust/jcommander/JCommander.java b/src/main/java/com/beust/jcommander/JCommander.java index 9656ab0..ac28cca 100644 --- a/src/main/java/com/beust/jcommander/JCommander.java +++ b/src/main/java/com/beust/jcommander/JCommander.java @@ -691,11 +691,10 @@ public class JCommander { // // Main parameter // - if ("--".equals(arg)) { + if ("--".equals(arg) && !isDashDash) { isDashDash = true; - a = trim(args[++i]); } - if (commands.isEmpty()) { + else if (commands.isEmpty()) { // // Regular (non-command) parsing // diff --git a/src/test/java/com/beust/jcommander/JCommanderTest.java b/src/test/java/com/beust/jcommander/JCommanderTest.java index 9cec462..4c3feab 100644 --- a/src/test/java/com/beust/jcommander/JCommanderTest.java +++ b/src/test/java/com/beust/jcommander/JCommanderTest.java @@ -1265,13 +1265,38 @@ public class JCommanderTest { Assert.assertEquals(a.endpoint, Lists.newArrayList("dev")); } - public void dashDashParameter() { - class Parameters { - @Parameter(names = {"-name"}) - public String name; - @Parameter - public List<String> mainParameters; - } + @Test + public void dashDashEmpty() { + class Parameters { + @Parameter + public List<String> mainParameters = new ArrayList<>(); + } + + Parameters a = new Parameters(); + new JCommander(a, "--"); + Assert.assertTrue(a.mainParameters.isEmpty()); + } + + @Test + public void dashDashDashDash() { + class Parameters { + @Parameter + public List<String> mainParameters = new ArrayList<>(); + } + + Parameters a = new Parameters(); + new JCommander(a, "--", "--"); + Assert.assertEquals(a.mainParameters.size(), 1); + Assert.assertEquals(a.mainParameters.get(0), "--"); + } + + public void dashDashParameter() { + class Parameters { + @Parameter(names = { "-name" }) + public String name; + @Parameter + public List<String> mainParameters; + } Parameters a = new Parameters(); new JCommander(a, "-name", "theName", "--", "param1", "param2"); |