You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ba...@apache.org on 2009/02/27 10:34:12 UTC

svn commit: r748461 - in /commons/proper/cli/branches/cli-1.x/src: java/org/apache/commons/cli/HelpFormatter.java test/org/apache/commons/cli/bug/BugCLI162Test.java

Author: bayard
Date: Fri Feb 27 09:34:11 2009
New Revision: 748461

URL: http://svn.apache.org/viewvc?rev=748461&view=rev
Log:
Switching from the IllegalStateException to trying hard to work. A better user experience and didn't end up with the code being any more evil. CLI-162

Modified:
    commons/proper/cli/branches/cli-1.x/src/java/org/apache/commons/cli/HelpFormatter.java
    commons/proper/cli/branches/cli-1.x/src/test/org/apache/commons/cli/bug/BugCLI162Test.java

Modified: commons/proper/cli/branches/cli-1.x/src/java/org/apache/commons/cli/HelpFormatter.java
URL: http://svn.apache.org/viewvc/commons/proper/cli/branches/cli-1.x/src/java/org/apache/commons/cli/HelpFormatter.java?rev=748461&r1=748460&r2=748461&view=diff
==============================================================================
--- commons/proper/cli/branches/cli-1.x/src/java/org/apache/commons/cli/HelpFormatter.java (original)
+++ commons/proper/cli/branches/cli-1.x/src/java/org/apache/commons/cli/HelpFormatter.java Fri Feb 27 09:34:11 2009
@@ -822,8 +822,7 @@
         if (nextLineTabStop >= width)
         {
             // stops infinite loop happening
-            throw new IllegalStateException("Total width is less than the width of the argument and indent " + 
-                                            "- no room for the description");
+            nextLineTabStop = width - 1;
         }
 
         // all following lines must be padded with nextLineTabStop space 

Modified: commons/proper/cli/branches/cli-1.x/src/test/org/apache/commons/cli/bug/BugCLI162Test.java
URL: http://svn.apache.org/viewvc/commons/proper/cli/branches/cli-1.x/src/test/org/apache/commons/cli/bug/BugCLI162Test.java?rev=748461&r1=748460&r2=748461&view=diff
==============================================================================
--- commons/proper/cli/branches/cli-1.x/src/test/org/apache/commons/cli/bug/BugCLI162Test.java (original)
+++ commons/proper/cli/branches/cli-1.x/src/test/org/apache/commons/cli/bug/BugCLI162Test.java Fri Feb 27 09:34:11 2009
@@ -259,14 +259,44 @@
                           "                      yes.\n" +
                           "Footer\n";
         assertEquals( "Long arguments did not split as expected", expected, sw.toString() );
+    }
 
-        try {
-            formatter.printHelp(new PrintWriter(sw), 22, this.getClass().getName(), "Header", options, 0, 5, "Footer");
-            fail("IllegalStateException expected");
-        } catch(IllegalStateException ise) {
-            // expected
-        }
-
+    public void testLongLineChunkingIndentIgnored() throws ParseException, IOException {
+        Options options = new Options();
+        options.addOption("x", "extralongarg", false, "This description is Long." );
+        HelpFormatter formatter = new HelpFormatter();
+        StringWriter sw = new StringWriter();
+        formatter.printHelp(new PrintWriter(sw), 22, this.getClass().getName(), "Header", options, 0, 5, "Footer");
+        String expected = "usage:\n" +
+                          "       org.apache.comm\n" +
+                          "       ons.cli.bug.Bug\n" +
+                          "       CLI162Test\n" +
+                          "Header\n" +
+                          "-x,--extralongarg\n" +
+                          "                     T\n" +
+                          "                     h\n" +
+                          "                     i\n" +
+                          "                     s\n" +
+                          "                     d\n" +
+                          "                     e\n" +
+                          "                     s\n" +
+                          "                     c\n" +
+                          "                     r\n" +
+                          "                     i\n" +
+                          "                     p\n" +
+                          "                     t\n" +
+                          "                     i\n" +
+                          "                     o\n" +
+                          "                     n\n" +
+                          "                     i\n" +
+                          "                     s\n" +
+                          "                     L\n" +
+                          "                     o\n" +
+                          "                     n\n" +
+                          "                     g\n" +
+                          "                     .\n" +
+                          "Footer\n";
+        assertEquals( "Long arguments did not split as expected", expected, sw.toString() );
     }
 
 }