OSDN Git Service

PKWK_READONLY prohibits editing
[pukiwiki/pukiwiki.git] / pukiwiki.php
index aaa6ee8..e29c12e 100644 (file)
-<?\r
-// pukiwiki.php - Yet another WikiWikiWeb clone.\r
-//\r
-// Copyright (C) 2001,2002 by sng.\r
-// <sng@factage.com>\r
-// http://factage.com/sng/pukiwiki/\r
-//\r
-// Special thanks\r
-//  YukiWiki by Hiroshi Yuki\r
-//  <hyuki@hyuki.com>\r
-//  http://www.hyuki.com/yukiwiki/\r
-//\r
-// This program is free software; you can redistribute it and/or modify\r
-// it under the terms of the GNU General Public License as published by\r
-// the Free Software Foundation; either version 2 of the License, or\r
-// (at your option) any later version.\r
-//\r
-// This program is distributed in the hope that it will be useful,\r
-// but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
-// GNU General Public License for more details.\r
-//\r
-//# $Id: pukiwiki.php,v 1.1 2002/06/20 13:59:31 masui Exp $\r
-/////////////////////////////////////////////////\r
-\r
-/////////////////////////////////////////////////\r
-// ÀßÄê¥Õ¥¡¥¤¥ë¤Î¾ì½ê\r
-define("INI_FILE","./pukiwiki.ini.php");\r
-\r
-//** ½é´üÀßÄê **\r
-\r
-define("S_VERSION","1.3");\r
-define("UTIME",time());\r
-define("HTTP_USER_AGENT",$HTTP_SERVER_VARS["HTTP_USER_AGENT"]);\r
-define("PHP_SELF",$HTTP_SERVER_VARS["PHP_SELF"]);\r
-define("SERVER_NAME",$HTTP_SERVER_VARS["SERVER_NAME"]);\r
-\r
-define("MUTIME",getmicrotime());\r
-\r
-$script = basename($PHP_SELF);\r
-\r
-$WikiName = '([A-Z][a-z]+([A-Z][a-z]+)+)';\r
-$BracketName = '\[\[(\[*[^\s\]]+?\]*)\]\]';\r
-$InterWikiName = '\[\[(\[*[^\s\]]+?\]*):(\[*[^>\]]+?\]*)\]\]';\r
-\r
-//** ÆþÎÏÃͤÎÀ°·Á **\r
-\r
-$post = $HTTP_POST_VARS;\r
-$get = $HTTP_GET_VARS;\r
-\r
-if($get["page"]) $get["page"] = rawurldecode($get["page"]);\r
-if($post["word"]) $post["word"] = rawurldecode($post["word"]);\r
-if($get["word"]) $get["word"] = rawurldecode($get["word"]);\r
-if(get_magic_quotes_gpc())\r
-{\r
-       if($get["page"]) $get["page"] = stripslashes($get["page"]);\r
-       if($post["page"]) $post["page"] = stripslashes($post["page"]);\r
-       if($get["word"]) $get["word"] = stripslashes($get["word"]);\r
-       if($post["word"]) $post["word"] = stripslashes($post["word"]);\r
-       if($post["msg"]) $post["msg"] = stripslashes($post["msg"]);\r
-}\r
-if($post["msg"])\r
-{\r
-       $post["msg"] = preg_replace("/<\/(textarea[^>]*)>/i", "&lt;/$1&gt;", $post["msg"]);\r
-       $post["msg"] = preg_replace("/(\x0D\x0A)/","\n",$post["msg"]);\r
-       $post["msg"] = preg_replace("/(\x0D)/","\n",$post["msg"]);\r
-       $post["msg"] = preg_replace("/(\x0A)/","\n",$post["msg"]);\r
-}\r
-\r
-$vars = array_merge($post,$get);\r
-$arg = rawurldecode($HTTP_SERVER_VARS["argv"][0]);\r
-\r
-//** ½é´ü½èÍý **\r
-\r
-$update_exec = "";\r
-\r
-// ÀßÄê¥Õ¥¡¥¤¥ë¤ÎÆɹþ\r
-@require(INI_FILE);\r
-@require(LANG.".lng");\r
-\r
-// ÀßÄê¥Õ¥¡¥¤¥ë¤ÎÊÑ¿ô¥Á¥§¥Ã¥¯\r
-$wrong_ini_file = "";\r
-if(!isset($rss_max)) $wrong_ini_file .= '$rss_max ';\r
-if(!isset($page_title)) $wrong_ini_file .= '$page_title ';\r
-if(!isset($note_hr)) $wrong_ini_file .= '$note_hr ';\r
-if(!isset($related_link)) $wrong_ini_file .= '$related_link ';\r
-if(!isset($show_passage)) $wrong_ini_file .= '$show_passage ';\r
-if(!isset($rule_related_str)) $wrong_ini_file .= '$rule_related_str ';\r
-if(!isset($load_template_func)) $wrong_ini_file .= '$load_template_func ';\r
-if(!defined("LANG")) $wrong_ini_file .= 'LANG ';\r
-if(!defined("PLUGIN_DIR")) $wrong_ini_file .= 'PLUGIN_DIR ';\r
-\r
-if(!is_writable(DATA_DIR))\r
-       die_message("DATA_DIR is not found or not writable.");\r
-if(!is_writable(DIFF_DIR))\r
-       die_message("DIFF_DIR is not found or not writable.");\r
-if($do_backup && !is_writable(BACKUP_DIR))\r
-       die_message("BACKUP_DIR is not found or not writable.");\r
-if(!file_exists(INI_FILE))\r
-       die_message("INI_FILE is not found.");\r
-if($wrong_ini_file)\r
-       die_message("The setting file runs short of information.<br>The version of a setting file may be old.<br><br>These option are not found : $wrong_ini_file");\r
-//if(ini_get("register_globals") !== "0")\r
-//     die_message("Wrong PHP4 setting in 'register_globals',set value 'Off' to httpd.conf or .htaccess.");\r
-if(!file_exists(SKIN_FILE))\r
-       die_message("SKIN_FILE is not found.");\r
-if(!file_exists(LANG.".lng"))\r
-       die_message(LANG.".lng(language file) is not found.");\r
-\r
-if(!file_exists(get_filename(encode($defaultpage))))\r
-       touch(get_filename(encode($defaultpage)));\r
-if(!file_exists(get_filename(encode($whatsnew))))\r
-       touch(get_filename(encode($whatsnew)));\r
-if(!file_exists(get_filename(encode($interwiki))))\r
-       touch(get_filename(encode($interwiki)));\r
-\r
-$ins_date = date($date_format,UTIME);\r
-$ins_time = date($time_format,UTIME);\r
-$ins_week = "(".$weeklabels[date("w",UTIME)].")";\r
-\r
-$now = "$ins_date $ins_week $ins_time";\r
-\r
-// ** ¥á¥¤¥ó½èÍý **\r
-\r
-// Plug-in hook\r
-if(isset($vars["plugin"]))\r
-{\r
-       if(!file_exists(PLUGIN_DIR.$vars["plugin"].".inc.php"))\r
-       {\r
-               $vars["plugin"] = "";\r
-       }\r
-       else\r
-       {\r
-               require_once(PLUGIN_DIR.$vars["plugin"].".inc.php");\r
-               if(!function_exists("plugin_".$vars["plugin"]."_action"))\r
-               {\r
-                       $vars["plugin"] = "";\r
-               }\r
-       }\r
-}\r
-\r
-\r
-// Plug-in action\r
-if(!empty($vars["plugin"]))\r
-{\r
-       $retvars = @call_user_func("plugin_".$vars["plugin"]."_action");\r
-       \r
-       $title = strip_bracket($vars["refer"]);\r
-       $page = make_search($vars["refer"]);\r
-       \r
-       if($retvars["msg"])\r
-       {\r
-               $title =  str_replace("$1",$title,$retvars["msg"]);\r
-               $page =  str_replace("$1",$page,$retvars["msg"]);\r
-       }\r
-       \r
-       if(!empty($retvars["body"]))\r
-       {\r
-               $body = $retvars["body"];\r
-       }\r
-       else\r
-       {\r
-               $cmd = "read";\r
-               $vars["page"] = $vars["refer"];\r
-               $body = @join("",@file(get_filename(encode($vars["refer"]))));\r
-               $body = convert_html($body);\r
-       }\r
-}\r
-// °ìÍ÷¤Îɽ¼¨\r
-else if(arg_check("list"))\r
-{\r
-       header_lastmod($whatsnew);\r
-       \r
-       $page = $title = $_title_list;\r
-       $body = "<ul>\n" . get_list(false) . "</ul>\n";\r
-}\r
-// ¥Õ¥¡¥¤¥ë̾°ìÍ÷¤Îɽ¼¨\r
-else if(arg_check("filelist"))\r
-{\r
-       header_lastmod($whatsnew);\r
-\r
-       $page = $title = $_title_filelist;\r
-       $body = "<ul>\n" . get_list(true) . "</ul>\n";\r
-}\r
-// ÊÔ½¸ÉÔ²Äǽ¤Ê¥Ú¡¼¥¸¤òÊÔ½¸¤·¤è¤¦¤È¤·¤¿¤È¤­\r
-else if(((arg_check("add") || arg_check("edit") || arg_check("preview")) && (is_freeze($vars["page"]) || !is_editable($vars["page"]) || $vars["page"] == "")))\r
-{\r
-       $body = $title = str_replace('$1',strip_bracket($vars["page"]),$_title_cannotedit);\r
-       $page = str_replace('$1',make_search($vars["page"]),$_title_cannotedit);\r
-\r
-       if(is_freeze($vars["page"]))\r
-               $body .= "(<a href=\"$script?cmd=unfreeze&page=".rawurlencode($vars["page"])."\">$_msg_unfreeze</a>)";\r
-}\r
-// ÄɲÃ\r
-else if(arg_check("add"))\r
-{\r
-       $title = str_replace('$1',strip_bracket($get["page"]),$_title_add);\r
-       $page = str_replace('$1',make_search($get["page"]),$_title_add);\r
-       $body = "<ul>\n";\r
-       $body .= "<li>$_msg_add</li>\n";\r
-       $body .= "</ul>\n";\r
-       $body .= edit_form("",$get["page"],true);\r
-}\r
-// ÊÔ½¸\r
-else if(arg_check("edit"))\r
-{\r
-       $postdata = @join("",@file(get_filename(encode($get["page"]))));\r
-\r
-       $title = str_replace('$1',strip_bracket($get["page"]),$_title_edit);\r
-       $page = str_replace('$1',make_search($get["page"]),$_title_edit);\r
-       $body = edit_form($postdata,$get["page"]);\r
-}\r
-// ¥×¥ì¥Ó¥å¡¼\r
-else if(arg_check("preview") || $post["preview"] || $post["template"])\r
-{\r
-       if($post["template"] && file_exists(get_filename(encode($post["template_page"]))))\r
-       {\r
-               $post["msg"] = @join("",@file(get_filename(encode($post["template_page"]))));\r
-       }\r
-       \r
-       $post["msg"] = preg_replace("/^#freeze\n/","",$post["msg"]);\r
-       $postdata_input = $post["msg"];\r
-\r
-       if($post["add"])\r
-       {\r
-               if($post["add_top"])\r
-               {\r
-                       $postdata  = $post["msg"];\r
-                       $postdata .= "\n\n";\r
-                       $postdata .= @join("",@file(get_filename(encode($post["page"]))));\r
-               }\r
-               else\r
-               {\r
-                       $postdata  = @join("",@file(get_filename(encode($post["page"]))));\r
-                       $postdata .= "\n\n";\r
-                       $postdata .= $post["msg"];\r
-               }\r
-       }\r
-       else\r
-       {\r
-               $postdata = $post["msg"];\r
-       }\r
-\r
-       $title = str_replace('$1',strip_bracket($post["page"]),$_title_preview);\r
-       $page = str_replace('$1',make_search($post["page"]),$_title_preview);\r
-\r
-       $body = "$_msg_preview<br>\n";\r
-       if($postdata == "") $body .= "<b>$_msg_preview_delete</b><br>\n";\r
-       else                $body .= "<br>\n";\r
-\r
-       if($postdata != "")\r
-       {\r
-               $postdata = convert_html($postdata);\r
-               \r
-               $body .= "<table width=\"100%\" bgcolor=\"$preview_color\">\n"\r
-                       ."<tr><td>\n"\r
-                       .$postdata\r
-                       ."\n</td></tr>\n"\r
-                       ."</table>\n";\r
-       }\r
-\r
-       if($post["add"])\r
-       {\r
-               if($post["add_top"]) $checked_top = " checked";\r
-               $addtag = '<input type="hidden" name="add" value="true">';\r
-               $add_top = '<input type="checkbox" name="add_top" value="true"'.$checked_top.'><small>¥Ú¡¼¥¸¤Î¾å¤ËÄɲÃ</small>';\r
-       }\r
-       if($post["notimestamp"]) $checked_time = "checked";\r
-\r
-       $body .= "<form action=\"$script\" method=\"post\">\n"\r
-               ."<input type=\"hidden\" name=\"help\" value=\"$post[add]\">\n"\r
-               ."<input type=\"hidden\" name=\"page\" value=\"".$post["page"]."\">\n"\r
-               ."<input type=\"hidden\" name=\"digest\" value=\"".$post["digest"]."\">\n"\r
-               ."$addtag\n"\r
-               ."<textarea name=\"msg\" rows=\"$rows\" cols=\"$cols\" wrap=\"virtual\">\n$postdata_input</textarea><br>\n"\r
-               ."<input type=\"submit\" name=\"preview\" value=\"$_btn_repreview\" accesskey=\"p\">\n"\r
-               ."<input type=\"submit\" name=\"write\" value=\"$_btn_update\" accesskey=\"s\">\n"\r
-               ."$add_top\n"\r
-               ."<input type=\"checkbox\" name=\"notimestamp\" value=\"true\" $checked_time><small>$_btn_notchangetimestamp</small>\n"\r
-               ."</form>\n";\r
-}\r
-// ½ñ¤­¹þ¤ß¤â¤·¤¯¤ÏÄɲä⤷¤¯¤Ï¥³¥á¥ó¥È¤ÎÁÞÆþ\r
-else if($post["write"])\r
-{\r
-       $post["msg"] = preg_replace("/^#freeze\n/","",$post["msg"]);\r
-       $postdata_input = $post["msg"];\r
-\r
-       if($post["add"])\r
-       {\r
-               if($post["add_top"])\r
-               {\r
-                       $postdata  = $post["msg"];\r
-                       $postdata .= "\n\n";\r
-                       $postdata .= @join("",@file(get_filename(encode($post["page"]))));\r
-               }\r
-               else\r
-               {\r
-                       $postdata  = @join("",@file(get_filename(encode($post["page"]))));\r
-                       $postdata .= "\n\n";\r
-                       $postdata .= $post["msg"];\r
-               }\r
-       }\r
-       else\r
-       {\r
-               $postdata = $post["msg"];\r
-       }\r
-\r
-       if(md5(@join("",@file(get_filename(encode($post["page"]))))) != $post["digest"])\r
-       {\r
-               $title = str_replace('$1',strip_bracket($post["page"]),$_title_collided);\r
-               $page = str_replace('$1',make_search($post["page"]),$_title_collided);\r
-               \r
-               $body .= "$_msg_collided\n";\r
-\r
-               $body .= "<form action=\"$script?cmd=preview\" method=\"post\">\n"\r
-                       ."<input type=\"hidden\" name=\"page\" value=\"".$post["page"]."\">\n"\r
-                       ."<input type=\"hidden\" name=\"digest\" value=\"".$post["digest"]."\">\n"\r
-                       ."<textarea name=\"msg\" rows=\"$rows\" cols=\"$cols\" wrap=\"virtual\" id=\"textarea\">$postdata_input</textarea><br>\n"\r
-                       ."</form>\n";\r
-       }\r
-       else\r
-       {\r
-               $postdata = user_rules_str($postdata);\r
-\r
-               // º¹Ê¬¥Õ¥¡¥¤¥ë¤ÎºîÀ®\r
-               if(is_page($post["page"]))\r
-                       $oldpostdata = join("",file(get_filename(encode($post["page"]))));\r
-               else\r
-                       $oldpostdata = "\n";\r
-               if($postdata)\r
-                       $diffdata = do_diff($oldpostdata,$postdata);\r
-               file_write(DIFF_DIR,$post["page"],$diffdata);\r
-\r
-               // ¥Ð¥Ã¥¯¥¢¥Ã¥×¤ÎºîÀ®\r
-               if(is_page($post["page"]))\r
-                       $oldposttime = filemtime(get_filename(encode($post["page"])));\r
-               else\r
-                       $oldposttime = time();\r
-\r
-               // ÊÔ½¸ÆâÍƤ¬²¿¤â½ñ¤«¤ì¤Æ¤¤¤Ê¤¤¤È¥Ð¥Ã¥¯¥¢¥Ã¥×¤âºï½ü¤¹¤ë?¤·¤Ê¤¤¤Ç¤¹¤è¤Í¡£\r
-               if(!$postdata && $del_backup)\r
-                       backup_delete(BACKUP_DIR.encode($post["page"]).".txt");\r
-               else if($do_backup && is_page($post["page"]))\r
-                       make_backup(encode($post["page"]).".txt",$oldpostdata,$oldposttime);\r
-\r
-               // ¥Õ¥¡¥¤¥ë¤Î½ñ¤­¹þ¤ß\r
-               file_write(DATA_DIR,$post["page"],$postdata);\r
-\r
-               // is_page¤Î¥­¥ã¥Ã¥·¥å¤ò¥¯¥ê¥¢¤¹¤ë¡£\r
-               is_page($post["page"],true);\r
-\r
-               if($postdata)\r
-               {\r
-                       $title = str_replace('$1',strip_bracket($post["page"]),$_title_updated);\r
-                       $page = str_replace('$1',make_search($post["page"]),$_title_updated);\r
-                       $body = convert_html($postdata);\r
-               }\r
-               else\r
-               {\r
-                       $title = str_replace('$1',strip_bracket($post["page"]),$_title_deleted);\r
-                       $page = str_replace('$1',make_search($post["page"]),$_title_deleted);\r
-                       $body = str_replace('$1',strip_bracket($post["page"]),$_title_deleted);\r
-               }\r
-       }\r
-}\r
-// Åà·ë\r
-else if(arg_check("freeze") && $vars["page"] && $function_freeze)\r
-{\r
-       if(is_freeze($vars["page"]))\r
-       {\r
-               $title = str_replace('$1',strip_bracket($vars["page"]),$_title_isfreezed);\r
-               $page = str_replace('$1',make_search($vars["page"]),$_title_isfreezed);\r
-               $body = str_replace('$1',strip_bracket($vars["page"]),$_title_isfreezed);\r
-       }\r
-       else if(md5($post["pass"]) == $adminpass)\r
-       {\r
-               $postdata = file(get_filename(encode($post["page"])));\r
-               $postdata = join("",$postdata);\r
-               $postdata = "#freeze\n".$postdata;\r
-\r
-               file_write(DATA_DIR,$vars["page"],$postdata);\r
-\r
-               $title = str_replace('$1',strip_bracket($vars["page"]),$_title_freezed);\r
-               $page = str_replace('$1',make_search($vars["page"]),$_title_freezed);\r
-               $postdata = join("",file(get_filename(encode($vars["page"]))));\r
-               $postdata = convert_html($postdata);\r
-\r
-               $body = $postdata;\r
-       }\r
-       else\r
-       {\r
-               $title = str_replace('$1',strip_bracket($vars["page"]),$_title_freeze);\r
-               $page = str_replace('$1',make_search($vars["page"]),$_title_freeze);\r
-\r
-               $body.= "<br>\n";\r
-               \r
-               if($post["pass"])\r
-                       $body .= "<b>$_msg_invalidpass</b><br>\n";\r
-               else\r
-                       $body.= "$_msg_freezing<br>\n";\r
-               \r
-               $body.= "<form action=\"$script?cmd=freeze\" method=\"post\">\n";\r
-               $body.= "<input type=\"hidden\" name=\"page\" value=\"$vars[page]\">\n";\r
-               $body.= "<input type=\"password\" name=\"pass\" size=\"12\">\n";\r
-               $body.= "<input type=\"submit\" name=\"ok\" value=\"$_btn_freeze\">\n";\r
-               $body.= "</form>\n";\r
-       }\r
-}\r
-//Åà·ë¤Î²ò½ü\r
-else if(arg_check("unfreeze") && $vars["page"] && $function_freeze)\r
-{\r
-       if(!is_freeze($vars["page"]))\r
-       {\r
-               $title = str_replace('$1',strip_bracket($vars["page"]),$_title_isunfreezed);\r
-               $page = str_replace('$1',make_search($vars["page"]),$_title_isunfreezed);\r
-               $body = str_replace('$1',strip_bracket($vars["page"]),$_title_isunfreezed);\r
-       }\r
-       else if(md5($post["pass"]) == $adminpass)\r
-       {\r
-               $postdata = file(get_filename(encode($post["page"])));\r
-               array_shift($postdata);\r
-               $postdata = join("",$postdata);\r
-\r
-               file_write(DATA_DIR,$vars["page"],$postdata);\r
-\r
-               $title = str_replace('$1',strip_bracket($vars["page"]),$_title_unfreezed);\r
-               $page = str_replace('$1',make_search($vars["page"]),$_title_unfreezed);\r
-               \r
-               $postdata = join("",file(get_filename(encode($vars["page"]))));\r
-               $postdata = convert_html($postdata);\r
-               \r
-               $body = $postdata;\r
-       }\r
-       else\r
-       {\r
-               $title = str_replace('$1',strip_bracket($vars["page"]),$_title_unfreeze);\r
-               $page = str_replace('$1',make_search($vars["page"]),$_title_unfreeze);\r
-\r
-               $body.= "<br>\n";\r
-\r
-               if($post["pass"])\r
-                       $body .= "<b>$_msg_invalidpass</b><br>\n";\r
-               else\r
-                       $body.= "$_msg_unfreezing<br>\n";\r
-\r
-               $body.= "<form action=\"$script?cmd=unfreeze\" method=\"post\">\n";\r
-               $body.= "<input type=\"hidden\" name=\"page\" value=\"$vars[page]\">\n";\r
-               $body.= "<input type=\"password\" name=\"pass\" size=\"12\">\n";\r
-               $body.= "<input type=\"submit\" name=\"ok\" value=\"$_btn_unfreeze\">\n";\r
-               $body.= "</form>\n";\r
-       }\r
-}\r
-// º¹Ê¬¤Îɽ¼¨\r
-else if(arg_check("diff"))\r
-{\r
-       $pagename = strip_bracket($get["page"]);\r
-       if(!is_page($get["page"]))\r
-       {\r
-               $title = $pagename;\r
-               $page = make_search($vars["page"]);\r
-               $body = "»ØÄꤵ¤ì¤¿¥Ú¡¼¥¸¤Ï¸«¤Ä¤«¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡£";\r
-       }\r
-       else\r
-       {\r
-               $link = str_replace('$1',"<a href=\"$script?".rawurlencode($get["page"])."\">$pagename</a>",$_msg_goto);\r
-               \r
-               $body =  "<ul>\n"\r
-                       ."<li>$_msg_addline</li>\n"\r
-                       ."<li>$_msg_delline</li>\n"\r
-                       ."<li>$link</li>\n"\r
-                       ."</ul>\n"\r
-                       ."$hr\n";\r
-       }\r
-\r
-       if(!file_exists(DIFF_DIR.encode($get["page"]).".txt") && is_page($get["page"]))\r
-       {\r
-               $title = str_replace('$1',strip_bracket($get["page"]),$_title_diff);\r
-               $page = str_replace('$1',make_search($get["page"]),$_title_diff);\r
-\r
-               $diffdata = file(get_filename(encode($get["page"])));\r
-               $body .= "<font color=\"blue\">\n"\r
-                       ."<pre>\n"\r
-                       .join("",$diffdata)\r
-                       ."\n"\r
-                       ."</pre>\n"\r
-                       ."</font>\n";\r
-       }\r
-       else if(file_exists(DIFF_DIR.encode($get["page"]).".txt"))\r
-       {\r
-               $title = str_replace('$1',strip_bracket($get["page"]),$_title_diff);\r
-               $page = str_replace('$1',make_search($get["page"]),$_title_diff);\r
-\r
-               $diffdata = file(DIFF_DIR.encode($get["page"]).".txt");\r
-               $diffdata = preg_replace("/</","&lt;",$diffdata);\r
-               $diffdata = preg_replace("/>/","&gt;",$diffdata);\r
-               $diffdata = preg_replace("/^(\-)(.*)/","<font color=\"red\"> $2</font>",$diffdata);\r
-               $diffdata = preg_replace("/^(\+)(.*)/","<font color=\"blue\"> $2</font>",$diffdata);\r
-               \r
-               $body .= "<pre>\n"\r
-                       .join("",$diffdata)\r
-                       ."\n"\r
-                       ."</pre>\n";\r
-       }\r
-}\r
-// ¸¡º÷\r
-else if(arg_check("search"))\r
-{\r
-       if($vars["word"])\r
-       {\r
-               $title = $page = str_replace('$1',$vars["word"],$_title_result);\r
-       }\r
-       else\r
-       {\r
-               $page = $title = $_title_search;\r
-       }\r
-\r
-       if($vars["word"])\r
-               $body = do_search($vars["word"],$vars["type"]);\r
-       else\r
-               $body = "<br>\n$_msg_searching";\r
-\r
-       if($vars["type"]=="AND" || !$vars["type"]) $and_check = "checked";\r
-       else if($vars["type"]=="OR")               $or_check = "checked";\r
-\r
-       $body .= "<form action=\"$script?cmd=search\" method=\"post\">\n"\r
-               ."<input type=\"text\" name=\"word\" size=\"20\" value=\"".$vars["word"]."\">\n"\r
-               ."<input type=\"radio\" name=\"type\" value=\"AND\" $and_check>$_btn_and\n"\r
-               ."<input type=\"radio\" name=\"type\" value=\"OR\" $or_check>$_btn_or\n"\r
-               ."&nbsp;<input type=\"submit\" value=\"$_btn_search\">\n"\r
-               ."</form>\n";\r
-}\r
-// ¥Ð¥Ã¥¯¥¢¥Ã¥×\r
-else if($do_backup && arg_check("backup"))\r
-{\r
-       if($get["page"] && $get["age"] && (file_exists(BACKUP_DIR.encode($get["page"]).".txt") || file_exists(BACKUP_DIR.encode($get["page"]).".gz")))\r
-       {\r
-               $pagename = strip_bracket($get["page"]);\r
-               $body =  "<ul>\n";\r
-\r
-               $body .= "<li><a href=\"$script?cmd=backup\">$_msg_backuplist</a></li>\n";\r
-\r
-               if(!arg_check("backup_diff") && is_page($get["page"]))\r
-               {\r
-                       $link = str_replace('$1',"<a href=\"$script?cmd=backup_diff&page=".rawurlencode($get["page"])."&age=$get[age]\">$_msg_diff</a>",$_msg_view);\r
-                       $body .= "<li>$link</li>\n";\r
-               }\r
-               if(!arg_check("backup_nowdiff") && is_page($get["page"]))\r
-               {\r
-                       $link = str_replace('$1',"<a href=\"$script?cmd=backup_nowdiff&page=".rawurlencode($get["page"])."&age=$get[age]\">$_msg_nowdiff</a>",$_msg_view);\r
-                       $body .= "<li>$link</li>\n";\r
-               }\r
-               if(!arg_check("backup_source"))\r
-               {\r
-                       $link = str_replace('$1',"<a href=\"$script?cmd=backup_source&page=".rawurlencode($get["page"])."&age=$get[age]\">$_msg_source</a>",$_msg_view);\r
-                       $body .= "<li>$link</li>\n";\r
-               }\r
-               if(arg_check("backup_diff") || arg_check("backup_source") || arg_check("backup_nowdiff"))\r
-               {\r
-                       $link = str_replace('$1',"<a href=\"$script?cmd=backup&page=".rawurlencode($get["page"])."&age=$get[age]\">$_msg_backup</a>",$_msg_view);\r
-                       $body .= "<li>$link</li>\n";\r
-               }\r
-               \r
-               if(is_page($get["page"]))\r
-               {\r
-                       $link = str_replace('$1',"<a href=\"$script?".rawurlencode($get["page"])."\">$pagename</a>",$_msg_goto);\r
-                       $body .=  "<li>$link</li>\n";\r
-               }\r
-               else\r
-               {\r
-                       $link = str_replace('$1',$pagename,$_msg_deleleted);\r
-                       $body .=  "<li>$link</li>\n";\r
-               }\r
-\r
-               $backups = array();\r
-               $backups = get_backup_info(encode($get["page"]).".txt");\r
-               if(count($backups)) $body .= "<ul>\n";\r
-               foreach($backups as $key => $val)\r
-               {\r
-                       $ins_date = date($date_format,$val);\r
-                       $ins_time = date($time_format,$val);\r
-                       $ins_week = "(".$weeklabels[date("w",$val)].")";\r
-                       $backupdate = "($ins_date $ins_week $ins_time)";\r
-                       if($key != $get["age"])\r
-                               $body .= "<li><a href=\"$script?cmd=$get[cmd]&page=".rawurlencode($get["page"])."&age=$key\">$key $backupdate</a></li>\n";\r
-                       else\r
-                               $body .= "<li><i>$key $backupdate</i></li>\n";\r
-               }\r
-               if(count($backups)) $body .= "</ul>\n";\r
-               \r
-               if(arg_check("backup_diff"))\r
-               {\r
-                       $title = str_replace('$1',$pagename,$_title_backupdiff)."(No.$get[age])";\r
-                       $page = str_replace('$1',make_search($get["page"]),$_title_backupdiff)."(No.$get[age])";\r
-                       \r
-                       $backupdata = @join("",get_backup($get[age]-1,encode($get["page"]).".txt"));\r
-                       $postdata = @join("",get_backup($get[age],encode($get["page"]).".txt"));\r
-                       $diffdata = split("\n",do_diff($backupdata,$postdata));\r
-               }\r
-               else if(arg_check("backup_nowdiff"))\r
-               {\r
-                       $title = str_replace('$1',$pagename,$_title_backupnowdiff)."(No.$get[age])";\r
-                       $page = str_replace('$1',make_search($get["page"]),$_title_backupnowdiff)."(No.$get[age])";\r
-                       \r
-                       $backupdata = @join("",get_backup($get[age],encode($get["page"]).".txt"));\r
-                       $postdata = @join("",@file(get_filename(encode($get["page"]))));\r
-                       $diffdata = split("\n",do_diff($backupdata,$postdata));\r
-               }\r
-               else if(arg_check("backup_source"))\r
-               {\r
-                       $title = str_replace('$1',$pagename,$_title_backupsource)."(No.$get[age])";\r
-                       $page = str_replace('$1',make_search($get["page"]),$_title_backupsource)."(No.$get[age])";\r
-                       $backupdata = join("",get_backup($get[age],encode($get["page"]).".txt"));\r
-                       \r
-                       $body.="</ul>\n<pre>\n$backupdata</pre>\n";\r
-               }\r
-               else\r
-               {\r
-                       $pagename = strip_bracket($get["page"]);\r
-                       $title = str_replace('$1',$pagename,$_title_backup)."(No.$get[age])";\r
-                       $page = str_replace('$1',make_search($get["page"]),$_title_backup)."(No.$get[age])";\r
-                       $backupdata = join("",get_backup($get[age],encode($get["page"]).".txt"));\r
-                       $backupdata = convert_html($backupdata);\r
-                       $body .= "</ul>\n"\r
-                               ."$hr\n";\r
-                       $body .= $backupdata;\r
-               }\r
-               \r
-               if(arg_check("backup_diff") || arg_check("backup_nowdiff"))\r
-               {\r
-                       $diffdata = preg_replace("/</","&lt;",$diffdata);\r
-                       $diffdata = preg_replace("/>/","&gt;",$diffdata);\r
-                       $diffdata = preg_replace("/^(\-)(.*)/","<font color=\"red\"> $2</font>",$diffdata);\r
-                       $diffdata = preg_replace("/^(\+)(.*)/","<font color=\"blue\"> $2</font>",$diffdata);\r
-\r
-                       $body .= "<br>\n"\r
-                               ."<li>$_msg_addline</li>\n"\r
-                               ."<li>$_msg_delline</li>\n"\r
-                               ."</ul>\n"\r
-                               ."$hr\n"\r
-                               ."<pre>\n".join("\n",$diffdata)."</pre>\n";\r
-               }\r
-       }\r
-       else if($get["page"] && (file_exists(BACKUP_DIR.encode($get["page"]).".txt") || file_exists(BACKUP_DIR.encode($get["page"]).".gz")))\r
-       {\r
-               $title = str_replace('$1',strip_bracket($get["page"]),$_title_pagebackuplist);\r
-               $page = str_replace('$1',make_search($get["page"]),$_title_pagebackuplist);\r
-               $body = get_backup_list($get["page"]);\r
-       }\r
-       else\r
-       {\r
-               $page = $title = $_title_backuplist;\r
-               $body = get_backup_list();\r
-       }\r
-}\r
-// ¥Ø¥ë¥×¤Îɽ¼¨\r
-else if(arg_check("help"))\r
-{\r
-       $title = $page = "¥Ø¥ë¥×";\r
-       $body = catrule();\r
-}\r
-// MD5¥Ñ¥¹¥ï¡¼¥É¤Ø¤ÎÊÑ´¹\r
-else if($vars["md5"])\r
-{\r
-       $title = $page = "Make password of MD5";\r
-       $body = "$vars[md5] : ".md5($vars["md5"]);\r
-}\r
-else if(arg_check("rss"))\r
-{\r
-       if(!arg_check("rss10"))\r
-               catrss(1);\r
-       else\r
-               catrss(2);\r
-       die();\r
-}\r
-// ¥Ú¡¼¥¸¤Îɽ¼¨¤ÈInterWikiName¤Î²ò¼á\r
-else if((arg_check("read") && $vars["page"] != "") || (!arg_check("read") && $arg != "" && $vars["page"] == ""))\r
-{\r
-       // ¥¢¥¯¥·¥ç¥ó¤òÌÀ¼¨Åª¤Ë»ØÄꤷ¤Æ¤¤¤Ê¤¤¾ì¹ç¥Ú¡¼¥¸Ì¾¤È¤·¤Æ²ò¼á\r
-       if($arg != "" && $vars["page"] == "" && $vars["cmd"] == "")\r
-       {\r
-               $post["page"] = $arg;\r
-               $get["page"] = $arg;\r
-               $vars["page"] = $arg;\r
-       }\r
-       \r
-       // ¥Ú¡¼¥¸Ì¾¤¬WikiName¤Ç¤Ê¤¯¡¢BracketName¤Ç¤Ê¤±¤ì¤ÐBracketName¤È¤·¤Æ²ò¼á\r
-       if(!preg_match("/^(($WikiName)|($BracketName)|($InterWikiName))$/",$get["page"]))\r
-       {\r
-               $vars["page"] = "[[$vars[page]]]";\r
-               $get["page"] = $vars["page"];\r
-       }\r
-\r
-       // WikiName¡¢BracketName¤¬¼¨¤¹¥Ú¡¼¥¸¤òɽ¼¨\r
-       if(is_page($get["page"]))\r
-       {\r
-               $postdata = join("",file(get_filename(encode($get["page"]))));\r
-               $postdata = convert_html($postdata);\r
-\r
-               $title = strip_bracket($get["page"]);\r
-               $page = make_search($get["page"]);\r
-               $body = $postdata;\r
-\r
-               header_lastmod($vars["page"]);\r
-       }\r
-       else if(preg_match("/($InterWikiName)/",$get["page"],$match))\r
-       {\r
-       // InterWikiName¤ÎȽÊ̤ȥڡ¼¥¸¤Îɽ¼¨\r
-               $interwikis = open_interwikiname_list();\r
-               \r
-               if(!$interwikis[$match[2]]["url"])\r
-               {\r
-                       $title = $page = $_title_invalidiwn;\r
-                       $body = str_replace('$1',strip_bracket($get[page]),str_replace('$2',"<a href=\"$script?InterWikiName\">InterWikiName</a>",$_msg_invalidiwn));\r
-               }\r
-               else\r
-               {\r
-                       // Ê¸»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°\r
-                       if($interwikis[$match[2]]["opt"] == "yw")\r
-                       {\r
-                               // YukiWiki·Ï\r
-                               if(!preg_match("/$WikiName/",$match[3]))\r
-                                       $match[3] = "[[".mb_convert_encoding($match[3],"SJIS","auto")."]]";\r
-                       }\r
-                       else if($interwikis[$match[2]]["opt"] == "moin")\r
-                       {\r
-                               // moin·Ï\r
-                               if(function_exists("mb_convert_encoding"))\r
-                               {\r
-                                       $match[3] = rawurlencode(mb_convert_encoding($match[3],"EUC-JP","auto"));\r
-                                       $match[3] = str_replace("%","_",$match[3]);\r
-                               }\r
-                               else\r
-                                       $not_mb = 1;\r
-                       }\r
-                       else if($interwikis[$match[2]]["opt"] == "" || $interwikis[$match[2]]["opt"] == "std")\r
-                       {\r
-                               // ÆâÉôʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤Î¤Þ¤ÞURL¥¨¥ó¥³¡¼¥É\r
-                               $match[3] = rawurlencode($match[3]);\r
-                       }\r
-                       else if($interwikis[$match[2]]["opt"] == "asis" || $interwikis[$match[2]]["opt"] == "raw")\r
-                       {\r
-                               // URL¥¨¥ó¥³¡¼¥É¤·¤Ê¤¤\r
-                               $match[3] = $match[3];\r
-                       }\r
-                       else if($interwikis[$match[2]]["opt"] != "")\r
-                       {\r
-                               // ¥¨¥¤¥ê¥¢¥¹¤ÎÊÑ´¹\r
-                               if($interwikis[$match[2]]["opt"] == "sjis")\r
-                                       $interwikis[$match[2]]["opt"] = "SJIS";\r
-                               else if($interwikis[$match[2]]["opt"] == "euc")\r
-                                       $interwikis[$match[2]]["opt"] = "EUC-JP";\r
-                               else if($interwikis[$match[2]]["opt"] == "utf8")\r
-                                       $interwikis[$match[2]]["opt"] = "UTF-8";\r
-\r
-                               // ¤½¤Î¾¡¢»ØÄꤵ¤ì¤¿Ê¸»ú¥³¡¼¥É¤Ø¥¨¥ó¥³¡¼¥É¤·¤ÆURL¥¨¥ó¥³¡¼¥É\r
-                               if(function_exists("mb_convert_encoding"))\r
-                                       $match[3] = rawurlencode(mb_convert_encoding($match[3],$interwikis[$match[2]]["opt"],"auto"));\r
-                               else\r
-                                       $not_mb = 1;\r
-                       }\r
-\r
-                       if(strpos($interwikis[$match[2]]["url"],'$1') !== FALSE)\r
-                               $url = str_replace('$1',$match[3],$interwikis[$match[2]]["url"]);\r
-                       else\r
-                               $url = $interwikis[$match[2]]["url"] . $match[3];\r
-\r
-                       if($not_mb)\r
-                       {\r
-                               $title = $page = "Not support mb_jstring.";\r
-                               $body = "This server's PHP does not have \"mb_jstring\" module.Cannot convert encoding.";\r
-                       }\r
-                       else\r
-                       {\r
-                               header("Location: $url");\r
-                               die();\r
-                       }\r
-               }\r
-       }\r
-       // WikiName¡¢BracketName¤¬¸«¤Ä¤«¤é¤º¡¢InterWikiName¤Ç¤â¤Ê¤¤¾ì¹ç\r
-       else\r
-       {\r
-               //$title = strip_bracket($get["page"]);\r
-               //$page = make_search($get["page"]);\r
-               //$body = "»ØÄꤵ¤ì¤¿¥Ú¡¼¥¸¤Ï¸«¤Ä¤«¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡£";\r
-\r
-               $title = str_replace('$1',strip_bracket($get["page"]),$_title_edit);\r
-               $page = str_replace('$1',make_search($get["page"]),$_title_edit);\r
-               $body = edit_form("",$get["page"]);\r
-       }\r
-}\r
-// ²¿¤â»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢¥È¥Ã¥×¥Ú¡¼¥¸¤òɽ¼¨\r
-else\r
-{\r
-       $postdata = join("",file(get_filename(encode($defaultpage))));\r
-\r
-       $vars["page"] = $defaultpage;\r
-       $title = strip_bracket($defaultpage);\r
-       $page = make_search($vars["page"]);\r
-       $body = convert_html($postdata);\r
-\r
-       header_lastmod($vars["page"]);\r
-}\r
-\r
-// ** ½ÐÎϽèÍý **\r
-\r
-catbody($title,$page,$body);\r
-\r
-// ** ³Æ¼ï´Ø¿ô **\r
-\r
-// ËÜʸ¤ò¥Ú¡¼¥¸Ì¾¤«¤é½ÐÎÏ\r
-function catbodyall($page,$title="",$pg="")\r
-{\r
-       if($title === "") $title = strip_bracket($page);\r
-       if($pg === "") $pg = make_search($page);\r
-\r
-       $body = join("",file(get_filename(encode($page))));\r
-       $body = convert_html($body);\r
-\r
-       header_lastmod($vars["page"]);\r
-       catbody($title,$pg,$body);\r
-       die();\r
-}\r
-\r
-// ËÜʸ¤ò½ÐÎÏ\r
-function catbody($title,$page,$body)\r
-{\r
-       global $script,$vars,$arg,$do_backup,$modifier,$modifierlink,$defaultpage,$whatsnew,$hr;\r
-       global $date_format,$weeklabels,$time_format,$longtaketime,$related_link;\r
-       global $HTTP_SERVER_VARS,$cantedit;\r
-\r
-       if($vars["page"] && !arg_check("backup") && $vars["page"] != $whatsnew)\r
-       {\r
-               $is_page = 1;\r
-       }\r
-\r
-       $link_add = "$script?cmd=add&page=".rawurlencode($vars["page"]);\r
-       $link_edit = "$script?cmd=edit&page=".rawurlencode($vars["page"]);\r
-       $link_diff = "$script?cmd=diff&page=".rawurlencode($vars["page"]);\r
-       $link_top = "$script?$defaultpage";\r
-       $link_list = "$script?cmd=list";\r
-       $link_filelist = "$script?cmd=filelist";\r
-       $link_search = "$script?cmd=search";\r
-       $link_whatsnew = "$script?$whatsnew";\r
-       $link_backup = "$script?cmd=backup&page=".rawurlencode($vars["page"]);\r
-       $link_help = "$script?cmd=help";\r
-\r
-       if(is_page($vars["page"]) && $is_page)\r
-       {\r
-               $fmt = @filemtime(get_filename(encode($vars["page"])));\r
-       }\r
-\r
-       if(is_page($vars["page"]) && $related_link && $is_page && !arg_check("edit") && !arg_check("freeze") && !arg_check("unfreeze"))\r
-       {\r
-               $related = make_related($vars["page"],false);\r
-       }\r
-\r
-       if(is_page($vars["page"]) && !in_array($vars["page"],$cantedit) && !arg_check("backup") && !arg_check("edit") && !$vars["preview"])\r
-       {\r
-               $is_read = TRUE;\r
-       }\r
-\r
-       //if(!$longtaketime)\r
-               $longtaketime = getmicrotime() - MUTIME;\r
-       $taketime = sprintf("%01.03f",$longtaketime);\r
-\r
-       require(SKIN_FILE);\r
-}\r
-\r
-// ¥Õ¥¡¥¤¥ë¤Ø¤Î½ÐÎÏ\r
-function file_write($dir,$page,$str)\r
-{\r
-       global $post,$update_exec;\r
-\r
-       if($str == "")\r
-       {\r
-               @unlink($dir.encode($page).".txt");\r
-       }\r
-       else\r
-       {\r
-               if($post["notimestamp"] && is_page($page))\r
-               {\r
-                       $timestamp = @filemtime($dir.encode($page).".txt");\r
-               }\r
-               $fp = fopen($dir.encode($page).".txt","w");\r
-               while(!flock($fp,LOCK_EX));\r
-               fputs($fp,$str);\r
-               flock($fp,LOCK_UN);\r
-               fclose($fp);\r
-               if($timestamp)\r
-                       touch($dir.encode($page).".txt",$timestamp);\r
-       }\r
-       \r
-       if(!$timestamp)\r
-               put_lastmodified();\r
-\r
-       if($update_exec)\r
-       {\r
-               system($update_exec." > /dev/null &");\r
-       }\r
-}\r
-\r
-// ¥Ð¥Ã¥¯¥¢¥Ã¥×°ìÍ÷¤Î¼èÆÀ\r
-function get_backup_list($_page="")\r
-{\r
-       global $script,$date_format,$time_format,$weeklabels,$cantedit;\r
-       global $_msg_backuplist,$_msg_diff,$_msg_nowdiff,$_msg_source;\r
-\r
-       $ins_date = date($date_format,$val);\r
-       $ins_time = date($time_format,$val);\r
-       $ins_week = "(".$weeklabels[date("w",$val)].")";\r
-       $ins = "$ins_date $ins_week $ins_time";\r
-\r
-       if (($dir = @opendir(BACKUP_DIR)) && !$_page)\r
-       {\r
-               while($file = readdir($dir))\r
-               {\r
-                       if(function_exists(gzopen))\r
-                               $file = str_replace(".txt",".gz",$file);\r
-\r
-                       if($file == ".." || $file == ".") continue;\r
-                       $page = decode(trim(preg_replace("/(\.txt)|(\.gz)$/"," ",$file)));\r
-                       if(in_array($page,$cantedit)) continue;\r
-                       $page_url = rawurlencode($page);\r
-                       $name = $page;\r
-                       $name = strip_bracket($name);\r
-                       if(is_page($page))\r
-                               $vals[$name]["link"] = "<li><a href=\"$script?$page_url\">$name</a></li>";\r
-                       else\r
-                               $vals[$name]["link"] = "<li>$name</li>";\r
-                       $vals[$name]["name"] = $page;\r
-               }\r
-               closedir($dir);\r
-               $vals = list_sort($vals);\r
-               $retvars[] = "<ul>";\r
-       }\r
-       else\r
-       {\r
-               $page_url = rawurlencode($_page);\r
-               $name = strip_bracket($_page);\r
-               $vals[$name]["link"] = "";\r
-               $vals[$name]["name"] = $_page;\r
-               $retvars[] = "<ul>";\r
-               $retvars[] .= "<li><a href=\"$script?cmd=backup\">$_msg_backuplist</a></li>\n";\r
-       }\r
-       \r
-       \r
-       foreach($vals as $page => $line)\r
-       {\r
-               $arybackups = get_backup_info(encode($line["name"]).".txt");\r
-               $page_url = rawurlencode($line["name"]);\r
-               if(count($arybackups)) $line["link"] .= "\n<ul>\n";\r
-               foreach($arybackups as $key => $val)\r
-               {\r
-                       $ins_date = date($date_format,$val);\r
-                       $ins_time = date($time_format,$val);\r
-                       $ins_week = "(".$weeklabels[date("w",$val)].")";\r
-                       $backupdate = "($ins_date $ins_week $ins_time)";\r
-                       if(!$_page)\r
-                       {\r
-                               $line["link"] .= "<li><a href=\"$script?cmd=backup&page=$page_url&age=$key\">$key $backupdate</a></li>\n";\r
-                       }\r
-                       else\r
-                       {\r
-                               $line["link"] .= "<li><a href=\"$script?cmd=backup&page=$page_url&age=$key\">$key $backupdate</a> [ <a href=\"$script?cmd=backup_diff&page=$page_url&age=$key\">$_msg_diff</a> | <a href=\"$script?cmd=backup_nowdiff&page=$page_url&age=$key\">$_msg_nowdiff</a> | <a href=\"$script?cmd=backup_source&page=$page_url&age=$key\">$_msg_source</a> ]</li>\n";\r
-                       }\r
-               }\r
-               if(count($arybackups)) $line["link"] .= "</ul>";\r
-               $retvars[] = $line["link"];\r
-       }\r
-       $retvars[] = "</ul>";\r
-       \r
-       return join("\n",$retvars);\r
-}\r
-\r
-// ºÇ½ª¹¹¿·¥Ú¡¼¥¸¤Î¹¹¿·\r
-function put_lastmodified()\r
-{\r
-       global $script,$maxshow,$whatsnew,$date_format,$time_format,$weeklabels,$post,$non_list;\r
-\r
-       if($post["notimestamp"]) return;\r
-\r
-       if ($dir = @opendir(DATA_DIR))\r
-       {\r
-               while($file = readdir($dir))\r
-               {\r
-                       $page = decode(trim(preg_replace("/\.txt$/"," ",$file)));\r
-\r
-                       if($page == $whatsnew || $file == "." || $file == "..") continue;\r
-                       if(preg_match("/$non_list/",$page)) continue;\r
-\r
-                       if(file_exists(get_filename(encode($page))))\r
-                       {\r
-                               $page_url = rawurlencode($page);\r
-                               $lastmodtime = filemtime(get_filename(encode($page)));\r
-                               $lastmod = date($date_format,$lastmodtime)\r
-                                        . " (" . $weeklabels[date("w",$lastmodtime)] . ") "\r
-                                        . date($time_format,$lastmodtime);\r
-                               $putval[$lastmodtime][] = "-$lastmod - $page";\r
-                       }\r
-               }\r
-               closedir($dir);\r
-       }\r
-       \r
-       $cnt = 1;\r
-       krsort($putval);\r
-       $fp = fopen(get_filename(encode($whatsnew)),"w");\r
-       flock($fp,LOCK_EX);\r
-       foreach($putval as $pages)\r
-       {\r
-               foreach($pages as $page)\r
-               {\r
-                       fputs($fp,$page."\n");\r
-                       $cnt++;\r
-                       if($cnt > $maxshow) break;\r
-               }\r
-               if($cnt > $maxshow) break;\r
-       }\r
-       flock($fp,LOCK_EX);\r
-       fclose($fp);\r
-}\r
-\r
-// ¸¡º÷\r
-function do_search($word,$type="AND",$non_format=0)\r
-{\r
-       global $script,$whatsnew,$vars;\r
-       global $_msg_andresult,$_msg_orresult,$_msg_notfoundresult;\r
-       \r
-       $database = array();\r
-       $retval = array();\r
-       $cnt = 0;\r
-\r
-       if ($dir = @opendir(DATA_DIR))\r
-       {\r
-               while($file = readdir($dir))\r
-               {\r
-                       if($file == ".." || $file == ".") continue;\r
-                       $cnt++;\r
-                       $page = decode(trim(preg_replace("/\.txt$/"," ",$file)));\r
-                       if($page == $whatsnew) continue;\r
-                       if($page == $vars["page"] && $non_format) continue;\r
-                       $data[$page] = file(DATA_DIR.$file);\r
-               }\r
-               closedir($dir);\r
-       }\r
-       \r
-       $arywords = explode(" ",$word);\r
-       $result_word = $word;\r
-       \r
-       foreach($data as $name => $lines)\r
-       {\r
-               $line = join("\n",$lines);\r
-               \r
-               $hit = 0;\r
-               if(strpos($result_word," ") !== FALSE)\r
-               {\r
-                       foreach($arywords as $word)\r
-                       {\r
-                               if($type=="AND")\r
-                               {\r
-                                       if(strpos($line,$word) === FALSE)\r
-                                       {\r
-                                               $hit = 0;\r
-                                               break;\r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               $hit = 1;\r
-                                       }\r
-                               }\r
-                               else if($type=="OR")\r
-                               {\r
-                                       if(strpos($line,$word) !== FALSE)\r
-                                               $hit = 1;\r
-                               }\r
-                       }\r
-                       if($hit==1 || strpos($name,$word)!==FALSE)\r
-                       {\r
-                               $page_url = rawurlencode($name);\r
-                               $word_url = rawurlencode($word);\r
-                               $name2 = strip_bracket($name);\r
-                               $str = get_pg_passage($name);\r
-                               $retval[$name2] = "<li><a href=\"$script?$page_url\">$name2</a>$str</li>";\r
-                       }\r
-               }\r
-               else\r
-               {\r
-                       if(stristr($line,$word) || stristr($name,$word))\r
-                       {\r
-                               $page_url = rawurlencode($name);\r
-                               $word_url = rawurlencode($word);\r
-                               $name2 = strip_bracket($name);\r
-                               $link_tag = "<a href=\"$script?$page_url\">$name2</a>";\r
-                               $link_tag .= get_pg_passage($name,false);\r
-                               if($non_format)\r
-                               {\r
-                                       $tm = @filemtime(get_filename(encode($name)));\r
-                                       $retval[$tm] = $link_tag;\r
-                               }\r
-                               else\r
-                               {\r
-                                       $retval[$name2] = "<li>$link_tag</li>";\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-\r
-       if($non_format)\r
-               return $retval;\r
-\r
-       $retval = list_sort($retval);\r
-\r
-       if(count($retval) && !$non_format)\r
-       {\r
-               $retvals = "<ul>\n" . join("\n",$retval) . "</ul>\n<br>\n";\r
-               \r
-               if($type=="AND")\r
-                       $retvals.= str_replace('$1',$result_word,str_replace('$2',count($retval),str_replace('$3',$cnt,$_msg_andresult)));\r
-               else\r
-                       $retvals.= str_replace('$1',$result_word,str_replace('$2',count($retval),str_replace('$3',$cnt,$_msg_orresult)));\r
-\r
-       }\r
-       else\r
-               $retvals .= str_replace('$1',$result_word,$_msg_notfoundresult);\r
-       return $retvals;\r
-}\r
-\r
-// º¹Ê¬¤ÎºîÀ®\r
-function do_diff($strlines1,$strlines2)\r
-{\r
-       $lines1 = split("\n",$strlines1);\r
-       $lines2 = split("\n",$strlines2);\r
-       \r
-       $same_lines = $diff_lines = $del_lines = $add_lines = $retdiff = array();\r
-       \r
-       if(count($lines1) > count($lines2)) { $max_line = count($lines1)+2; }\r
-       else                                { $max_line = count($lines2)+2; }\r
-\r
-       //$same_lines = array_intersect($lines1,$lines2);\r
-\r
-       $diff_lines = array_diff($lines1,$lines2);\r
-       $diff_lines = array_merge($diff_lines,array_diff($lines2,$lines1));\r
-\r
-       foreach($diff_lines as $line)\r
-       {\r
-               $index = array_search($line,$lines1);\r
-               if($index > -1)\r
-               {\r
-                       $del_lines[$index] = $line;\r
-               }\r
-               \r
-               //$index = array_search($line,$lines2);\r
-               //if($index > -1)\r
-               //{\r
-               //      $add_lines[$index] = $line;\r
-               //}\r
-       }\r
-\r
-       $cnt=0;\r
-       foreach($lines2 as $line)\r
-       {\r
-               $line = rtrim($line);\r
-               \r
-               while($del_lines[$cnt])\r
-               {\r
-                       $retdiff[] = "- ".$del_lines[$cnt];\r
-                       $del_lines[$cnt] = "";\r
-                       $cnt++;\r
-               }\r
-               \r
-               if(in_array($line,$diff_lines))\r
-               {\r
-                       $retdiff[] = "+ $line";\r
-               }\r
-               else\r
-               {\r
-                       $retdiff[] = "  $line";\r
-               }\r
-\r
-               $cnt++;\r
-       }\r
-       \r
-       foreach($del_lines as $line)\r
-       {\r
-               if(trim($line))\r
-                       $retdiff[] = "- $line";\r
-       }\r
-\r
-       return join("\n",$retdiff);\r
-}\r
-\r
-// °ìÍ÷¤Î¼èÆÀ\r
-function get_list($withfilename)\r
-{\r
-       global $script,$list_index,$top,$non_list,$whatsnew;\r
-       global $_msg_symbol,$_msg_other;\r
-       \r
-       $retval = array();\r
-       if ($dir = @opendir(DATA_DIR))\r
-       {\r
-               while($file = readdir($dir))\r
-               {\r
-                       $page = decode(trim(preg_replace("/\.txt$/"," ",$file)));\r
-                       if($file == ".." || $file == ".") continue;\r
-                       if(preg_match("/$non_list/",$page) && !$withfilename) continue;\r
-                       if($page == $whatsnew) continue;\r
-                       $page_url = rawurlencode($page);\r
-                       $page2 = strip_bracket($page);\r
-                       $pg_passage = get_pg_passage($page);\r
-                       $retval[$page2] .= "<li><a href=\"$script?$page_url\">$page2</a>$pg_passage</li>\n";\r
-                       if($withfilename)\r
-                       {\r
-                               $retval[$page2] .= "<ul><li>$file</li></ul>\n";\r
-                       }\r
-               }\r
-               closedir($dir);\r
-       }\r
-       \r
-       $retval = list_sort($retval);\r
-       \r
-       if($list_index)\r
-       {\r
-               $head_str = "";\r
-               $etc_sw = 0;\r
-               $symbol_sw = 0;\r
-               $top_link = "";\r
-               foreach($retval as $page => $link)\r
-               {\r
-                       $head = substr($page,0,1);\r
-                       if($head_str != $head && !$etc_sw)\r
-                       {\r
-                               $retval2[$page] = "";\r
-                               \r
-                               if(preg_match("/([A-Z])|([a-z])/",$head,$match))\r
-                               {\r
-                                       if($match[1])\r
-                                               $head_nm = "High:$head";\r
-                                       else\r
-                                               $head_nm = "Low:$head";\r
-                                       \r
-                                       if($head_str) $retval2[$page] = "</ul>\n";\r
-                                       $retval2[$page] .= "<li><a href=\"#top:$head_nm\" name=\"$head_nm\"><b>$head</b></a></li>\n<ul>\n";\r
-                                       $head_str = $head;\r
-                                       if($top_link) $top_link .= "|";\r
-                                       $top_link .= "<a href=\"#$head_nm\" name=\"top:$head_nm\"><b>&nbsp;".$head."&nbsp;</b></a>";\r
-                               }\r
-                               else if(preg_match("/[ -~]/",$head))\r
-                               {\r
-                                       if(!$symbol_sw)\r
-                                       {\r
-                                               if($head_str) $retval2[$page] = "</ul>\n";\r
-                                               $retval2[$page] .= "<li><a href=\"#top:symbol\" name=\"symbol\"><b>$_msg_symbol</b></a></li>\n<ul>\n";\r
-                                               $head_str = $head;\r
-                                               if($top_link) $top_link .= "|";\r
-                                               $top_link .= "<a href=\"#symbol\" name=\"top:symbol\"><b>$_msg_symbol</b></a>";\r
-                                               $symbol_sw = 1;\r
-                                       }\r
-                               }\r
-                               else\r
-                               {\r
-                                       if($head_str) $retval2[$page] = "</ul>\n";\r
-                                       $retval2[$page] .= "<li><a href=\"#top:etc\" name=\"etc\"><b>$_msg_other</b></a></li>\n<ul>\n";\r
-                                       $etc_sw = 1;\r
-                                       if($top_link) $top_link .= "|";\r
-                                       $top_link .= "<a href=\"#etc\" name=\"top:etc\"><b>$_msg_other</b></a>";\r
-                               }\r
-                       }\r
-                       $retval2[$page] .= $link;\r
-               }\r
-               $retval2[] = "</ul>\n";\r
-               \r
-               $top_link = "<div align=\"center\"><a name=\"top\">$top_link</a></div><br>\n";\r
-               \r
-               array_unshift($retval2,$top_link);\r
-       }\r
-       else\r
-       {\r
-               $retval2 = $retval;\r
-       }\r
-       \r
-       return join("",$retval2);\r
-}\r
-\r
-// ÊÔ½¸¥Õ¥©¡¼¥à¤Îɽ¼¨\r
-function edit_form($postdata,$page,$add=0)\r
-{\r
-       global $script,$rows,$cols,$hr,$vars,$function_freeze;\r
-       global $_btn_addtop,$_btn_preview,$_btn_update,$_btn_freeze,$_msg_help,$_btn_notchangetimestamp;\r
-       global $whatsnew,$_btn_template,$_btn_load,$non_list,$load_template_func;\r
-\r
-       $digest = md5(@join("",@file(get_filename(encode($page)))));\r
-\r
-       if($add)\r
-       {\r
-               $addtag = '<input type="hidden" name="add" value="true">';\r
-               $add_top = '<input type="checkbox" name="add_top" value="true"><small>'.$_btn_addtop.'</small>';\r
-       }\r
-\r
-       if($vars["help"] == "true")\r
-               $help = $hr.catrule();\r
-       else\r
-               $help = "<br>\n<ul><li><a href=\"$script?cmd=edit&help=true&page=".rawurlencode($page)."\">$_msg_help</a></ul></li>\n";\r
-\r
-       if($function_freeze)\r
-               $str_freeze = '<input type="submit" name="freeze" value="'.$_btn_freeze.'" accesskey="f">';\r
-\r
-       if($load_template_func)\r
-       {\r
-               $vals = array();\r
-               if ($dir = @opendir(DATA_DIR))\r
-               {\r
-                       while($file = readdir($dir))\r
-                       {\r
-                               $pg_org = decode(trim(preg_replace("/\.txt$/"," ",$file)));\r
-                               if($file == ".." || $file == "." || $pg_org == $whatsnew) continue;\r
-                               if(preg_match("/$non_list/",$pg_org)) continue;\r
-                               $name = strip_bracket($pg_org);\r
-                               $vals[$name] = "    <option value=\"$pg_org\">$name</option>";\r
-                       }\r
-                       closedir($dir);\r
-               }\r
-               @ksort($vals);\r
-               \r
-               $template = "   <select name=\"template_page\">\n"\r
-                          ."    <option value=\"\">-- $_btn_template --</option>\n"\r
-                          .join("\n",$vals)\r
-                          ."   </select>\n"\r
-                          ."   <input type=\"submit\" name=\"template\" value=\"$_btn_load\" accesskey=\"r\"><br>\n";\r
-\r
-               if($vars["refer"]) $refer = $vars["refer"]."\n\n";\r
-       }\r
-\r
-return '\r
-<form action="'.$script.'" method="post">\r
-<input type="hidden" name="page" value="'.$page.'">\r
-<input type="hidden" name="digest" value="'.$digest.'">\r
-'.$addtag.'\r
-<table cellspacing="3" cellpadding="0" border="0">\r
- <tr>\r
-  <td colspan="2" align="right">\r
-'.$template.'\r
-  </td>\r
- </tr>\r
- <tr>\r
-  <td colspan="2" align="right">\r
-   <textarea name="msg" rows="'.$rows.'" cols="'.$cols.'" wrap="virtual">\r
-'.$refer.$postdata.'</textarea>\r
-  </td>\r
- </tr>\r
- <tr>\r
-  <td>\r
-   <input type="submit" name="preview" value="'.$_btn_preview.'" accesskey="p">\r
-   <input type="submit" name="write" value="'.$_btn_update.'" accesskey="s">\r
-   '.$add_top.'\r
-   <input type="checkbox" name="notimestamp" value="true"><small>'.$_btn_notchangetimestamp.'</small>\r
-  </td>\r
-  </form>\r
-  <form action="'.$script.'?cmd=freeze" method="post">\r
-   <input type="hidden" name="page" value="'.$vars["page"].'">\r
-  <td align="right">\r
-   '.$str_freeze.'\r
-  </td>\r
-  </form>\r
- </tr>\r
-</table>\r
-' . $help;\r
-}\r
-\r
-// ¥Õ¥¡¥¤¥ë̾¤òÆÀ¤ë(¥¨¥ó¥³¡¼¥É¤µ¤ì¤Æ¤¤¤ëɬÍ×Í­¤ê)\r
-function get_filename($pagename)\r
-{\r
-       return DATA_DIR.$pagename.".txt";\r
-}\r
-\r
-// ¥Ú¡¼¥¸¤¬Â¸ºß¤¹¤ë¤«¤·¤Ê¤¤¤«\r
-function is_page($page,$reload=false)\r
-{\r
-       global $InterWikiName,$_ispage;\r
-\r
-       if(($_ispage[$page] === true || $_ispage[$page] === false) && !$reload) return $_ispage[$page];\r
-\r
-       if(preg_match("/($InterWikiName)/",$page))\r
-               $_ispage[$page] = false;\r
-       else if(!file_exists(get_filename(encode($page))))\r
-               $_ispage[$page] = false;\r
-       else\r
-               $_ispage[$page] = true;\r
-       \r
-       return $_ispage[$page];\r
-}\r
-\r
-// ¥Ú¡¼¥¸¤¬ÊÔ½¸²Äǽ¤«\r
-function is_editable($page)\r
-{\r
-       global $BracketName,$WikiName,$InterWikiName,$cantedit,$_editable;\r
-\r
-       if($_editable === true || $_editable === false) return $_editable;\r
-\r
-       if(preg_match("/^$InterWikiName$/",$page))\r
-               $_editable = false;\r
-       elseif(!preg_match("/^$BracketName$/",$page) && !preg_match("/^$WikiName$/",$page))\r
-               $_editable = false;\r
-       else if(in_array($page,$cantedit))\r
-               $_editable = false;\r
-       else\r
-               $_editable = true;\r
-       \r
-       return $_editable;\r
-}\r
-\r
-// ¥Ú¡¼¥¸¤¬Åà·ë¤µ¤ì¤Æ¤¤¤ë¤«\r
-function is_freeze($page)\r
-{\r
-       global $_freeze;\r
-\r
-       if(!is_page($page)) return false;\r
-       if($_freeze === true || $_freeze === false) return $_freeze;\r
-\r
-       $lines = file(get_filename(encode($page)));\r
-       \r
-       if($lines[0] == "#freeze\n")\r
-               $_freeze = true;\r
-       else\r
-               $_freeze = false;\r
-       \r
-       return $_freeze;\r
-}\r
-\r
-// ¥×¥í¥°¥é¥à¤Ø¤Î°ú¿ô¤Î¥Á¥§¥Ã¥¯\r
-function arg_check($str)\r
-{\r
-       global $arg,$vars;\r
-\r
-       return preg_match("/^".$str."/",$vars["cmd"]);\r
-}\r
-\r
-// ¥Ú¡¼¥¸¥ê¥¹¥È¤Î¥½¡¼¥È\r
-function list_sort($values)\r
-{\r
-       if(!is_array($values)) return array();\r
-       \r
-       // ksort¤Î¤ß¤À¤È¡¢[[ÆüËܸì]]¡¢[[±Ñʸ»ú]]¡¢±Ñʸ»ú¤Î¤ß¡¢¤Ë½ç¤ËʤÙÂؤ¨¤é¤ì¤ë\r
-       ksort($values);\r
-\r
-       $vals1 = array();\r
-       $vals2 = array();\r
-       $vals3 = array();\r
-\r
-       // ±Ñʸ»ú¤Î¤ß¡¢[[±Ñʸ»ú]]¡¢[[ÆüËܸì]]¡¢¤Î½ç¤ËʤÙÂؤ¨¤ë\r
-       foreach($values as $key => $val)\r
-       {\r
-               if(preg_match("/\[\[[^\w]+\]\]/",$key))\r
-                       $vals3[$key] = $val;\r
-               else if(preg_match("/\[\[[\W]+\]\]/",$key))\r
-                       $vals2[$key] = $val;\r
-               else\r
-                       $vals1[$key] = $val;\r
-       }\r
-       return array_merge($vals1,$vals2,$vals3);\r
-}\r
-\r
-// ¥Ú¡¼¥¸Ì¾¤Î¥¨¥ó¥³¡¼¥É\r
-function encode($key)\r
-{\r
-       $enkey = '';\r
-       $arych = preg_split("//", $key, -1, PREG_SPLIT_NO_EMPTY);\r
-       \r
-       foreach($arych as $ch)\r
-       {\r
-               $enkey .= sprintf("%02X", ord($ch));\r
-       }\r
-\r
-       return $enkey;\r
-}\r
-\r
-// ¥Õ¥¡¥¤¥ë̾¤Î¥Ç¥³¡¼¥É\r
-function decode($key)\r
-{\r
-       $dekey = '';\r
-       \r
-       for($i=0;$i<strlen($key);$i+=2)\r
-       {\r
-               $ch = substr($key,$i,2);\r
-               $dekey .= chr(intval("0x".$ch,16));\r
-       }\r
-       return urldecode($dekey);\r
-}\r
-\r
-// ¥Æ¥­¥¹¥ÈËÜÂΤòHTML¤ËÊÑ´¹¤¹¤ë\r
-function convert_html($string)\r
-{\r
-       global $result,$saved,$hr,$script,$page,$vars,$top;\r
-       global $note_id,$foot_explain,$digest,$note_hr;\r
-       global $user_rules,$str_rules,$line_rules,$strip_link_wall;\r
-\r
-       global $longtaketime;\r
-\r
-       $string = rtrim($string);\r
-       $string = preg_replace("/(\x0D\x0A)/","\n",$string);\r
-       $string = preg_replace("/(\x0D)/","\n",$string);\r
-       $string = preg_replace("/(\x0A)/","\n",$string);\r
-\r
-       $start_mtime = getmicrotime();\r
-\r
-       $digest = md5(@join("",@file(get_filename(encode($vars["page"])))));\r
-\r
-       $content_id = 0;\r
-       $user_rules = array_merge($str_rules,$line_rules);\r
-\r
-       $result = array();\r
-       $saved = array();\r
-       $arycontents = array();\r
-\r
-       $string = preg_replace("/^#freeze\n/","",$string);\r
-\r
-       $lines = split("\n", $string);\r
-       $note_id = 1;\r
-       $foot_explain = array();\r
-\r
-       $table = 0;\r
-\r
-       if(preg_match("/#contents/",$string))\r
-               $top_link = "<a href=\"#contents\">$top</a>";\r
-\r
-       foreach ($lines as $line)\r
-       {\r
-               if(!preg_match("/^\/\/(.*)/",$line,$comment_out) && $table != 0)\r
-               {\r
-                       if(!preg_match("/^\|(.+)\|$/",$line,$out))\r
-                               array_push($result, "</table>");\r
-                       if(!$out[1] || $table != count(explode("|",$out[1])))\r
-                               $table = 0;\r
-               }\r
-\r
-               $comment_out = $comment_out[1];\r
-\r
-               if(preg_match("/^(\*{1,3})(.*)/",$line,$out))\r
-               {\r
-                       $result = array_merge($result,$saved); $saved = array();\r
-                       $str = inline($out[2]);\r
-                       \r
-                       $level = strlen($out[1]) + 1;\r
-                       \r
-                       array_push($result, "<h$level><a name=\"content:$content_id\">$str</a> $top_link</h$level>");\r
-                       $arycontents[] = str_repeat("-",$level-1)."<a href=\"#content:$content_id\">".strip_htmltag($str)."</a>\n";\r
-                       $content_id++;\r
-               }\r
-               else if(preg_match("/^(-{1,4})(.*)/",$line,$out))\r
-               {\r
-                       if(strlen($out[1]) == 4)\r
-                       {\r
-                               $result = array_merge($result,$saved); $saved = array();\r
-                               array_push($result, $hr);\r
-                       }\r
-                       else\r
-                       {\r
-                               back_push('ul', strlen($out[1]));\r
-                               array_push($result, '<li>' . inline($out[2]) . '</li>');\r
-                       }\r
-               }\r
-               else if (preg_match("/^:([^:]+):(.*)/",$line,$out))\r
-               {\r
-                       back_push('dl', 1);\r
-                       array_push($result, '<dt>' . inline($out[1]) . '</dt>', '<dd>' . inline($out[2]) . '</dd>');\r
-               }\r
-               else if(preg_match("/^(>{1,3})(.*)/",$line,$out))\r
-               {\r
-                       back_push('blockquote', strlen($out[1]));\r
-                       array_push($result, ltrim(inline($out[2])));\r
-               }\r
-               else if (preg_match("/^\s*$/",$line,$out))\r
-               {\r
-                       $result = array_merge($result,$saved); $saved = array();\r
-                       //array_unshift($saved, "</p>");\r
-                       array_push($result, "<p>");\r
-               }\r
-               else if(preg_match("/^(\s+.*)/",$line,$out))\r
-               {\r
-                       back_push('pre', 1);\r
-                       array_push($result, htmlspecialchars($out[1],ENT_NOQUOTES));\r
-               }\r
-               else if(preg_match("/^\|(.+)\|$/",$line,$out))\r
-               {\r
-                       $arytable = explode("|",$out[1]);\r
-\r
-                       if(!$table)\r
-                       {\r
-                               $result = array_merge($result,$saved); $saved = array();\r
-                               array_push($result,"<table class=\"style_table\" cellspacing=\"1\" border=\"0\">");\r
-                               $table = count($arytable);\r
-                       }\r
-\r
-                       array_push($result,"<tr>");\r
-                       foreach($arytable as $td)\r
-                       {\r
-                               array_push($result,"<td class=\"style_td\">");\r
-                               array_push($result,ltrim(inline($td)));\r
-                               array_push($result,"</td>");\r
-                       }\r
-                       array_push($result,"</tr>");\r
-\r
-               }\r
-               else if(strlen($comment_out) != 0)\r
-               {\r
-                       array_push($result," <!-- ".htmlspecialchars($comment_out)." -->");\r
-               }\r
-               else\r
-               {\r
-                       array_push($result, inline($line));\r
-               }\r
-       }\r
-       if($table) array_push($result, "</table>");\r
-\r
-       $result_last = $result = array_merge($result,$saved); $saved = array();\r
-\r
-       if($content_id != 0)\r
-       {\r
-               $result = array();\r
-               $saved = array();\r
-\r
-               foreach($arycontents as $line)\r
-               {\r
-                       if(preg_match("/^(-{1,3})(.*)/",$line,$out))\r
-                       {\r
-                               back_push('ul', strlen($out[1]));\r
-                               array_push($result, '<li>'.$out[2].'</li>');\r
-                       }\r
-               }\r
-               $result = array_merge($result,$saved); $saved = array();\r
-               \r
-               $contents = "<a name=\"contents\"></a>\n";\r
-               $contents .= join("\n",$result);\r
-               if($strip_link_wall)\r
-               {\r
-                       $contents = preg_replace("/\[\[([^\]]+)\]\]/","$1",$contents);\r
-               }\r
-       }\r
-\r
-       $result_last = inline2($result_last);\r
-       \r
-       $result_last = preg_replace("/^#contents/",$contents,$result_last);\r
-\r
-       $str = join("\n", $result_last);\r
-\r
-       if($foot_explain)\r
-       {\r
-               $str .= "\n";\r
-               $str .= "$note_hr\n";\r
-               //$str .= "<p>\n";\r
-               $str .= join("\n",inline2($foot_explain));\r
-               //$str .= "</p>\n";\r
-       }\r
-\r
-       $longtaketime = getmicrotime() - $start_mtime;\r
-\r
-       $str = preg_replace("/&amp;((lt;)|(gt;))/","&$1",$str);\r
-\r
-       return $str;\r
-}\r
-\r
-// $tag¤Î¥¿¥°¤ò$level¥ì¥Ù¥ë¤Þ¤ÇµÍ¤á¤ë¡£\r
-function back_push($tag, $level)\r
-{\r
-       global $result,$saved;\r
-       \r
-       while (count($saved) > $level) {\r
-               array_push($result, array_shift($saved));\r
-       }\r
-       if ($saved[0] != "</$tag>") {\r
-               $result = array_merge($result,$saved); $saved = array();\r
-       }\r
-       while (count($saved) < $level) {\r
-               array_unshift($saved, "</$tag>");\r
-               array_push($result, "<$tag>");\r
-       }\r
-}\r
-\r
-// ¥ê¥ó¥¯¤ÎÉղ佤ξ\r
-function inline($line)\r
-{\r
-       $line = htmlspecialchars($line);\r
-\r
-       $line = preg_replace("/(\r
-\r
-                                       (\(\(([^\(\)]+)\)\))\r
-                                       |\r
-                                       (\(\((.+)\)\))\r
-\r
-                               )/ex","make_note(\"$1\")",$line);\r
-\r
-       return $line;\r
-}\r
-\r
-// ¥ê¥ó¥¯¤ÎÉղ佤ξ2\r
-function inline2($str)\r
-{\r
-       global $WikiName,$BracketName,$InterWikiName,$vars,$related,$related_link,$script;\r
-       $cnts_plain = array();\r
-       $cnts_plugin = array();\r
-       $arykeep = array();\r
-\r
-       for($cnt=0;$cnt<count($str);$cnt++)\r
-       {\r
-               if(preg_match("/^(\s)/",$str[$cnt]))\r
-               {\r
-                       $arykeep[$cnt] = $str[$cnt];\r
-                       $str[$cnt] = "";\r
-                       $cnts_plain[] = $cnt;\r
-               }\r
-               else if(preg_match("/^\#([^\(]+)\(?(.*)\)?$/",$str[$cnt],$match))\r
-               {\r
-                       if(file_exists(PLUGIN_DIR.$match[1].".inc.php"))\r
-                       {\r
-                               require_once(PLUGIN_DIR.$match[1].".inc.php");\r
-                               if(function_exists("plugin_".$match[1]."_convert"))\r
-                               {\r
-                                       $aryplugins[$cnt] = $str[$cnt];\r
-                                       $str[$cnt] = "";\r
-                                       $cnts_plugin[] = $cnt;\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-\r
-       $str = preg_replace("/'''([^']+?)'''/s","<i>$1</i>",$str);      // Italic\r
-\r
-       $str = preg_replace("/''([^']+?)''/s","<b>$1</b>",$str);        // Bold\r
-\r
-       $str = preg_replace("/\r
-               (\r
-                       (\[\[([^\]]+)\:(https?|ftp|news)(:\/\/[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)\]\])\r
-                       |\r
-                       (\[(https?|ftp|news)(:\/\/[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)\s([^\]]+)\])\r
-                       |\r
-                       (https?|ftp|news)(:\/\/[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)\r
-                       |\r
-                       ([[:alnum:]\-_.]+@[[:alnum:]\-_]+\.[[:alnum:]\-_\.]+)\r
-                       |\r
-                       (\[\[([^\]]+)\:([[:alnum:]\-_.]+@[[:alnum:]\-_]+\.[[:alnum:]\-_\.]+)\]\])\r
-                       |\r
-                       ($InterWikiName)\r
-                       |\r
-                       ($BracketName)\r
-                       |\r
-                       ($WikiName)\r
-               )/ex","make_link('$1')",$str);\r
-\r
-       $str = preg_replace("/#related/",make_related($vars["page"],true),$str);\r
-\r
-       $str = make_user_rules($str);\r
-\r
-       $aryplugins = preg_replace("/^\#([^\(]+)$/ex","plugin_convert('$1','$2')",$aryplugins);\r
-       $aryplugins = preg_replace("/^\#([^\(]+)\((.*)\)$/ex","plugin_convert('$1','$2')",$aryplugins);\r
-\r
-       $tmp = $str;\r
-       $str = preg_replace("/^#norelated$/","",$str);\r
-       if($tmp != $str)\r
-               $related_link = 0;\r
-\r
-       foreach($cnts_plain as $cnt)\r
-               $str[$cnt] = $arykeep[$cnt];\r
-\r
-       foreach($cnts_plugin as $cnt)\r
-               $str[$cnt] = $aryplugins[$cnt];\r
-\r
-       return $str;\r
-}\r
-\r
-// Plug-in\r
-function plugin_convert($plugin_name,$plugin_args)\r
-{\r
-       $invalid_return = "#${plugin_name}(${plugin_args})";\r
-       \r
-       if($plugin_args !== "")\r
-               $aryargs = explode(",",$plugin_args);\r
-       else\r
-               $aryargs = array();\r
-       $retvar = call_user_func_array("plugin_${plugin_name}_convert",$aryargs);\r
-\r
-       if($retvar === FALSE) return $invalid_return;\r
-       else                  return $retvar;\r
-}\r
-\r
-// ´ØÏ¢¤¹¤ë¥Ú¡¼¥¸\r
-function make_related($page,$_isrule)\r
-{\r
-       global $related_str,$rule_related_str,$related,$_make_related,$vars;\r
-\r
-       $page_name = strip_bracket($vars["page"]);\r
-\r
-       if(!is_array($_make_related))\r
-       {\r
-               $aryrelated = do_search($page,"OR",1);\r
-\r
-               if(is_array($aryrelated))\r
-               {\r
-                       foreach($aryrelated as $key => $val)\r
-                       {\r
-                               $new_arylerated[$key.md5($val)] = $val;\r
-                       }\r
-               }\r
-\r
-               if(is_array($related))\r
-               {\r
-                       foreach($related as $key => $val)\r
-                       {\r
-                               $new_arylerated[$key.md5($val)] = $val;\r
-                       }\r
-               }\r
-\r
-               @krsort($new_arylerated);\r
-               $_make_related = @array_unique($new_arylerated);\r
-       }\r
-\r
-       if($_isrule)\r
-       {\r
-               if(is_array($_make_related))\r
-               {\r
-                       foreach($_make_related as $str)\r
-                       {\r
-                               preg_match("/<a\shref=\"([^\"]+)\">([^<]+)<\/a>(.*)/",$str,$out);\r
-                               \r
-                               if($out[3]) $title = " title=\"$out[2] $out[3]\"";\r
-                               \r
-                               $aryret[$out[2]] = "<a href=\"$out[1]\"$title>$out[2]</a>";\r
-                       }\r
-                       @ksort($aryret);\r
-               }\r
-       }\r
-       else\r
-       {\r
-               $aryret = $_make_related;\r
-       }\r
-\r
-       if($_isrule) $str = $rule_related_str;\r
-       else         $str = $related_str;\r
-\r
-       return @join($str,$aryret);\r
-}\r
-\r
-// Ãí¼á½èÍý\r
-function make_note($str)\r
-{\r
-       global $note_id,$foot_explain;\r
-\r
-       $str = preg_replace("/^\(\(/","",$str);\r
-       $str = preg_replace("/\)\)$/","",$str);\r
-\r
-       $str= str_replace("\\'","'",$str);\r
-\r
-       $str = make_user_rules($str);\r
-\r
-       $foot_explain[] = "<a name=\"notefoot:$note_id\" href=\"#notetext:$note_id\"><sup><small>*$note_id</small></sup></a> <small>$str</small><br />\n";\r
-       $note =  "<a name=\"notetext:$note_id\" href=\"#notefoot:$note_id\"><sup><small>*$note_id</small></sup></a>";\r
-       $note_id++;\r
-\r
-       return $note;\r
-}\r
-\r
-// ¥ê¥ó¥¯¤òÉղ乤ë\r
-function make_link($name)\r
-{\r
-       global $BracketName,$WikiName,$InterWikiName,$script,$link_target,$interwiki_target;\r
-       global $related,$show_passage,$vars,$defaultpage;\r
-\r
-       $aryconv_htmlspecial = array("&amp;","&lt;","&gt;");\r
-       $aryconv_html = array("&","<",">");\r
-\r
-       $page = $name;\r
-\r
-       if(preg_match("/^\[\[([^\]]+)\:((https?|ftp|news)([^\]]+))\]\]$/",$name,$match))\r
-       {\r
-               $match[2] = str_replace($aryconv_htmlspecial,$aryconv_html,$match[2]);\r
-               return "<a href=\"$match[2]\" target=\"$link_target\">$match[1]</a>";\r
-       }\r
-       else if(preg_match("/^\[((https?|ftp|news)([^\]\s]+))\s([^\]]+)\]$/",$name,$match))\r
-       {\r
-               $match[1] = str_replace($aryconv_htmlspecial,$aryconv_html,$match[1]);\r
-               return "<a href=\"$match[1]\" target=\"$link_target\">$match[4]</a>";\r
-       }\r
-       else if(preg_match("/^(https?|ftp|news).*?(\.gif|\.png|\.jpeg|\.jpg)?$/",$name,$match))\r
-       {\r
-               $name = str_replace($aryconv_htmlspecial,$aryconv_html,$name);\r
-               if($match[2])\r
-                       return "<a href=\"$name\" target=\"$link_target\"><img src=\"$name\" border=\"0\"></a>";\r
-               else\r
-                       return "<a href=\"$name\" target=\"$link_target\">$page</a>";\r
-       }\r
-       else if(preg_match("/^\[\[([^\]]+)\:([[:alnum:]\-_.]+@[[:alnum:]\-_]+\.[[:alnum:]\-_\.]+)\]\]/",$name,$match))\r
-       {\r
-               $match[1] = str_replace($aryconv_htmlspecial,$aryconv_html,$match[1]);\r
-               $match[2] = str_replace($aryconv_htmlspecial,$aryconv_html,$match[2]);\r
-\r
-               return "<a href=\"mailto:$match[2]\">$match[1]</a>";\r
-       }\r
-       else if(preg_match("/^([[:alnum:]\-_]+@[[:alnum:]\-_]+\.[[:alnum:]\-_\.]+)/",$name))\r
-       {\r
-               $name = str_replace($aryconv_htmlspecial,$aryconv_html,$name);\r
-               return "<a href=\"mailto:$name\">$page</a>";\r
-       }\r
-       else if(preg_match("/^($InterWikiName)$/",str_replace($aryconv_htmlspecial,$aryconv_html,$name)))\r
-       {\r
-               $page = strip_bracket($page);\r
-               $percent_name = str_replace($aryconv_htmlspecial,$aryconv_html,$name);\r
-               $percent_name = rawurlencode($percent_name);\r
-\r
-               return "<a href=\"$script?$percent_name\" target=\"$interwiki_target\">$page</a>";\r
-       }\r
-       else if(preg_match("/^($BracketName)|($WikiName)$/",str_replace($aryconv_htmlspecial,$aryconv_html,$name)))\r
-       {\r
-               if(preg_match("/^([^>]+)>([^>]+)$/",strip_bracket(str_replace($aryconv_htmlspecial,$aryconv_html,$name)),$match))\r
-               {\r
-                       $page = $match[1];\r
-                       $name = $match[2];\r
-                       if(!preg_match("/^($BracketName)|($WikiName)$/",$page))\r
-                               $page = "[[$page]]";\r
-                       if(!preg_match("/^($BracketName)|($WikiName)$/",$name))\r
-                               $name = "[[$name]]";\r
-               }\r
-               \r
-               if(preg_match("/^\[\[\.\/([^\]]*)\]\]/",str_replace($aryconv_htmlspecial,$aryconv_html,$name),$match))\r
-               {\r
-                       if(!$match[1])\r
-                               $name = $vars["page"];\r
-                       else\r
-                               $name = "[[".strip_bracket($vars[page])."/$match[1]]]";\r
-               }\r
-               else if(preg_match("/^\[\[\..\/([^\]]+)\]\]/",str_replace($aryconv_htmlspecial,$aryconv_html,$name),$match))\r
-               {\r
-                       for($i=0;$i<substr_count($name,"../");$i++)\r
-                               $name = preg_replace("/(.+)\/([^\/]+)$/","$1",strip_bracket($vars["page"]));\r
-\r
-                       if(!preg_match("/^($BracketName)|($WikiName)$/",$name))\r
-                               $name = "[[$name]]";\r
-                       \r
-                       if($vars["page"]==$name)\r
-                               $name = "[[$match[1]]]";\r
-                       else\r
-                               $name = "[[".strip_bracket($name)."/$match[1]]]";\r
-               }\r
-               else if($name == "[[../]]")\r
-               {\r
-                       $name = preg_replace("/(.+)\/([^\/]+)$/","$1",strip_bracket($vars["page"]));\r
-                       \r
-                       if(!preg_match("/^($BracketName)|($WikiName)$/",$name))\r
-                               $name = "[[$name]]";\r
-                       if($vars["page"]==$name)\r
-                               $name = $defaultpage;\r
-               }\r
-               \r
-               $page = strip_bracket($page);\r
-               $pagename = strip_bracket($name);\r
-               $percent_name = str_replace($aryconv_htmlspecial,$aryconv_html,$name);\r
-               $percent_name = rawurlencode($percent_name);\r
-\r
-               $refer = rawurlencode($vars["page"]);\r
-               if(is_page($name))\r
-               {\r
-                       $str = get_pg_passage($name,false);\r
-                       $tm = @filemtime(get_filename(encode($name)));\r
-                       if($vars["page"] != $name)\r
-                               $related[$tm] = "<a href=\"$script?$percent_name\">$pagename</a>$str";\r
-                       if($show_passage)\r
-                       {\r
-                               $str_title = "title=\"$pagename $str\"";\r
-                       }\r
-                       return "<a href=\"$script?$percent_name\" $str_title>$page</a>";\r
-               }\r
-               else\r
-                       return "<span class=\"noexists\">$page<a href=\"$script?cmd=edit&page=$percent_name&refer=$refer\">?</a></span>";\r
-       }\r
-       else\r
-       {\r
-               return $page;\r
-       }\r
-}\r
-\r
-// ¥æ¡¼¥¶ÄêµÁ¥ë¡¼¥ë(¥½¡¼¥¹¤òÃÖ´¹¤¹¤ë)\r
-function user_rules_str($str)\r
-{\r
-       global $str_rules;\r
-\r
-       $arystr = split("\n",$str);\r
-\r
-       // ÆüÉÕ¡¦»þ¹ïÃÖ´¹½èÍý\r
-       foreach($arystr as $str)\r
-       {\r
-               if(substr($str,0,1) != " ")\r
-               {\r
-                       foreach($str_rules as $rule => $replace)\r
-                       {\r
-                               $str = preg_replace("/$rule/",$replace,$str);\r
-                       }\r
-               }\r
-               $retvars[] = $str;\r
-       }\r
-\r
-       return join("\n",$retvars);\r
-}\r
-\r
-// ¥æ¡¼¥¶ÄêµÁ¥ë¡¼¥ë(¥½¡¼¥¹¤ÏÃÖ´¹¤»¤º¥³¥ó¥Ð¡¼¥È)\r
-function make_user_rules($str)\r
-{\r
-       global $user_rules;\r
-\r
-       foreach($user_rules as $rule => $replace)\r
-       {\r
-               $str = preg_replace("/$rule/",$replace,$str);\r
-       }\r
-\r
-       return $str;\r
-}\r
-\r
-// InterWikiName List ¤Î²ò¼á(ÊÖÃÍ:£²¼¡¸µÇÛÎó)\r
-function open_interwikiname_list()\r
-{\r
-       global $interwiki;\r
-       \r
-       $retval = array();\r
-       $aryinterwikiname = file(get_filename(encode($interwiki)));\r
-\r
-       $cnt = 0;\r
-       foreach($aryinterwikiname as $line)\r
-       {\r
-               if(preg_match("/\[((https?|ftp|news)(\:\/\/[[:alnum:]\+\$\;\?\.%,!#~\*\/\:@&=_\-]+))\s([^\]]+)\]\s?([^\s]*)/",$line,$match))\r
-               {\r
-                       $retval[$match[4]]["url"] = $match[1];\r
-                       $retval[$match[4]]["opt"] = $match[5];\r
-               }\r
-       }\r
-\r
-       return $retval;\r
-}\r
-\r
-// zlib´Ø¿ô¤¬»ÈÍѤǤ­¤ì¤Ð¡¢°µ½Ì¤·¤Æ»ÈÍѤ¹¤ë¤¿¤á¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à´Ø¿ô\r
-function backup_fopen($filename,$mode)\r
-{\r
-       if(function_exists(gzopen))\r
-               return gzopen(str_replace(".txt",".gz",$filename),$mode);\r
-       else\r
-               return fopen($filename,$mode);\r
-}\r
-function backup_fputs($zp,$str)\r
-{\r
-       if(function_exists(gzputs))\r
-               return gzputs($zp,$str);\r
-       else\r
-               return fputs($zp,$str);\r
-}\r
-function backup_fclose($zp)\r
-{\r
-       if(function_exists(gzclose))\r
-               return gzclose($zp);\r
-       else\r
-               return fclose($zp);\r
-}\r
-function backup_file($filename)\r
-{\r
-       if(function_exists(gzfile))\r
-               return @gzfile(str_replace(".txt",".gz",$filename));\r
-       else\r
-               return @file($filename);\r
-}\r
-function backup_delete($filename)\r
-{\r
-       if(function_exists(gzopen))\r
-               return @unlink(str_replace(".txt",".gz",$filename));\r
-       else\r
-               return @unlink($filename);\r
-}\r
-\r
-// ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Ç¡¼¥¿¤òºîÀ®¤¹¤ë\r
-function make_backup($filename,$body,$oldtime)\r
-{\r
-       global $splitter,$cycle,$maxage;\r
-       $aryages = array();\r
-       $arystrout = array();\r
-\r
-       if(function_exists(gzfile))\r
-               $filename = str_replace(".txt",".gz",$filename);\r
-\r
-       $realfilename = BACKUP_DIR.$filename;\r
-\r
-       if(time() - @filemtime($realfilename) > (60 * 60 * $cycle))\r
-       {\r
-               $aryages = read_backup($filename);\r
-               if(count($aryages) >= $maxage)\r
-               {\r
-                       array_shift($aryages);\r
-               }\r
-               \r
-               foreach($aryages as $lines)\r
-               {\r
-                       foreach($lines as $key => $line)\r
-                       {\r
-                               if($key && $key == "timestamp")\r
-                               {\r
-                                       $arystrout[] = "$splitter " . rtrim($line);\r
-                               }\r
-                               else\r
-                               {\r
-                                       $arystrout[] = rtrim($line);\r
-                               }\r
-                       }\r
-               }\r
-\r
-               $strout = join("\n",$arystrout);\r
-               if(!preg_match("/\n$/",$strout) && trim($strout)) $strout .= "\n";\r
-\r
-               $body = "$splitter " . $oldtime . "\n" . $body;\r
-               if(!preg_match("/\n$/",$body)) $body .= "\n";\r
-\r
-               $fp = backup_fopen($realfilename,"w");\r
-               backup_fputs($fp,$strout);\r
-               backup_fputs($fp,$body);\r
-               backup_fclose($fp);\r
-       }\r
-       \r
-       return true;\r
-}\r
-\r
-// ÆÃÄê¤ÎÀ¤Âå¤Î¥Ð¥Ã¥¯¥¢¥Ã¥×¥Ç¡¼¥¿¤ò¼èÆÀ\r
-function get_backup($age,$filename)\r
-{\r
-       $aryages = read_backup($filename);\r
-       \r
-       foreach($aryages as $key => $lines)\r
-       {\r
-               if($key != $age) continue;\r
-               foreach($lines as $key => $line)\r
-               {\r
-                       if($key && $key == "timestamp") continue;\r
-                       $retvars[] = $line;\r
-               }\r
-       }\r
-\r
-       return $retvars;\r
-}\r
-\r
-// ¥Ð¥Ã¥¯¥¢¥Ã¥×¾ðÊó¤òÊÖ¤¹\r
-function get_backup_info($filename)\r
-{\r
-       global $splitter;\r
-       $lines = array();\r
-       $retvars = array();\r
-       $lines = backup_file(BACKUP_DIR.$filename);\r
-\r
-       if(!is_array($lines)) return array();\r
-\r
-       $age = 0;\r
-       foreach($lines as $line)\r
-       {\r
-               preg_match("/^$splitter\s(\d+)$/",trim($line),$match);\r
-               if($match[1])\r
-               {\r
-                       $age++;\r
-                       $retvars[$age] = $match[1];\r
-               }\r
-       }\r
-       \r
-       return $retvars;\r
-}\r
-\r
-// ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Ç¡¼¥¿Á´ÂΤò¼èÆÀ\r
-function read_backup($filename)\r
-{\r
-       global $splitter;\r
-       $lines = array();\r
-       $lines = backup_file(BACKUP_DIR.$filename);\r
-\r
-       if(!is_array($lines)) return array();\r
-\r
-       $age = 0;\r
-       foreach($lines as $line)\r
-       {\r
-               preg_match("/^$splitter\s(\d+)$/",trim($line),$match);\r
-               if($match[1])\r
-               {\r
-                       $age++;\r
-                       $retvars[$age]["timestamp"] = $match[1] . "\n";\r
-               }\r
-               else\r
-               {\r
-                       $retvars[$age][] = $line;\r
-               }\r
-       }\r
-\r
-       return $retvars;\r
-}\r
-\r
-// [[ ]] ¤ò¼è¤ê½ü¤¯\r
-function strip_bracket($str)\r
-{\r
-       global $strip_link_wall;\r
-       \r
-       if($strip_link_wall)\r
-       {\r
-               preg_match("/^\[\[(.*)\]\]$/",$str,$match);\r
-               if($match[1])\r
-                       $str = $match[1];\r
-       }\r
-       return $str;\r
-}\r
-\r
-// HTML¥¿¥°¤ò¼è¤ê½ü¤¯\r
-function strip_htmltag($str)\r
-{\r
-       //$str = preg_replace("/<a[^>]+>\?<\/a>/","",$str);\r
-       return preg_replace("/<[^>]+>/","",$str);\r
-}\r
-\r
-// ¥Æ¥­¥¹¥ÈÀ°·Á¥ë¡¼¥ë¤òɽ¼¨¤¹¤ë\r
-function catrule()\r
-{\r
-       global $rule_body;\r
-       return $rule_body;\r
-}\r
-\r
-// ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ë\r
-function die_message($msg)\r
-{\r
-       $title = $page = "Runtime error";\r
-\r
-       $body = "<h3>Runtime error</h3>\n";\r
-       $body .= "<b>Error message : $msg</b>\n";\r
-\r
-       catbody($title,$page,$body);\r
-\r
-       die();\r
-}\r
-\r
-// »ØÄꤵ¤ì¤¿¥Ú¡¼¥¸¤Î·Ð²á»þ¹ï\r
-function get_pg_passage($page,$sw=true)\r
-{\r
-       global $_pg_passage,$show_passage;\r
-\r
-       if(!$show_passage) return "";\r
-\r
-       if(isset($_pg_passage[$page]))\r
-       {\r
-               if($sw)\r
-                       return $_pg_passage[$page]["str"];\r
-               else\r
-                       return $_pg_passage[$page]["label"];\r
-       }\r
-       if($pgdt = @filemtime(get_filename(encode($page))))\r
-       {\r
-               $pgdt = UTIME - $pgdt;\r
-               if(ceil($pgdt / 60) < 60)\r
-                       $_pg_passage[$page]["label"] = "(".ceil($pgdt / 60)."m)";\r
-               else if(ceil($pgdt / 60 / 60) < 24)\r
-                       $_pg_passage[$page]["label"] = "(".ceil($pgdt / 60 / 60)."h)";\r
-               else\r
-                       $_pg_passage[$page]["label"] = "(".ceil($pgdt / 60 / 60 / 24)."d)";\r
-               \r
-               $_pg_passage[$page]["str"] = "<small>".$_pg_passage[$page]["label"]."</small>";\r
-       }\r
-       else\r
-       {\r
-               $_pg_passage[$page]["label"] = "";\r
-               $_pg_passage[$page]["str"] = "";\r
-       }\r
-\r
-       if($sw)\r
-               return $_pg_passage[$page]["str"];\r
-       else\r
-               return $_pg_passage[$page]["label"];\r
-}\r
-\r
-// ¸½ºß»þ¹ï¤ò¥Þ¥¤¥¯¥íÉäǼèÆÀ\r
-function getmicrotime()\r
-{\r
-       list($usec, $sec) = explode(" ",microtime());\r
-       return ((float)$sec + (float)$usec);\r
-}\r
-\r
-// ¥Ú¡¼¥¸Ì¾¤«¤é¥Ú¡¼¥¸Ì¾¤ò¸¡º÷¤¹¤ë¥ê¥ó¥¯¤òºîÀ®\r
-function make_search($page)\r
-{\r
-       global $script,$WikiName;\r
-\r
-       $page = htmlspecialchars($page);\r
-       $name = strip_bracket($page);\r
-       $url = rawurlencode($page);\r
-\r
-       //WikiWikiWeb like...\r
-       //if(preg_match("/^$WikiName$/",$page))\r
-       //      $name = preg_replace("/([A-Z][a-z]+)/","$1 ",$name);\r
-\r
-       return "<a href=\"$script?cmd=search&word=$url\">$name</a> ";\r
-}\r
-\r
-// Last-Modified ¥Ø¥Ã¥À\r
-function header_lastmod($page)\r
-{\r
-       global $lastmod;\r
-       \r
-       if($lastmod && is_page($page))\r
-       {\r
-               header("Last-Modified: ".gmdate("D, d M Y H:i:s", filemtime(get_filename(encode($page))))." GMT");\r
-       }\r
-}\r
-\r
-// RecentChanges ¤Î RSS ¤ò½ÐÎÏ\r
-function catrss($rss)\r
-{\r
-       global $rss_max,$page_title,$WikiName,$BracketName,$script,$whatsnew;\r
-\r
-       $lines = file(get_filename(encode($whatsnew)));\r
-       header("Content-type: application/xml");\r
-\r
-       $item = "";\r
-       $rdf_li = "";\r
-       $cnt = 0;\r
-       foreach($lines as $line)\r
-       {\r
-               if($cnt > $rss_max - 1) break;\r
-\r
-               if(preg_match("/(($WikiName)|($BracketName))/",$line,$match))\r
-               {\r
-                       if($match[2])\r
-                       {\r
-                               $title = $url = $match[1];\r
-                       }\r
-                       else\r
-                       {\r
-                               if(function_exists("mb_convert_encoding"))\r
-                                       $title = mb_convert_encoding(strip_bracket($match[1]),"UTF-8","auto");\r
-                               else\r
-                                       $title = strip_bracket($match[1]);\r
-\r
-                               $url = $match[1];\r
-                       }\r
-                       \r
-                       $desc = date("D, d M Y H:i:s T",filemtime(get_filename(encode($match[1]))));\r
-                       \r
-                       if($rss==2)\r
-                               $items.= "<item rdf:about=\"http://".SERVER_NAME.PHP_SELF."?".rawurlencode($url)."\">\n";\r
-                       else\r
-                               $items.= "<item>\n";\r
-                       $items.= " <title>$title</title>\n";\r
-                       $items.= " <link>http://".SERVER_NAME.PHP_SELF."?".rawurlencode($url)."</link>\n";\r
-                       $items.= " <description>$desc</description>\n";\r
-                       $items.= "</item>\n\n";\r
-                       $rdf_li.= "    <rdf:li rdf:resource=\"http://".SERVER_NAME.PHP_SELF."?".rawurlencode($url)."\"/>\n";\r
-\r
-               }\r
-\r
-               $cnt++;\r
-       }\r
-\r
-       if($rss==1)\r
-       {\r
-?>\r
-<?='<?xml version="1.0" encoding="UTF-8"?>'?>\r
-\r
-\r
-<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN"\r
-            "http://my.netscape.com/publish/formats/rss-0.91.dtd">\r
-\r
-<rss version="0.91">\r
-\r
-<channel>\r
-<title><?=$page_title?></title>\r
-<link><?="http://".SERVER_NAME.PHP_SELF."?$whatsnew"?></link>\r
-<description>PukiWiki RecentChanges</description>\r
-<language>ja</language>\r
-\r
-<?=$items?>\r
-</channel>\r
-</rss>\r
-<?\r
-       }\r
-       else if($rss==2)\r
-       {\r
-?>\r
-<?='<?xml version="1.0" encoding="utf-8"?>'?>\r
-\r
-\r
-<rdf:RDF \r
-  xmlns="http://purl.org/rss/1.0/"\r
-  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" \r
-  xml:lang="ja">\r
-\r
- <channel rdf:about="<?="http://".SERVER_NAME.PHP_SELF."?rss"?>">\r
-  <title><?=$page_title?></title>\r
-  <link><?="http://".SERVER_NAME.PHP_SELF."?$whatsnew"?></link>\r
-  <description>PukiWiki RecentChanges</description>\r
-  <items>\r
-   <rdf:Seq>\r
-<?=$rdf_li?>\r
-   </rdf:Seq>\r
-  </items>\r
- </channel>\r
-\r
-<?=$items?>\r
-</rdf:RDF>\r
-<?\r
-       }\r
-}\r
-?>\r
+<?php
+// PukiWiki - Yet another WikiWikiWeb clone.
+// $Id: pukiwiki.php,v 1.39 2004/09/20 00:48:34 henoheno Exp $
+
+/////////////////////////////////////////////////
+// Error reporting
+
+// error_reporting(0): // Nothing
+error_reporting(E_ERROR | E_PARSE); // Avoid E_WARNING, E_NOTICE, etc
+// error_reporting(E_ALL);
+
+/////////////////////////////////////////////////
+// Directory definition
+// (Ended with a slash like '../path/to/pkwk/', or '')
+define('DATA_HOME',    '');
+define('LIB_DIR',      'lib/');
+
+/////////////////////////////////////////////////
+require(LIB_DIR . 'pukiwiki.php');
+?>