summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--inc/auth.php19
-rw-r--r--inc/init.php7
2 files changed, 17 insertions, 9 deletions
diff --git a/inc/auth.php b/inc/auth.php
index db53a4c19..63f84e141 100644
--- a/inc/auth.php
+++ b/inc/auth.php
@@ -380,13 +380,20 @@ function auth_aclcheck($id,$user,$groups){
* @see rawurldecode()
*/
function auth_nameencode($name,$skip_group=false){
- if($skip_group && $name{0} =='@'){
- return '@'.preg_replace('/([\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f])/e',
- "'%'.dechex(ord('\\1'))",substr($name,1));
- }else{
- return preg_replace('/([\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f])/e',
- "'%'.dechex(ord('\\1'))",$name);
+ global $cache_authname;
+ $cache =& $cache_authname;
+
+ if (!isset($cache[$name][$skip_group])) {
+ if($skip_group && $name{0} =='@'){
+ $cache[$name][$skip_group] = '@'.preg_replace('/([\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f])/e',
+ "'%'.dechex(ord('\\1'))",substr($name,1));
+ }else{
+ $cache[$name][$skip_group] = preg_replace('/([\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f])/e',
+ "'%'.dechex(ord('\\1'))",$name);
+ }
}
+
+ return $cache[$name][$skip_group];
}
/**
diff --git a/inc/init.php b/inc/init.php
index 2ba16c2c3..1b8f99825 100644
--- a/inc/init.php
+++ b/inc/init.php
@@ -24,9 +24,10 @@
else { error_reporting(DOKU_E_LEVEL); }
// init memory caches
- global $cache_revinfo; $cache_revinfo = array();
- global $cache_wikifn; $cache_wikifn = array();
- global $cache_wikifn; $cache_cleanid = array();
+ global $cache_revinfo; $cache_revinfo = array();
+ global $cache_wikifn; $cache_wikifn = array();
+ global $cache_cleanid; $cache_cleanid = array();
+ global $cache_authname; $cache_authname = array();
//prepare config array()
global $conf;