code: protected StringBuilder renderWrappedText (final StringBuilder aSB,
                                               final int nWidth,
                                               final int nNextLineTabStop,
                                               final String sText)
    {
      String text = sText;
      int pos = findWrapPos (text, nWidth, 0);
      if (pos == -1)
      {
        aSB.append (rtrim (text));
        return aSB;
      }
  
      aSB.append (rtrim (text.substring (0, pos))).append (getNewLine ());
  
      int nextLineTabStop = nNextLineTabStop;
      if (nextLineTabStop >= nWidth)
      {
        // stops infinite loop happening
        nextLineTabStop = 1;
      }
  
      // all following lines must be padded with nextLineTabStop space characters
      final String padding = createPadding (nextLineTabStop);
  
      while (true)
      {
        text = padding + text.substring (pos).trim ();
        pos = findWrapPos (text, nWidth, 0);
  
        if (pos == -1)
        {
          aSB.append (text);
          return aSB;
        }
  
        if (text.length () > nWidth && pos == nextLineTabStop - 1)
        {
          pos = nWidth;
        }
  
        aSB.append (rtrim (text.substring (0, pos))).append (getNewLine ());
      }
    }
docs: Render the specified text and return the rendered Options in a
  StringBuilder.
  
  @param aSB
  The StringBuilder to place the rendered text into.
  @param nWidth
  The number of characters to display per line
  @param nNextLineTabStop
  The position on the next line for the first tab.
  @param sText
  The text to be rendered.
  @return the StringBuilder with the rendered Options contents.