From c032df51d827366585c829f9633e32cf1938b358 Mon Sep 17 00:00:00 2001 From: alec Date: Fri, 20 May 2011 08:00:40 +0000 Subject: - Fix error when rcube_cache::remove() was used in pattern mode git-svn-id: https://svn.roundcube.net/trunk@4791 208e9e7b-5314-0410-a742-e7e81cd9613c --- roundcubemail/program/include/rcube_cache.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'roundcubemail/program/include') diff --git a/roundcubemail/program/include/rcube_cache.php b/roundcubemail/program/include/rcube_cache.php index 2fe5903b4..abadeedbc 100644 --- a/roundcubemail/program/include/rcube_cache.php +++ b/roundcubemail/program/include/rcube_cache.php @@ -152,7 +152,14 @@ class rcube_cache $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)) { -- cgit v1.2.3