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);
}