11/*
2- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//cli/src/java/org/apache/commons/cli/PosixParser.java,v 1.6 2002/08/14 22:27:39 jkeyes Exp $
3- * $Revision: 1.6 $
4- * $Date: 2002/08/14 22:27:39 $
2+ * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//cli/src/java/org/apache/commons/cli/PosixParser.java,v 1.7 2002/08/15 22:05:18 jkeyes Exp $
3+ * $Revision: 1.7 $
4+ * $Date: 2002/08/15 22:05:18 $
55 *
66 * ====================================================================
77 *
@@ -181,33 +181,12 @@ else if ( token.length() == 2 ) {
181181 // to be the argument value
182182
183183 // if there is no argument value
184- if ( token .substring (i +1 ).length () == 0 ) {
184+ if ( token .substring (i +1 ).length () == 0 && ! opt . hasOptionalArg () ) {
185185 throw new MissingArgumentException ( "Missing argument value for " + opt .getOpt () );
186186 }
187-
188- /*
189- String var = token.substring(i+1);
190- char sep = opt.getValueSeparator();
191-
192- if( sep > 0 ) {
193- int findex;
194- while( ( findex = var.indexOf( sep ) ) != -1 ) {
195- String val = var.substring( 0, findex );
196- var = var.substring( findex + 1);
197- if( !opt.addValue( val ) ) {
198- cmd.addArg( val );
199- }
200- }
201- if( !opt.addValue( var ) ) {
202- cmd.addArg( var );
203- };
204- }
205187 else {
206- // add the argument value
207188 opt .addValue ( token .substring (i +1 ) );
208189 }
209- */
210- opt .addValue ( token .substring (i +1 ) );
211190
212191 // set the option
213192 cmd .setOpt ( opt );
@@ -261,7 +240,7 @@ private void processOption( String arg, ListIterator iter )
261240 throws ParseException
262241 {
263242 // get the option represented by arg
264- Option opt = null ;//(Option) options.getOption( arg );
243+ Option opt = null ;
265244
266245 boolean hasOption = options .hasOption ( arg );
267246
@@ -304,7 +283,7 @@ private void processOption( String arg, ListIterator iter )
304283 public void processArgs ( Option opt , ListIterator iter )
305284 throws ParseException
306285 {
307- if ( !iter .hasNext () ) {
286+ if ( !iter .hasNext () && ! opt . hasOptionalArg () ) {
308287 throw new MissingArgumentException ( "no argument for:" + opt .getOpt () );
309288 }
310289 // loop until an option is found
@@ -319,29 +298,6 @@ public void processArgs( Option opt, ListIterator iter )
319298 }
320299 // its a value
321300 else {
322- /*
323- char sep = opt.getValueSeparator();
324-
325- if( sep > 0 ) {
326- int findex;
327- while( ( findex = var.indexOf( sep ) ) != -1 ) {
328- String val = var.substring( 0, findex );
329- var = var.substring( findex + 1);
330- if( !opt.addValue( val ) ) {
331- iter.previous();
332- return;
333- }
334- }
335- if( !opt.addValue( var ) ) {
336- iter.previous();
337- return;
338- };
339- }
340- else if( !opt.addValue( var ) ) {
341- iter.previous();
342- return;
343- }
344- */
345301 if ( !opt .addValue ( var ) ) {
346302 iter .previous ();
347303 break ;
0 commit comments