Line | |
---|
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 | }
|
---|
Note:
See
TracBrowser
for help on using the repository browser.