Aleksander Machniak
2015-01-29 0a5841702fdc6e71f23b7eebd046ef715b74b544
Fix exec_hook() so handlers added inside the hook are not omitted
1 files modified
5 ■■■■■ changed files
program/lib/Roundcube/rcube_plugin_api.php 5 ●●●●● patch | view | raw | blame | history
program/lib/Roundcube/rcube_plugin_api.php
@@ -400,8 +400,9 @@
        $args += array('abort' => false);
        array_push($this->exec_stack, $hook);
        foreach ((array)$this->handlers[$hook] as $callback) {
            $ret = call_user_func($callback, $args);
        // Use for loop here, so handlers added in the hook will be executed too
        for ($i = 0; $i < count($this->handlers[$hook]); $i++) {
            $ret = call_user_func($this->handlers[$hook][$i], $args);
            if ($ret && is_array($ret)) {
                $args = $ret + $args;
            }