From cf17773654e1e3f2b09a8aee1058bda4ada3bed1 Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Fri, 12 Sep 2008 10:01:52 -0400
Subject: [PATCH] Fix rcmail::url(), don't use comm_path

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

diff --git a/program/include/rcmail.php b/program/include/rcmail.php
index c10f835..e7a0db8 100644
--- a/program/include/rcmail.php
+++ b/program/include/rcmail.php
@@ -891,17 +891,19 @@
   {
     if (!is_array($p))
       $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)
-      if (isset($val))
-        $url .= '&'.urlencode($par).'='.urlencode($val);
-    
+
+    if (!$p['task'] || !in_array($p['task'], rcmail::$main_tasks))
+      $p['task'] = $this->task;
+
+    $url = './';
+    $delm = '?';
+    foreach (array_reverse($p) as $par => $val)
+    {
+      if (!empty($val)) {
+        $url .= $delm.urlencode($par).'='.urlencode($val);
+        $delm = '&';
+      }
+    }
     return $url;
   }
 }

--
Gitblit v1.9.1