#!/usr/bin/php $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"]; $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 << ) \___| < | \_\ ( <_> > < < # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ # \/ \/ \/ \/ \/ # \$Id$ # # Generated from $svn\x61pps/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) echo " \\group ".trim($line["group"][0])."\n"; if(strlen($line["conditions"]) > 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"]) == "") echo " \\return\n"; else echo " \\return ".trim($line["return"][0])."\n"; } if(trim($line["description"]) == "") 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"; ?>