<?php
/*
* Moodle global search engine
* This is a special externalized code for cron handling in PHP5.
* Should never be called by a php 4.3.0 implementation. 
*/
// (Debug030): グローバルサーチ機能が有効な場合にcron.phpが最後まで実行されない（＝バックアップ処理が未実行）場合があるバグ (2009/10/21)
// (Debug030): ここから追加
// http://www.php.net/manual/ja/function.ini-get.php
function return_bytes($val) {
    if (is_int($val)) return $val;
    $val = trim($val);
    $last = strtolower($val[strlen($val)-1]);
    switch($last) {
        // 'G' は PHP 5.1.0 以降で使用可能です
        case 'g':
            $val *= 1024;
        case 'm':
            $val *= 1024;
        case 'k':
            $val *= 1024;
    }
    return $val;
}
// (Debug030): ここまで追加

try{
    // overrides php limits
    $maxtimelimit = ini_get('max_execution_time');
    ini_set('max_execution_time', 300);
    $maxmemoryamount = ini_get('memory_limit');
// (Debug030): ここからコメントアウト
//  ini_set('memory_limit', '48M');
// (Debug030): ここから追加
    $temp_maxmemory = '48M';
    if (return_bytes($maxmemoryamount) < return_bytes($temp_maxmemory)) {
        ini_set('memory_limit', $temp_maxmemory);
    }
// (Debug030): ここまで追加

    mtrace("\n--DELETE----");
    require_once("$CFG->dirroot/search/delete.php");
    mtrace("--UPDATE----");
    require_once("$CFG->dirroot/search/update.php");
    mtrace("--ADD-------");
    require_once("$CFG->dirroot/search/add.php");
    mtrace("------------");
    //mtrace("cron finished.</pre>");
    mtrace('done');

    // set back normal values for php limits
    ini_set('max_execution_time', $maxtimelimit);
    ini_set('memory_limit', $maxmemoryamount);
}
catch(Exception $ex){
    mtrace('Fatal exception from Lucene subsystem. Search engine may not have been updated.');
    mtrace($ex);
}
?>