<search function="wrp">
  <name>Wrap Clipboard Text</name>
  <description>
    Wraps the contents of the clipboard to a certain number of characters,
    inserting optional prefix and places it back onto the clipboard.<br />
    <div class="helpboxDescLabels">Usage:</div>
    <table class="helpboxDescTable">
      <tr><td>wrp <strong>[[/pre <em>&lt;prefix&gt;</em>]|[/np]] [/max <em>&lt;num&gt;</em>] [/no]</strong></td></tr>
    </table>
    <div class="helpboxDescLabels">Switches:</div>
    <table class="helpboxDescTable">
      <tr><td>/pre</td><td> &gt;  </td><td>Prefix each line with this string</td></tr>
      <tr><td>/np</td><td> - </td><td>Disable line prefixing</td></tr>
      <tr><td>/max</td><td> 64 </td><td>Maximum characters per line</td></tr>
      <tr><td>/no</td><td> False </td><td>Prevent removal of existing prefix before processing</td></tr>
    </table>
    <div class="helpboxDescLabels">Example:</div>
    <table class="helpboxDescTable">
      <tr><td>wrp</td></tr>
      <tr><td>wrp /no /max 65</td></tr>
      <tr><td>wrp /pre &gt; /max 76</td></tr>
      <tr><td>wrp /pre // /max 72</td></tr>
      <tr><td>wrp /pre -- /max 30</td></tr>
      <tr><td>wrp /pre REM /no</td></tr>
      <tr><td>wrp /np /max 10000</td></tr>
    </table>
  </description>
  <category>Functions</category>
  <link>http://ReliableAnswers.com/x/dqsd/</link>
  <contributor>Shawn K. Hall</contributor>
  <requirements>
    <scripting>vbscript</scripting>
  </requirements>
  
  <form name="wrpf"
    action="http://ReliableAnswers.com/x/dqsd/"
    method="post">
    <input type="hidden" name="pre"  value="" />
    <input type="hidden" name="prf"  value="" />
    <input type="hidden" name="nor"  value="" />
    <input type="hidden" name="max"  value="" />
    <input type="hidden" name="dqsd" value="wrp" />
    <textarea name="vbscode" style="display: none;"><![CDATA[

Dim qsPrefix, qlMax, qbRemove, q
If document.wrpf.prf.value <> "" Then
  qsPrefix = ""
Else
  If document.wrpf.pre.value <> "" Then
    qsPrefix = document.wrpf.pre.value
  Else
    qsPrefix = "> "
  End If
End If
If document.wrpf.max.value <> "" Then
  qlMax = CLng(document.wrpf.max.value)
Else
  qlMax = 64
End If
If (qlMax < 0) Or Not IsNumeric(qlMax) Then
  qlMax = 64
End If
If document.wrpf.nor.value <> "" Then
  qbRemove = False
Else
  qbRemove = True
End If
q = ClipBoardGetText
q = Wrp(q, qsPrefix, qlMax, qbRemove)
Call ClipBoardSetText (q)
Function Wrp(ByVal sString, sPrefix, sMax, bRemove)
  Dim sBuild, lLast, lLen
  lLen = Len(sPrefix)
  sMax = sMax - lLen
  If sMax < 0 Then
    sMax = 62
  End If
  If bRemove = True Then
    While InStr(1, sString, sPrefix, 1) = 1
      sString = Mid(sString, Len(sPrefix) + 1)
    Wend
    While InStr(1, sString, vbCrLf & sPrefix, 1)
      sString = Replace(sString, vbCrLf & sPrefix, vbCrLf)
    Wend
    While InStr(1, sString, vbCrLf & " ", 1)
      sString = Replace(sString, vbCrLf & " ", vbCrLf)
    Wend
    sString = Trim(sString)
  End If
  sString = Replace(sString, vbCrLf & vbCrLf, " {|} ")
  sString = Replace(sString, vbCrLf, " ")
  While InStr(sString, "  ")
    sString = Replace(sString, "  ", " ")
  Wend
  sString = Trim(sString)
  sString = Replace(sString, "{|}", vbCrLf & sPrefix) & " "
  While Len(sString) > 0
    If InStrRev(sString, vbLf, sMax) <> 0 Then
      lLast = InStrRev(sString, vbCrLf, sMax) + 2
    ElseIf sMax >= Len(sString) Then
      lLast = Len(sString)
    Else
      lLast = InStrRev(sString, " ", sMax + 1)
    End If
    sBuild = sBuild & vbCrLf & sPrefix & Mid(sString, 1, lLast)
    sString = Mid(sString, lLast + 1)
  Wend
  Wrp = sBuild
End Function
Function ClipBoardSetText( sText )
  ClipBoardSetText = window.clipboardData.setData( "Text", sText )
End Function
Function ClipBoardGetText()
  ClipBoardGetText = window.clipboardData.getData( "Text" )
End Function

    ]]></textarea>
  </form>

  <script><![CDATA[

  function wrp (q)
  {
    if (q.length == 1) {
      if (q.charAt(0) == "?"){
      //show help
        if (nullArgs( "wrp", "?" )) return true;
      }
    }
    var wrppre = "> ";
    var wrpprf = "";
    var wrpnor = "";
    var wrpmax = 64;
    var args = parseArgs(q, "np, pre, max, no");
    for (var i = 0; i < args.switches.length; i++)
    {
      sw = args.switches[i];
      switch(sw.name)
      {
        case "pre":
          wrppre = sw.value; break;
        case "np":
          wrpprf = 1; break;
        case "no":
          wrpnor = 1; break;
        case "max":
          wrpmax = sw.value; break;
      }
    }
    document.wrpf.pre.value = wrppre;
    document.wrpf.prf.value = wrpprf;
    document.wrpf.nor.value = wrpnor;
    document.wrpf.max.value = wrpmax;

  //get the vbs code
    var wrpt = "";
    wrpt = document.wrpf.vbscode.value;

  //remove CDATA prefix and trailer
    wrpt = wrpt.replace( /(\<\!\[CDATA\[)/g, '' ).replace( /(\]\]\>)/g, '' );

  //trim it
    wrpt = wrpt.replace(/^\s+/g, '' ).replace(/\s+$/g, '' );

  //run the script
    window.execScript( wrpt, "vbscript" );

  //return
    return ( true );
  }

  ]]></script>
  <copyright>
	Copyright (c) 2002 David Bau
	Distributed under the terms of the
	GNU Public License, Version 2 (http://www.gnu.org/copyleft/gpl.txt)
  </copyright>
  <created_by>
    This search file was created by Shawn K. Hall
    Copyright (c) 2003 Shawn K. Hall; Distributed under the terms of the GNU General Public License, Version 2
  </created_by>
</search>
