root/scripts/dev/extern_c.php

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. scan_dir
  2. scan_file

<?php

function scan_dir($dir) {
        if (!is_dir($dir)) return;

        foreach (glob("$dir/*") as $file) {
                if (is_dir($file)) {
                        if (basename($file) != "CVS") {
                                scan_dir($file);
                        }
                } else if (fnmatch("*.h", $file)) {
                        scan_file($file); 
                }
        }
}
        
function scan_file($file) {
        $flag = false;
        
        foreach (file($file) as $nr => $line) {
                if (ereg("^[[:space:]]*BEGIN_EXTERN_C", $line)) {
#                   echo "$file:".($nr+1)." $line";
                        $flag = true;
                } else if (ereg("^[[:space:]]*END_EXTERN_C", $line)) {
#                   echo "$file:".($nr+1)." $line";
                        $flag = false;
                } else if (  (ereg("^[[:space:]]*PHPAPI[[:space:]]*", $line)) 
                                         ||(ereg("^[[:space:]]*ZEND_API[[:space:]]*", $line))) {
                  if (strstr($line,"(")) { 
                          if (!$flag) echo "$file:".($nr+1)." $line";
                  }
                }
        }
}

array_shift($_SERVER["argv"]);

if (count($_SERVER["argv"])) {
        foreach ($_SERVER["argv"] as $dir) {
                scan_dir($dir);
        }
} else {
        scan_dir(".");
}

/* [<][>][^][v][top][bottom][index][help] */