Skip to content

Commit b133180

Browse files
committed
Fixed the handling of unrecognized options starting with '-' by PosixParser (CLI-164) (stopAtNonOption=false case)
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/cli/branches/cli-1.x@680289 13f79535-47bb-0310-9956-ffa450edef68
1 parent c860625 commit b133180

2 files changed

Lines changed: 17 additions & 2 deletions

File tree

src/java/org/apache/commons/cli/PosixParser.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -229,13 +229,13 @@ private void processOptionToken(String token, boolean stopAtNonOption)
229229
if (options.hasOption(token))
230230
{
231231
currentOption = options.getOption(token);
232-
tokens.add(token);
233232
}
234233
else if (stopAtNonOption)
235234
{
236235
eatTheRest = true;
237-
tokens.add(token);
238236
}
237+
238+
tokens.add(token);
239239
}
240240

241241
/**

src/test/org/apache/commons/cli/PosixParserTest.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,21 @@ public void testUnrecognizedOption() throws Exception
100100
}
101101
}
102102

103+
public void testUnrecognizedOption2() throws Exception
104+
{
105+
String[] args = new String[] { "-z", "-abtoast", "foo", "bar" };
106+
107+
try
108+
{
109+
parser.parse(options, args);
110+
fail("UnrecognizedOptionException wasn't thrown");
111+
}
112+
catch (UnrecognizedOptionException e)
113+
{
114+
assertEquals("-z", e.getOption());
115+
}
116+
}
117+
103118
public void testMissingArg() throws Exception
104119
{
105120
String[] args = new String[] { "-acb" };

0 commit comments

Comments
 (0)