goba Mon Jan 7 05:45:36 2002 EDT Added files: /phpdoc/scripts/apply README add_rev.php fix_modelines.php tfn.php voidify.php Log: These "apply scripts" are used by process.php, not standalone ones, so put these into their own directory, also providing a simple readme for them
Index: phpdoc/scripts/apply/add_rev.php +++ phpdoc/scripts/apply/add_rev.php <?php function apply($input) { return "<?xml version='1.0' encoding="iso-8859-1"?>\n<!-- \$Revision: 1.1 $ -->\n$input"; } Index: phpdoc/scripts/apply/fix_modelines.php +++ phpdoc/scripts/apply/fix_modelines.php <?php // Fix the modelines of xml files. If no modelines were given, it is assumed // that the xml is two levels deeper than the root of the phpdoc dir, otherwise // it's copied from the emacs property sgml-default-dtd-file function apply($input) { $lines = explode("\n",$input); $numlines = count($lines); $modeline_started = FALSE; $manual_ced_line = NULL; $output = ""; foreach ($lines as $nr=>$line) { if (eregi("Keep this comment at the end of the file", $line)) { // we're on top of the comment if ($nr + 20 < $numlines) { // there's too much of lines left, bail out ?> ERROR in this file, modelines seems to be not at end of file! <?php exit; } // break out of for-loop $modeline_started = TRUE; } if ($modeline_started) { if (ereg("sgml-default-dtd-file(.*)manual\.ced", $line, $regs)) { $manual_ced_line = "sgml-default-dtd-file$regs[1]manual.ced\""; } } if (!$modeline_started) { $output .= "$line\n"; } } if (!$modeline_started) { echo "WARNING: did NOT found start of modelines!\n"; } if (!$manual_ced_line) { echo "WARNING: did NOT found a ced-line!\n"; $manual_ced_line = 'sgml-default-dtd-file:"../../manual.ced"'; } $output .= <<<HEREDOC <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil HEREDOC; $output .= "$manual_ced_line\n"; $output .= <<<HEREDOC sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> HEREDOC; return $output; } Index: phpdoc/scripts/apply/tfn.php +++ phpdoc/scripts/apply/tfn.php <?php // vim: ts=4 sw=4 // For use in process.php // true,false,null -> entities function apply($input) { $from = '/([^a-zA-Z$._-])(true|false|null)([^a-zA-Z$_-])/i'; $to = "\\1&\\2;\\3"; $lines = explode("\n",$input); $active = TRUE; foreach ($lines as $nr => $line) { $active = $active && !ereg('<programlisting',$line); $active = $active || ereg('</programlisting',$line); if ($active) $lines[$nr] = substr(preg_replace( $from , $to , $line.' ' ),0,-1); } $output = implode("\n",$lines); // lowercase the entities: $output = eregi_replace('&true;','&true;',$output); $output = eregi_replace('&false;','&false;',$output); $output = eregi_replace('&null;','&null;',$output); $from = '/(<constant>)?(<literal>)?&(true|false|null);(<\/constant>)?(<\/literal>)?/'; $to = "&\\3;"; $output = preg_replace($from,$to,$output); $output = ereg_replace('<type>&null;</type>','<type>null</type>',$output); return $output; } Index: phpdoc/scripts/apply/voidify.php +++ phpdoc/scripts/apply/voidify.php <?php function apply($input) { $lines = explode("\n",$input); foreach ($lines as $nr => $line) { if (ereg("^([ \t]*)<paramdef>void</paramdef>",$line,$regs) || ereg("^([ \t]*)<void></void>",$line,$regs)) { $lines[$nr] = "$regs[1]<void/>"; echo "-$line\n+$lines[$nr]\n"; } } return implode("\n",$lines); }