<?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(".");
}
?>