From cead5c727147faac362e742aa7bcecf07f68cd99 Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Thu, 18 May 2006 17:24:42 -0400
Subject: [PATCH] Updated CHANGELOG

---
 program/steps/mail/compose.inc |   78 ++++++++++++++++++++++++++++++---------
 1 files changed, 60 insertions(+), 18 deletions(-)

diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc
index 80f69b5..1f9618d 100644
--- a/program/steps/mail/compose.inc
+++ b/program/steps/mail/compose.inc
@@ -59,6 +59,9 @@
     $REPLY_MESSAGE = &$MESSAGE;
     $_SESSION['compose']['reply_uid'] = $_GET['_reply_uid'];
     $_SESSION['compose']['reply_msgid'] = $REPLY_MESSAGE['headers']->messageID;
+    $_SESSION['compose']['references']  = $REPLY_MESSAGE['headers']->reference;
+    $_SESSION['compose']['references'] .= !empty($REPLY_MESSAGE['headers']->reference) ? ' ' : '';
+    $_SESSION['compose']['references'] .= $REPLY_MESSAGE['headers']->messageID;
 
     if ($_GET['_all'])
       $REPLY_MESSAGE['reply_all'] = 1;
@@ -95,7 +98,7 @@
       $header = 'to';
 
       // we have contact id's as get parameters
-      if (!empty($_GET['_to']) && preg_match('/^([0-9]+,?)+$/', $_GET['_to']))
+      if (!empty($_GET['_to']) && preg_match('/^[0-9]+(,[0-9]+)*$/', $_GET['_to']))
         {
         $a_recipients = array();
         $sql_result = $DB->query("SELECT name, email
@@ -139,7 +142,7 @@
 
     
   if ($fname && !empty($_POST[$fname]))
-    $fvalue = $_POST[$fname];
+    $fvalue = get_input_value($fname, RCUBE_INPUT_POST, TRUE);
   else if ($header && is_object($REPLY_MESSAGE['headers']))
     {
     // get recipent address(es) out of the message headers
@@ -294,10 +297,13 @@
 
 function rcmail_compose_body($attrib)
   {
-  global $CONFIG, $REPLY_MESSAGE, $FORWARD_MESSAGE;
+  global $CONFIG, $OUTPUT, $REPLY_MESSAGE, $FORWARD_MESSAGE;
   
   list($form_start, $form_end) = get_form_tags($attrib);
   unset($attrib['form']);
+  
+  if (empty($attrib['id']))
+    $attrib['id'] = 'rcmComposeMessage';
   
   $attrib['name'] = '_message';
   $textarea = new textarea($attrib);
@@ -306,7 +312,7 @@
   
   // use posted message body
   if (!empty($_POST['_message']))
-    $body = stripslashes($_POST['_message']);
+    $body = get_input_value('_message', RCUBE_INPUT_POST, TRUE);
     
   // compose reply-body
   else if (is_array($REPLY_MESSAGE['parts']))
@@ -327,7 +333,15 @@
   $out = $form_start ? "$form_start\n" : '';
   $out .= $textarea->show($body);
   $out .= $form_end ? "\n$form_end" : '';
-         
+  
+  // include GoogieSpell
+  $OUTPUT->include_script('googiespell.js');
+  
+  $OUTPUT->add_script(sprintf("var googie1 = new GoogieSpell('\$__skin_path/images/googiespell/','%s&_action=spell&lang=');\n".
+                              "googie1.decorateTextarea('%s');",
+                              $GLOBALS['COMM_PATH'],
+                              $attrib['id']), 'foot');
+  
   return $out;
   }
 
@@ -393,19 +407,31 @@
   
     foreach ($FORWARD_MESSAGE['parts'] as $part)
       {
-      if ($part->disposition != 'attachment')
-        continue;
+      if ($part->disposition=='attachment' || $part->disposition=='inline' || $part->headers['content-id'] ||
+               (empty($part->disposition) && ($part->d_parameters['filename'] || $part->ctype_parameters['name'])))
+	{
+        $tmp_path = tempnam($temp_dir, 'rcmAttmnt');
+        if ($fp = fopen($tmp_path, 'w'))
+          {
+          fwrite($fp, $IMAP->mime_decode($part->body, $part->headers['content-transfer-encoding']));
+          fclose($fp);
 
-      $tmp_path = tempnam($temp_dir, 'rcmAttmnt');
-      if ($fp = fopen($tmp_path, 'w'))
-        {
-        fwrite($fp, $IMAP->mime_decode($part->body, $part->headers['content-transfer-encoding']));
-        fclose($fp);
-
-        $_SESSION['compose']['attachments'][] = array('name' => $part->d_parameters['filename'],
-                                                      'mimetype' => $part->ctype_primary . '/' . $part->ctype_secondary,
-                                                      'path' => $tmp_path);
-        }
+          if ($part->d_parameters['filename'])
+            $_SESSION['compose']['attachments'][] = array('name' => $part->d_parameters['filename'],
+                                                          'mimetype' => $part->ctype_primary . '/' . $part->ctype_secondary,
+                                                          'path' => $tmp_path);
+                                   
+          else if ($part->ctype_parameters['name'])
+	    $_SESSION['compose']['attachments'][] = array('name' => $part->ctype_parameters['name'],
+                                                          'mimetype' => $part->ctype_primary . '/' . $part->ctype_secondary,
+                                                          'path' => $tmp_path);
+							  
+          else if ($part->headers['content-description'])
+	    $_SESSION['compose']['attachments'][] = array('name' => $part->headers['content-description'],
+                                                          'mimetype' => $part->ctype_primary . '/' . $part->ctype_secondary,
+                                                          'path' => $tmp_path);
+          }
+	}
       }
 
     $_SESSION['compose']['forward_attachments'] = TRUE;
@@ -430,7 +456,7 @@
 
   // use subject from post
   if (isset($_POST['_subject']))
-    $subject = stripslashes($_POST['_subject']);
+    $subject = get_input_value('_subject', RCUBE_INPUT_POST, TRUE);
     
   // create a reply-subject
   else if (isset($REPLY_MESSAGE['subject']))
@@ -552,6 +578,22 @@
   }
 
 
+function rcmail_receipt_checkbox($attrib)
+  {
+  list($form_start, $form_end) = get_form_tags($attrib);
+  unset($attrib['form']);
+
+  $attrib['name'] = '_receipt';
+  $checkbox = new checkbox(array('name' => '_receipt', 'id' => 'receipt', 'value' => 1));
+
+  $out = $form_start ? "$form_start\n" : '';
+  $out .= $checkbox->show(0);
+  $out .= $form_end ? "\n$form_end" : '';
+
+  return $out;
+  }
+
+
 function get_form_tags($attrib)
   {
   global $CONFIG, $OUTPUT, $JS_OBJECT_NAME, $MESSAGE_FORM, $SESS_HIDDEN_FIELD;  

--
Gitblit v1.9.1