php-src/scripts/dev/extern_c.php
Hartmut Holzgraefe 767450164e A script that searches for PHPAPI and ZEND_API prototypes
not enclosed by BEGIN_EXTERN_C/END_EXTERN_C
2004-02-20 08:01:58 +00:00

45 lines
936 B
PHP

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