From 10f08e6ce02dc81dd2baa18cbe135f7352d370f4 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Mon, 25 Oct 2010 06:49:53 -0400
Subject: [PATCH] - Fix setting 'virtual' flag for non-existing folders in some cases

---
 program/include/main.inc |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/program/include/main.inc b/program/include/main.inc
index d5cebc2..46e45f7 100644
--- a/program/include/main.inc
+++ b/program/include/main.inc
@@ -1270,7 +1270,7 @@
     foreach ($a_folders as $folder)
       rcmail_build_folder_tree($a_mailboxes, $folder, $delimiter);
   }
-  
+
   // allow plugins to alter the folder tree or to localize folder names
   $hook = $RCMAIL->plugins->exec_hook('render_mailboxlist', array('list' => $a_mailboxes, 'delimiter' => $delimiter));
 
@@ -1333,10 +1333,18 @@
 function rcmail_build_folder_tree(&$arrFolders, $folder, $delm='/', $path='')
 {
   $pos = strpos($folder, $delm);
+
   if ($pos !== false) {
     $subFolders = substr($folder, $pos+1);
     $currentFolder = substr($folder, 0, $pos);
-    $virtual = !isset($arrFolders[$currentFolder]);
+
+    // sometimes folder has a delimiter as the last character
+    if (empty($subFolders))
+      $virtual = false;
+    else if (!isset($arrFolders[$currentFolder]))
+      $virtual = true;
+    else
+      $virtual = $arrFolders[$currentFolder]['virtual'];
   }
   else {
     $subFolders = false;

--
Gitblit v1.9.1