forked from len0rd/rockbox
This keeps all the old descriptions etc that were there before. Had to fix up the tools some more, honestly feels better to just rewrite this crap in perl. Change-Id: Ic15deae200c143ba5457423e12c81f871c0fef09
164 lines
4 KiB
PHP
Executable file
164 lines
4 KiB
PHP
Executable file
#!/usr/bin/php
|
|
<?php
|
|
require_once("functions.php");
|
|
|
|
$input = file_get_contents($argv[1]);
|
|
|
|
$input = parse_documentation($input);
|
|
|
|
/* Format input */
|
|
foreach($input as $rootname => $rootel)
|
|
{
|
|
foreach($rootel as $name => $el)
|
|
$input[$name] = $el;
|
|
unset($input[$rootname]);
|
|
}
|
|
|
|
$new = get_newest();
|
|
|
|
/* Format new */
|
|
foreach($new as $name => $el)
|
|
{
|
|
unset($new[$name]);
|
|
$name = clean_func($el["func"]);
|
|
|
|
$new[$name] = array(
|
|
"group" => array($el["group"]),
|
|
"description" => array("")
|
|
);
|
|
|
|
if(strlen($el["cond"]) > 2) {
|
|
$new[$name]["conditions"][0] = $el["cond"];
|
|
} else {
|
|
$new[$name]["conditions"][0] = "";
|
|
}
|
|
|
|
$args = get_args($el["func"]);
|
|
if(count($args) > 0)
|
|
{
|
|
foreach($args as $n => $arg)
|
|
{
|
|
$tmp = split_var($arg);
|
|
$args[$n] = $tmp[1];
|
|
}
|
|
$new[$name]["param"] = $args;
|
|
}
|
|
|
|
if(get_return($el["func"]) !== false)
|
|
$new[$name]["return"][0] = "";
|
|
}
|
|
|
|
/* Compare and merge both */
|
|
$merged = array();
|
|
foreach($new as $name => $el)
|
|
{
|
|
if(isset($input[$name]))
|
|
{
|
|
$merged[$name] = $input[$name];
|
|
$merged[$name]["conditions"] = $new[$name]["conditions"];
|
|
|
|
if(strlen($el["group"][0]) > 0)
|
|
$merged[$name]["group"] = $el["group"];
|
|
|
|
if(isset($el["param"]))
|
|
{
|
|
foreach($el["param"] as $nr => $parel)
|
|
{
|
|
if($parel != $input[$name]["param"][$nr])
|
|
{
|
|
$param = trim($parel);
|
|
$p1 = substr($param, 0, strpos($param, " "));
|
|
|
|
$param = trim($input[$name]["param"][$nr]);
|
|
$p2 = substr($param, strpos($param, " "));
|
|
$merged[$name]["params"][] = $p1." ".$p2." [AUTO-ADDED]";
|
|
}
|
|
else
|
|
$merged[$name]["params"][] = $parel;
|
|
}
|
|
}
|
|
|
|
if(!isset($el["return"]) && isset($merged[$name]["return"]))
|
|
unset($merged[$name]["return"]);
|
|
|
|
unset($input[$name]);
|
|
}
|
|
else
|
|
$merged[$name] = $el;
|
|
}
|
|
|
|
/* Now to the rest of input */
|
|
foreach($input as $name => $el)
|
|
$merged[$name." [DEPRECATED]"] = $el;
|
|
|
|
uksort($merged, "func_sort");
|
|
|
|
echo '# Auto generated documentation by Rockbox plugin API generator v2'."\n";
|
|
echo '# Made by Maurus Cuelenaere'."\n";
|
|
echo <<<MOO
|
|
# __________ __ ___.
|
|
# Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
|
# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
|
# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
|
# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
|
# \/ \/ \/ \/ \/
|
|
# \$Id$
|
|
#
|
|
# Generated from $svn\x61apps/plugin.h
|
|
#
|
|
# Format:
|
|
# \\group memory and strings
|
|
# \\conditions defined(HAVE_BACKLIGHT)
|
|
# \\param fmt
|
|
# \\return
|
|
# \\description
|
|
# \\see func1 func2 [S[apps/plugin.c]]
|
|
#
|
|
# Markup:
|
|
# [W[wiki url]]
|
|
# [S[svn url]]
|
|
# [F[function]]
|
|
# [[url]]
|
|
# %BR%
|
|
# =code=
|
|
|
|
MOO;
|
|
|
|
foreach($merged as $func => $line)
|
|
{
|
|
echo "\n".clean_func($func)."\n";
|
|
|
|
if(strlen($line["group"][0]) > 0)
|
|
echo " \\group ".trim($line["group"][0])."\n";
|
|
|
|
if(strlen($line["conditions"][0]) > 2)
|
|
echo " \\conditions ".trim(_simplify($line["conditions"][0]))."\n";
|
|
|
|
if(isset($line["param"]))
|
|
{
|
|
foreach($line["param"] as $param)
|
|
{
|
|
if($param != "...")
|
|
echo " \\param ".trim($param)."\n";
|
|
}
|
|
}
|
|
|
|
if(isset($line["return"]))
|
|
{
|
|
if(trim($line["return"][0]) == "")
|
|
echo " \\return\n";
|
|
else
|
|
echo " \\return ".trim($line["return"][0])."\n";
|
|
}
|
|
|
|
if(trim($line["description"][0]) == "")
|
|
echo " \\description\n";
|
|
else
|
|
echo " \\description ".trim($line["description"][0])."\n";
|
|
|
|
if(isset($line["see"]))
|
|
echo " \\see ".trim($line["see"][0])."\n";
|
|
}
|
|
|
|
echo "\n# END\n";
|
|
?>
|