From 2e84375dc07d24f52ccc5d247b350e18de517eba Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Wed, 17 Oct 2007 14:58:15 +0000
Subject: [PATCH] Fix for issue 2278.

---
 opends/src/server/org/opends/server/util/args/SubCommandArgumentParser.java |   28 ++++++++++++++++------------
 1 files changed, 16 insertions(+), 12 deletions(-)

diff --git a/opends/src/server/org/opends/server/util/args/SubCommandArgumentParser.java b/opends/src/server/org/opends/server/util/args/SubCommandArgumentParser.java
index 9e1fb63..54fe16c 100644
--- a/opends/src/server/org/opends/server/util/args/SubCommandArgumentParser.java
+++ b/opends/src/server/org/opends/server/util/args/SubCommandArgumentParser.java
@@ -48,6 +48,7 @@
 import java.util.TreeMap;
 
 import org.opends.server.core.DirectoryServer;
+import org.opends.server.util.SetupUtils;
 
 
 
@@ -117,6 +118,8 @@
   // The subcommand requested by the user as part of the command-line arguments.
   private SubCommand subCommand;
 
+  private final static String INDENT = "    ";
+  private final static int MAX_LENGTH = SetupUtils.isWindows() ? 79 : 80;
 
 
   /**
@@ -1435,7 +1438,7 @@
 
           int lineLength = (buffer.length() - currentLength) +
                            newBuffer.length();
-          if (lineLength > 80)
+          if (lineLength > MAX_LENGTH)
           {
             buffer.append(EOL);
             buffer.append(newBuffer.toString());
@@ -1474,21 +1477,22 @@
       // indent the description five characters and try our best to wrap at or
       // before column 79 so it will be friendly to 80-column displays.
       Message description = a.getDescription();
-      if (description.length() <= 75)
+      int maxLength = MAX_LENGTH - INDENT.length() - 1;
+      if (description.length() <= maxLength)
       {
-        buffer.append("    ");
+        buffer.append(INDENT);
         buffer.append(description);
         buffer.append(EOL);
       }
       else
       {
         String s = description.toString();
-        while (s.length() > 75)
+        while (s.length() > maxLength)
         {
-          int spacePos = s.lastIndexOf(' ', 75);
+          int spacePos = s.lastIndexOf(' ', maxLength);
           if (spacePos > 0)
           {
-            buffer.append("    ");
+            buffer.append(INDENT);
             buffer.append(s.substring(0, spacePos).trim());
             s = s.substring(spacePos+1).trim();
             buffer.append(EOL);
@@ -1501,14 +1505,14 @@
             spacePos = s.indexOf(' ');
             if (spacePos > 0)
             {
-              buffer.append("    ");
+              buffer.append(INDENT);
               buffer.append(s.substring(0, spacePos).trim());
               s = s.substring(spacePos+1).trim();
               buffer.append(EOL);
             }
             else
             {
-              buffer.append("    ");
+              buffer.append(INDENT);
               buffer.append(s);
               s = "";
               buffer.append(EOL);
@@ -1663,7 +1667,7 @@
     usageOrVersionDisplayed = true;
     if ((toolDescription != null) && (toolDescription.length() > 0))
     {
-      buffer.append(wrapText(toolDescription, 79));
+      buffer.append(wrapText(toolDescription, MAX_LENGTH - 1));
       buffer.append(EOL);
       buffer.append(EOL);
     }
@@ -1770,7 +1774,7 @@
           Message groupDesc = argGroup.getDescription();
           if (groupDesc != null && !Message.EMPTY.equals(groupDesc)) {
             buffer.append(EOL);
-            buffer.append(wrapText(groupDesc.toString(), 79));
+            buffer.append(wrapText(groupDesc.toString(), MAX_LENGTH - 1));
             buffer.append(EOL);
             buffer.append(EOL);
           }
@@ -1861,7 +1865,7 @@
     }
 
     buffer.append(EOL);
-    indentAndWrap(Message.raw("    "), a.getDescription(), buffer);
+    indentAndWrap(Message.raw(INDENT), a.getDescription(), buffer);
   }
 
 
@@ -1874,7 +1878,7 @@
   private void indentAndWrap(Message indent, Message text,
                              MessageBuilder buffer)
   {
-    int actualSize = 80 - indent.length();
+    int actualSize = MAX_LENGTH - indent.length();
     if (text.length() <= actualSize)
     {
       buffer.append(indent);

--
Gitblit v1.10.0