s4:lsa RPC server / objectclass LDB module - fix the creation of trusted domain objects
[kai/samba.git] / source4 / script / find_unused_macros.pl
1 #!/usr/bin/perl
2 # Script that reads in C files and prints defines that are used nowhere in the 
3 # code
4
5 # Arguments: C and H files
6 # Copyright Jelmer Vernooij <jelmer@samba.org>, GPL
7
8 use strict;
9
10 my %defined;
11 my %used;
12 my %files;
13
14 my $tmp;
15 while($tmp = shift) { 
16         $files{$tmp} = $tmp;
17         open(FI, $tmp);
18         my $ln = 0;
19         while(<FI>) { 
20                 $ln++;
21                 my $line = $_;
22                 my $cur = "";
23                 if(/^#define ([A-Za-z0-9_]+)/) {
24                         $defined{$1} = "$tmp:$ln";
25                         $cur = $1;
26                 }
27
28                 $_ = $line;
29                 while(/([A-Za-z0-9_]+)/sgm) { 
30                         if($cur ne $1) { $used{$1} = "$tmp:$ln"; }
31                 }
32         }
33         close FI;
34 }
35
36 foreach(keys %defined) {
37         if(!$used{$_}) { print "$defined{$_}: Macro `$_' is unused\n"; }
38 }