|
@@ -25,6 +25,90 @@ require_once('../functions/smtp.php');
|
|
|
require_once('../functions/display_messages.php');
|
|
|
require_once('../functions/plugin.php');
|
|
|
|
|
|
+/* --------------------- Specific Functions ------------------------------ */
|
|
|
+
|
|
|
+/**
|
|
|
+ * Wraps text at $wrap characters
|
|
|
+ *
|
|
|
+ * Has a problem with special HTML characters, so call this before
|
|
|
+ * you do character translation.
|
|
|
+ *
|
|
|
+ * Specifically, ' comes up as 5 characters instead of 1.
|
|
|
+ * This should not add newlines to the end of lines.
|
|
|
+ */
|
|
|
+function sqWordWrap(&$line, $wrap) {
|
|
|
+ ereg("^([\t >]*)([^\t >].*)?$", $line, $regs);
|
|
|
+ $beginning_spaces = $regs[1];
|
|
|
+ if (isset($regs[2])) {
|
|
|
+ $words = explode(' ', $regs[2]);
|
|
|
+ } else {
|
|
|
+ $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;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $body .= "\n";
|
|
|
+}
|
|
|
+
|
|
|
+/* ----------------------------------------------------------------------- */
|
|
|
+
|
|
|
if (!isset($attachments)) {
|
|
|
$attachments = array();
|
|
|
session_register('attachments');
|