You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Pierre-Luc Lacroix (JIRA)" <ji...@apache.org> on 2014/09/16 16:27:33 UTC
[jira] [Updated] (CLI-246) GnuParser removes first character from
longer argument containing single character option
[ https://issues.apache.org/jira/browse/CLI-246?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Pierre-Luc Lacroix updated CLI-246:
-----------------------------------
Description:
Title might be hard to understand, but basically:
Arguments:
String [] cli = {"-cc", "-ccc", "-c"};
Options:
Options opts = new Options();
opts.addOption(OptionBuilder.create("cc"));
opts.addOption(OptionBuilder.create("c"));
As you can see, "-ccc" is an extra unrecognized argument.
When you try to parse it:
CommandLineParser parser = new GnuParser();
CommandLine line = parser.parse(opts, cli, true);
Content on line:
args: [cc, -c]
line: [[ option: cc :: null ], [ option: c :: null ]]
I would expect:
args: [-ccc]
line: [[ option: cc :: null ], [ option: c :: null ]]
Wrote a little unit test (that fails):
{code:title=UnitTest.java|borderStyle=solid}
@Test
public void test3() throws ParseException {
String [] cli = {"-cc", "-ccc", "-c"};
Options opts = new Options();
opts.addOption(OptionBuilder.create("cc"));
opts.addOption(OptionBuilder.create("c"));
CommandLineParser parser = new GnuParser();
CommandLine line = parser.parse(opts, cli, true);
if (line.getArgs().length > 0 ) {
Assert.assertEquals("-ccc", line.getArgList().get(0));
}
}
{code}
was:
Title might be hard to understand, but basically:
Arguments:
String [] cli = {"-cc", "-ccc", "-c"};
Options:
Options opts = new Options();
opts.addOption(OptionBuilder.create("cc"));
opts.addOption(OptionBuilder.create("c"));
As you can see, "-ccc" is an extra unrecognized argument.
When you try to parse it:
CommandLineParser parser = new GnuParser();
CommandLine line = parser.parse(opts, cli, true);
Content on line:
args: [cc, -c]
line: [[ option: cc :: null ], [ option: c :: null ]]
I would expect:
args: [-ccc]
line: [[ option: cc :: null ], [ option: c :: null ]]
Wrote a little unit test (that fails):
{code:title=UnitTest.java|borderStyle=solid}
@Test
public void test3() throws ParseException {
String [] cli = {"-cc", "-ccc", "-c"};
Options opts = new Options();
opts.addOption(OptionBuilder.create("cc"));
opts.addOption(OptionBuilder.create("c"));
CommandLineParser parser = new GnuParser();
CommandLine line = parser.parse(opts, cli, true);
if (line.getArgs().length > 0 ) {
Assert.assertEquals("-ccc", line.getArgList().get(0));
}
}
{code}
> GnuParser removes first character from longer argument containing single character option
> -----------------------------------------------------------------------------------------
>
> Key: CLI-246
> URL: https://issues.apache.org/jira/browse/CLI-246
> Project: Commons CLI
> Issue Type: Bug
> Components: CLI-1.x
> Affects Versions: 1.2
> Environment: Windows 64-bit
> Reporter: Pierre-Luc Lacroix
> Priority: Minor
>
> Title might be hard to understand, but basically:
> Arguments:
> String [] cli = {"-cc", "-ccc", "-c"};
> Options:
> Options opts = new Options();
> opts.addOption(OptionBuilder.create("cc"));
> opts.addOption(OptionBuilder.create("c"));
> As you can see, "-ccc" is an extra unrecognized argument.
> When you try to parse it:
> CommandLineParser parser = new GnuParser();
> CommandLine line = parser.parse(opts, cli, true);
> Content on line:
> args: [cc, -c]
> line: [[ option: cc :: null ], [ option: c :: null ]]
> I would expect:
> args: [-ccc]
> line: [[ option: cc :: null ], [ option: c :: null ]]
> Wrote a little unit test (that fails):
> {code:title=UnitTest.java|borderStyle=solid}
> @Test
> public void test3() throws ParseException {
> String [] cli = {"-cc", "-ccc", "-c"};
>
> Options opts = new Options();
> opts.addOption(OptionBuilder.create("cc"));
> opts.addOption(OptionBuilder.create("c"));
>
> CommandLineParser parser = new GnuParser();
> CommandLine line = parser.parse(opts, cli, true);
>
> if (line.getArgs().length > 0 ) {
> Assert.assertEquals("-ccc", line.getArgList().get(0));
> }
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)