OSDN Git Service

BugTrack/2424 Fix unfreezing page on comment action
authorumorigu <umorigu@gmail.com>
Mon, 19 Jun 2017 15:08:58 +0000 (00:08 +0900)
committerumorigu <umorigu@gmail.com>
Mon, 19 Jun 2017 15:11:05 +0000 (00:11 +0900)
lib/func.php
plugin/unfreeze.inc.php

index c1e38bc..4d929ab 100644 (file)
@@ -118,11 +118,10 @@ function is_freeze($page, $clearcache = FALSE)
                        die('is_freeze(): fopen() failed: ' . htmlsc($page));
                flock($fp, LOCK_SH) or die('is_freeze(): flock() failed');
                rewind($fp);
-               $buffer = fgets($fp, 9);
+               $buffer = fread($fp, 1000);
                flock($fp, LOCK_UN) or die('is_freeze(): flock() failed');
                fclose($fp) or die('is_freeze(): fclose() failed: ' . htmlsc($page));
-
-               $is_freeze[$page] = ($buffer != FALSE && rtrim($buffer, "\r\n") == '#freeze');
+               $is_freeze[$page] = (bool) preg_match('/^#freeze$/m', $buffer);
                return $is_freeze[$page];
        }
 }
index 14000bd..5e88119 100644 (file)
@@ -30,7 +30,11 @@ function plugin_unfreeze_action()
        } else if ($pass !== NULL && pkwk_login($pass)) {
                // Unfreeze
                $postdata = get_source($page);
-               array_shift($postdata);
+               for ($i = count($postdata) - 1; $i >= 0; $i--) {
+                       if ("#freeze\n" === $postdata[$i]) {
+                               $postdata[$i] = '';
+                       }
+               }
                $postdata = join('', $postdata);
                file_write(DATA_DIR, $page, $postdata, TRUE);