summaryrefslogtreecommitdiff
path: root/scripts/dev/extern_c.php
blob: 72c7edcd3288cd7220dbb035db0171e5faf75a1d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?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(".");
}
?>