[pkg-java] r5996 - trunk/libcommons-cli-java/debian/patches
paulcager-guest at alioth.debian.org
paulcager-guest at alioth.debian.org
Sun Mar 16 00:23:47 UTC 2008
Author: paulcager-guest
Date: 2008-03-16 00:23:46 +0000 (Sun, 16 Mar 2008)
New Revision: 5996
Added:
trunk/libcommons-cli-java/debian/patches/MultOptions.patch
Log:
Added patch (forgot it in previous commit)
Added: trunk/libcommons-cli-java/debian/patches/MultOptions.patch
===================================================================
--- trunk/libcommons-cli-java/debian/patches/MultOptions.patch (rev 0)
+++ trunk/libcommons-cli-java/debian/patches/MultOptions.patch 2008-03-16 00:23:46 UTC (rev 5996)
@@ -0,0 +1,122 @@
+Index: src/test/org/apache/commons/cli/ApplicationTest.java
+===================================================================
+--- src/test/org/apache/commons/cli/ApplicationTest.java (revision 635884)
++++ src/test/org/apache/commons/cli/ApplicationTest.java (working copy)
+@@ -96,15 +96,16 @@
+ options.addOption( "listener", true, "add an instance of a class as a project listener" );
+ options.addOption( "buildfile", true, "use given buildfile" );
+ options.addOption( OptionBuilder.withDescription( "use value for given property" )
+- .hasArgs()
++ .hasArgs(1)
+ .withValueSeparator()
+ .create( 'D' ) );
+ //, null, true, , false, true );
+ options.addOption( "find", true, "search for buildfile towards the root of the filesystem and use it" );
+
+ String[] args = new String[]{ "-buildfile", "mybuild.xml",
++ "-projecthelp",
+ "-Dproperty=value", "-Dproperty1=value1",
+- "-projecthelp" };
++ "compile" };
+
+ try {
+ CommandLine line = parser.parse( options, args );
+@@ -121,6 +122,7 @@
+
+ // check option
+ assertTrue( line.hasOption( "projecthelp") );
++ assertEquals(1, line.getArgs().length);
+ }
+ catch( ParseException exp ) {
+ fail( "Unexpected exception:" + exp.getMessage() );
+@@ -128,4 +130,4 @@
+
+ }
+
+-}
+\ No newline at end of file
++}
+Index: src/java/org/apache/commons/cli/Option.java
+===================================================================
+--- src/java/org/apache/commons/cli/Option.java (revision 635884)
++++ src/java/org/apache/commons/cli/Option.java (working copy)
+@@ -437,13 +437,15 @@
+ // while there are more value separators
+ while (index != -1)
+ {
+- // next value to be added
+- if (values.size() == (numberOfArgs - 1))
+- {
+- break;
+- }
++ // Next few lines commented out in the patch. You
++ // can have multiple values in one argument, so it does not
++ // make sense to terminate the loop early (you would lose
++ // the excess arguments anyway).
++// if (values.size() == (numberOfArgs - 1))
++// {
++// break;
++// }
+
+-
+ // store
+ add(value.substring(0, index));
+
+@@ -463,9 +465,7 @@
+ }
+
+ /**
+- * Add the value to this Option. If the number of arguments
+- * is greater than zero and there is enough space in the list then
+- * add the value. Otherwise, throw a runtime exception.
++ * Add the value to this Option.
+ *
+ * @param value The value to be added to this Option
+ *
+@@ -473,10 +473,14 @@
+ */
+ private void add(String value)
+ {
+- if ((numberOfArgs > 0) && (values.size() > (numberOfArgs - 1)))
+- {
+- throw new RuntimeException("Cannot add value, list full.");
+- }
++ // The patch removes the following code as we check for
++ // numberOfArgs in the caller (where we can tell the difference
++ // between (e.g) multiple instances of an option versus one
++ // instance of the option with multiple arguments).
++// if ((numberOfArgs > 0) && (values.size() > (numberOfArgs - 1)))
++// {
++// throw new RuntimeException("Cannot add value, list full.");
++// }
+
+
+ // store value
+Index: src/java/org/apache/commons/cli/Parser.java
+===================================================================
+--- src/java/org/apache/commons/cli/Parser.java (revision 635884)
++++ src/java/org/apache/commons/cli/Parser.java (working copy)
+@@ -325,7 +325,9 @@
+ public void processArgs(Option opt, ListIterator iter)
+ throws ParseException
+ {
+- // loop until an option is found
++ // loop until another option is found, or we have read the maximum
++ // number of args.
++ int argCount = 0;
+ while (iter.hasNext())
+ {
+ String str = (String) iter.next();
+@@ -347,6 +349,12 @@
+ iter.previous();
+ break;
+ }
++
++ argCount++;
++ if (argCount >= opt.getArgs() && opt.getArgs() >= 0)
++ {
++ break;
++ }
+ }
+
+ if ((opt.getValues() == null) && !opt.hasOptionalArg())
More information about the pkg-java-commits
mailing list