aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--admin/include/plugins.class.php19
1 files changed, 13 insertions, 6 deletions
diff --git a/admin/include/plugins.class.php b/admin/include/plugins.class.php
index 45de49a01..27a458d7d 100644
--- a/admin/include/plugins.class.php
+++ b/admin/include/plugins.class.php
@@ -556,12 +556,19 @@ DELETE FROM ' . PLUGINS_TABLE . ' WHERE id=\'' . $plugin_id . '\'';
function plugin_version_compare($a, $b)
{
if (strtolower($a) == 'auto') return false;
-
- $pattern = array('/([a-z])/ei', '/\.+/', '/\.\Z|\A\./');
- $replacement = array( "'.'.intval('\\1', 36).'.'", '.', '');
-
- $array = preg_replace($pattern, $replacement, array($a, $b));
-
+
+ $array = preg_replace(
+ array('/\.+/', '/\.\Z|\A\./'),
+ array('.', ''),
+ array($a, $b)
+ );
+
+ $array = preg_replace_callback(
+ '/([a-z])/i',
+ create_function('$m', 'return intval($m[1], 36);'),
+ $array
+ );
+
return version_compare($array[0], $array[1], '>=');
}