<?php if (!defined('PmWiki')) exit();
/*  Copyright 2003-2005 Patrick R. Michaud (pmichaud@pobox.com)
    This file is part of PmWiki; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published
    by the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.  See pmwiki.php for full details.

    This file adds "?action=diag" and "?action=phpinfo" actions to PmWiki.  
    This produces lots of diagnostic output that may be helpful to the 
    software authors when debugging PmWiki or other scripts.
*/

ini_set('track_errors','1');

if ($action=='diag') {
  @session_start();
  header('Content-type: text/plain');
  print_r($GLOBALS);
  exit();
}

if ($action=='phpinfo') { phpinfo(); exit(); }

function Ruleset() {
  global $MarkupTable;
  $out = '';
  BuildMarkupRules();
  foreach($MarkupTable as $id=>$m) 
    $out .= sprintf("%-16s %-16s %-16s\n",$id,@$m['cmd'],@$m['seq']);
  return $out;
}

$HandleActions['ruleset'] = 'HandleRuleset';

function HandleRuleset($pagename) {
  header("Content-type: text/plain");
  print Ruleset();
}

function DisplayStopWatch() {
  global $StopWatch;
  StopWatch('now');
  $out = "<pre>";
  foreach((array)$StopWatch as $k => $x) {
    $out .= "$x\n";
  }
  if (is_array($StopWatch)) array_pop($StopWatch);
  $out .= '</pre>';
  return $out;
}

$FmtP['/\\$StopWatch/e'] = 'DisplayStopWatch()';