OSDN Git Service

BugTrack/2283 ls2 plugin: Improve include loop handling
authorumorigu <umorigu@gmail.com>
Tue, 31 Oct 2017 20:28:36 +0000 (05:28 +0900)
committerumorigu <umorigu@gmail.com>
Tue, 31 Oct 2017 20:28:36 +0000 (05:28 +0900)
PHP4 cannot use referenced parameters with default value.

plugin/ls2.inc.php

index 73b4a38..cc4e705 100644 (file)
@@ -111,17 +111,22 @@ function plugin_ls2_show_lists($prefix, & $params)
                return str_replace('$1', htmlsc($prefix), $_ls2_err_nopages);
        } else {
                $params['result'] = $params['saved'] = array();
-               foreach ($pages as $page)
-                       plugin_ls2_get_headings($page, $params, 1);
+               foreach ($pages as $page) {
+                       $read_pages = array(); // read pages per page
+                       plugin_ls2_get_headings($page, $params, 1, false, $read_pages);
+               }
                return join("\n", $params['result']) . join("\n", $params['saved']);
        }
 }
 
 function plugin_ls2_get_headings($page, & $params, $level, $include = FALSE,
-       &$read_pages = array())
+       &$read_pages)
 {
        static $_ls2_anchor = 0;
 
+       if (is_null($read_pages)) {
+               $read_pages = array();
+       }
        // ページが未表示のとき
        $is_done = isset($read_pages[$page]);
        if (! $is_done) $params["page_$page"] = ++$_ls2_anchor;