From fde466c58c004e8f7eff7b59c78f62eef250cde9 Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Fri, 20 Jun 2008 07:40:05 -0400
Subject: [PATCH] Urlencode mail recipients for storing in session + little code cleanup

---
 program/include/rcmail.php |   13 ++++++++-----
 1 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/program/include/rcmail.php b/program/include/rcmail.php
index 7c12ef7..c2ad9cf 100644
--- a/program/include/rcmail.php
+++ b/program/include/rcmail.php
@@ -830,13 +830,16 @@
   public function url($p)
   {
     if (!is_array($p))
-      $p = array('action' => @func_get_arg(0));
-      
-    $url = $p['task'] ? './?_task=' . $p['task'] : $this->comm_path;
-    unset($p['task']);
+      $p = array('_action' => @func_get_arg(0));
     
+    if ($p['task'] && in_array($p['task'], rcmail::$main_tasks))
+      $url = './?_task='.$p['task'];
+    else
+      $url = $this->comm_path;
+    
+    unset($p['task']);
     foreach ($p as $par => $val)
-      $url .= sprintf('&%s=%s', urlencode($par), urlencode($val));
+      $url .= '&'.urlencode($par).'='.urlencode($val);
     
     return $url;
   }

--
Gitblit v1.9.1