- $words = "";
- }
-
- $i = 0;
- $line = $beginning_spaces;
-
- while ($i < count($words)) {
- // Force one word to be on a line (minimum)
- $line .= $words[$i];
- $line_len = strlen($beginning_spaces) + strlen($words[$i]) + 2;
- if (isset($words[$i + 1]))
- $line_len += strlen($words[$i + 1]);
- $i ++;
-
- // Add more words (as long as they fit)
- while ($line_len < $wrap && $i < count($words)) {
- $line .= ' ' . $words[$i];
- $i++;
- if (isset($words[$i]))
- $line_len += strlen($words[$i]) + 1;
- else
- $line_len += 1;
- }
-
- // Skip spaces if they are the first thing on a continued line
- while (!isset($words[$i]) && $i < count($words)) {
- $i ++;
- }
-
- // Go to the next line if we have more to process
- if ($i < count($words)) {
- $line .= "\n" . $beginning_spaces;
- }
- }
-}
-
-
-/**
- * Does the opposite of sqWordWrap()
- */
-function sqUnWordWrap(&$body) {
- $lines = explode("\n", $body);
- $body = "";
- $PreviousSpaces = "";
- for ($i = 0; $i < count($lines); $i ++) {
- ereg("^([\t >]*)([^\t >].*)?$", $lines[$i], $regs);
- $CurrentSpaces = $regs[1];
- if (isset($regs[2])) {
- $CurrentRest = $regs[2];
- }
-
- if ($i == 0) {
- $PreviousSpaces = $CurrentSpaces;
- $body = $lines[$i];
- } else if (($PreviousSpaces == $CurrentSpaces) // Do the beginnings match
- && (strlen($lines[$i - 1]) > 65) // Over 65 characters long
- && strlen($CurrentRest)) { // and there's a line to continue with
- $body .= ' ' . $CurrentRest;
- } else {
- $body .= "\n" . $lines[$i];
- $PreviousSpaces = $CurrentSpaces;
- }