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


Reply via email to