From 7786ba1adb415fc8fd4478380d7201702a799483 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Fri, 20 May 2011 04:00:40 -0400
Subject: [PATCH] - Fix error when rcube_cache::remove() was used in pattern mode

---
 program/include/rcube_cache.php |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/program/include/rcube_cache.php b/program/include/rcube_cache.php
index 2fe5903..abadeed 100644
--- a/program/include/rcube_cache.php
+++ b/program/include/rcube_cache.php
@@ -152,7 +152,14 @@
             $this->cache_changes = array();
         }
         else if ($pattern_mode) {
-            $key = $this->prefix.$key;
+            // add cache prefix into PCRE expression
+            if (preg_match('/^(.)([^a-z0-9]*).*/i', $key, $matches)) {
+                $key = $matches[1] . $matches[2] . preg_quote($this->prefix, $matches[1])
+                    . substr($key, strlen($matches[1].$matches[2]));
+            }
+            else {
+                $key = $this->prefix.$key;
+            }
 
             foreach (array_keys($this->cache) as $k) {
                 if (preg_match($key, $k)) {

--
Gitblit v1.9.1