\n";
if ($_POST["scriptname"])
{
$scriptname = $_POST["scriptname"];
preg_match("/ *(([^ \/]+\/)?[^ \/]+)/", $scriptname, $regex);
$scriptname = $regex[1];
}
foreach ($lines as $line)
{
$linecount = $linecount + 1;
$actualline = $line;
$linestrip = trim($line);
$whitespace = strspn($line, " ");
$whitespacelist[$linecount] = $whitespace;
if (strstr($line, "//"))
{
$line = explode("//", $line);
$line = $line[0];
}
$line = strtolower(trim($line));
if ($line)
{
$regex = 0;
$regex = preg_match("/^(block|event) ./", $line);
if ($regex)
{
if ($blockerror == 1)
{
if ($_POST["codeoutblock"])
{
echo "\n";
if ($outblockline2)
{
echo "> [Lines ".$outblockline." - ".$outblockline2."] Code outside of block\n";
}
else
{
echo "> [Line ".$outblockline."] Code outside of block\n";
}
$waserror = 1;
$error[4] = $error[4] + 1;
}
}
if ($rbrack != $lbrack)
{
if ($_POST["uneqcurl"])
{
echo "\n";
echo "> Unequal number of curly brackets in block\n";
echo "\n";
echo "{ = ".$lbrack."\n";
echo "} = ".$rbrack."\n";
$waserror = 1;
$error[5] = $error[5] + 1;
}
}
$blockname = ereg_replace("^(block|event) ", "", $line);
if (preg_match("/^block /", $line))
{
$actualblocklist[] = $blockname;
}
$inblock = 1;
$lbrack = 0;
$rbrack = 0;
$blockerror = 0;
if ($waserror)
{
echo "\n";
$waserror = 0;
}
echo ">>> [Line ".$linecount."] ".$line."\n";
$fixblocks[$linecount] = "1";
if ($firstblock)
{
$blocklist[] = $blockname;
$firstblock = 0;
}
else
{
if (in_array($blockname, $blocklist))
{
if ($_POST["blockname"])
{
echo "\n";
echo "> Block name used twice\n";
echo "\n";
echo "".$linestrip."\n";
$waserror = 1;
$error[6] = $error[6] + 1;
}
}
else
{
$blocklist[] = $blockname;
}
}
}
else if ($inblock == 0)
{
if ($blockerror == 0)
{
$regex = 1;
$blockerror = 1;
$outblockline = $linecount;
$outblockline2 = 0;
}
else
{
$outblockline2 = $linecount;
}
}
if ($line == "{")
{
$lbrack = $lbrack + 1;
}
else if ($line == "}")
{
$rbrack = $rbrack + 1;
}
if ($regex != 1)
{
if ($rbrack == $lbrack)
{
$inblock = 0;
}
else
{
$linenq = $line;
if (strstr($linenq, '"'))
{
if ((substr_count($line, '"') % 2) == 1)
{
if ($_POST["uneqqu"])
{
echo "\n";
echo "> [Line ".$linecount."] Uneven number of quote marks\n";
echo "\n";
echo "".$linestrip."\n";
echo "".$linestrip.'"';
echo "\n";
$waserror = 1;
$line = $line.'"';
$error[3] = $error[3] + 1;
}
$fixbrack[$linecount] = "1";
$linenq = $linenq.'"';
}
while (strstr($linenq, '"'))
{
$linenq = ereg_replace('"[^"]*"', "", $linenq);
}
}
if (substr_count($linenq, "(") != substr_count($linenq, ")"))
{
if ($_POST["uneqbrac"])
{
echo "\n";
echo "> [Line ".$linecount."] Uneven number of brackets\n";
echo "\n";
echo " ( = ".substr_count($linenq, "(")."\n";
echo " ) = ".substr_count($linenq, ")")."\n";
$waserror = 1;
$error[2] = $error[2] + 1;
}
}
if (preg_match("/.*(\(| )(server|event)_var\(/", $linenq))
{
$temp = 0;
if (preg_match("/.*(\(| )event_var\(/", $linenq))
{
$temp = 1;
}
if (strpos($linenq, "event_var(") < strpos($linenq, "event_var("))
{
$temp2 = "event_var(";
}
else
{
$temp2 = "server_var(";
}
$explode = explode($temp2, $linenq);
if (preg_match("/.* (es |exp |es_[^x]|if( |\()|else |esnq )/", " ".$explode[0]))
{
$temp = 0;
}
else
{
$temp = 1;
}
if ($temp)
{
if (preg_match("/^es_xnq/", $line))
{
$newline = substr_replace($linestrip, "es", 0, 4);
}
else if (preg_match("/^es_x(else|if)/", $line))
{
$newline = substr_replace($linestrip, "", 0, 4);
}
else if (preg_match("/^es_x/", $line))
{
$newline = substr_replace($linestrip, "es_", 0, 4);
}
else
{
$newline = "es ".$linestrip;
}
if ($_POST["expneeded"])
{
echo "\n";
echo "> [Line ".$linecount."] Expansion needed\n";
echo "\n";
echo "".$linestrip."\n";
echo "".$newline."\n";
$line = $newline;
$waserror = 1;
$error[0] = $error[0] + 1;
}
$fixneedexp[$linecount] = $newline;
}
}
else if (preg_match("/^(es |es_[^x]|if( |\()|esnq )/", $line))
{
if (preg_match("/^es_/", $line))
{
$newline = substr_replace($linestrip, "x", 3, 0);
}
else if (preg_match("/^es /", $line))
{
$newline = substr_replace($linestrip, "", 0, 3);
}
else if (preg_match("/^if/", $line))
{
$newline = "es_x".$linestrip;
}
else if (preg_match("/^esnq/", $line))
{
$newline = substr_replace($linestrip, "_x", 2, 0);
}
if ($_POST["expunec"])
{
echo "\n";
echo "> [Line ".$linecount."] Unecessary expansion\n";
echo "\n";
echo "".$linestrip."\n";
echo "".$newline."\n";
$line = $newline;
$waserror = 1;
$error[1] = $error[1] + 1;
}
$fixexpunec[$linecount] = $newline;
}
if (preg_match("/^es es_x/", $line))
{
if (preg_match("/^es es_x(if|else)/", $line))
{
$newline = substr_replace($linestrip, "", 0, 7);
}
else if (preg_match("/^es es_xnq/", $line))
{
$newline = substr_replace($linestrip, "_x", 2, 5);
}
else
{
$newline = substr_replace($linestrip, "es_", 0, 7);
}
if ($_POST["esx"])
{
echo "\n";
echo "> [Line ".$linecount."] Use of 'es es_x'\n";
echo "\n";
echo "".$linestrip."\n";
echo "".$newline."\n";
$line = $newline;
$waserror = 1;
$error[9] = $error[9] + 1;
}
$fixesx[$linecount] = $newline;
}
if ($scriptname)
{
if (preg_match("/.*es_x?doblock ".preg_quote($scriptname, "/").'\/([^ "\/]+) /', $line, $regex))
{
if ($doblockline[$regex[1]])
{
$doblockline[$regex[1]] = $doblockline[$regex[1]].", ".$linecount;
}
else
{
$doblockline[$regex[1]] = $linecount;
}
if ($firstdoblock)
{
$doblocklist[] = $regex[1];
$firstdoblock = 0;
}
else if (!in_array($regex[1], $doblocklist))
{
$doblocklist[] = $regex[1];
}
}
}
}
}
}
if ($waserror)
{
$error[8] = $error[8] + 1;
}
}
if ($blockerror == 1)
{
if ($_POST["codeoutblock"])
{
echo "\n";
if ($outblockline2)
{
echo "> [Lines ".$outblockline." - ".$outblockline2."] Code outside of block\n";
}
else
{
echo "> [Line ".$outblockline."] Code outside of block\n";
}
$error[4] = $error[4] + 1;
$waserror = 1;
}
}
if ($rbrack != $lbrack)
{
if ($_POST["uneqcurl"])
{
echo "\n";
echo "> Unequal number of curly brackets in block\n";
echo "\n";
echo "{ = ".$lbrack."\n";
echo "} = ".$rbrack."\n";
$waserror = 1;
$error[5] = $error[5] + 1;
}
}
if ($waserror)
{
$error[8] = $error[8] + 1;
}
if ($actualblocklist)
{
if ($doblocklist)
{
$temp = 1;
foreach ($doblocklist as $blockname)
{
if(!in_array($blockname, $actualblocklist))
{
if ($_POST["blockexist"])
{
if ($temp)
{
echo "\n";
echo "> None existent block(s) referenced\n";
echo "\n";
$temp = 0;
}
if (preg_match("/.*,/", $doblockline[$blockname]))
{
echo " block ".$blockname." [Lines ".$doblockline[$blockname]."]\n";
}
else
{
echo " block ".$blockname." [Line ".$doblockline[$blockname]."]\n";
}
$error[7] = $error[7] + 1;
}
}
}
}
}
echo ' | ';
echo "Statistics\n";
echo "\n";
echo "Lines: ".$linecount."\n";
echo "\n";
if ($error[0])
{
echo "Needed expansion: ".$error[0]."\n";
}
if ($error[1])
{
echo "Unnecessary expansion: ".$error[1]."\n";
}
if ($error[2])
{
echo "Unequal Brackets: ".$error[2]."\n";
}
if ($error[3])
{
echo "Unequal Quote Marks: ".$error[3]."\n";
}
if ($error[4])
{
echo "Code outside blocks: ".$error[4]."\n";
}
if ($error[5])
{
echo "Unequal Curly Brackets in block: ".$error[5]."\n";
}
if ($error[6])
{
echo "Blocks with same name: ".$error[6]."\n";
}
if ($error[7])
{
echo "Referenced non existent blocks: ".$error[7]."\n";
}
if ($error[9])
{
echo "Use of es es_x: ".$error[9]."\n";
}
$totalerrors = ($error[0] + $error[1] + $error[2] + $error[3] + $error[4] + $error[5] + $error[6] + $error[7] + $error[9]);
if ($totalerrors)
{
echo "\n";
echo "Total errors: ".$totalerrors."";
}
else
{
echo "Total errors: 0";
}
echo " | \n";
$temp = 0;
echo "";
}
echo " | |