| OLD | NEW |
| 1 #!/usr/local/bin/perl | 1 #!/usr/local/bin/perl |
| 2 # | 2 # |
| 3 # This is just a quick script to scan for cases where the 'error' | 3 # This is just a quick script to scan for cases where the 'error' |
| 4 # function name in a XXXerr() macro is wrong. | 4 # function name in a XXXerr() macro is wrong. |
| 5 # | 5 # |
| 6 # Run in the top level by going | 6 # Run in the top level by going |
| 7 # perl util/ck_errf.pl */*.c */*/*.c | 7 # perl util/ck_errf.pl */*.c */*/*.c |
| 8 # | 8 # |
| 9 | 9 |
| 10 my $err_strict = 0; |
| 11 my $bad = 0; |
| 12 |
| 10 foreach $file (@ARGV) | 13 foreach $file (@ARGV) |
| 11 { | 14 { |
| 15 if ($file eq "-strict") |
| 16 { |
| 17 $err_strict = 1; |
| 18 next; |
| 19 } |
| 12 open(IN,"<$file") || die "unable to open $file\n"; | 20 open(IN,"<$file") || die "unable to open $file\n"; |
| 13 $func=""; | 21 $func=""; |
| 14 while (<IN>) | 22 while (<IN>) |
| 15 { | 23 { |
| 16 if (!/;$/ && /^([a-zA-Z].*[\s*])?([A-Za-z_0-9]+)\(.*[),]/) | 24 if (!/;$/ && /^([a-zA-Z].*[\s*])?([A-Za-z_0-9]+)\(.*[),]/) |
| 17 { | 25 { |
| 18 /^([^()]*(\([^()]*\)[^()]*)*)\(/; | 26 /^([^()]*(\([^()]*\)[^()]*)*)\(/; |
| 19 $1 =~ /([A-Za-z_0-9]*)$/; | 27 $1 =~ /([A-Za-z_0-9]*)$/; |
| 20 $func = $1; | 28 $func = $1; |
| 21 $func =~ tr/A-Z/a-z/; | 29 $func =~ tr/A-Z/a-z/; |
| 22 } | 30 } |
| 23 » » if (/([A-Z0-9]+)err\(([^,]+)/) | 31 » » if (/([A-Z0-9]+)err\(([^,]+)/ && ! /ckerr_ignore/) |
| 24 { | 32 { |
| 25 $errlib=$1; | 33 $errlib=$1; |
| 26 $n=$2; | 34 $n=$2; |
| 27 | 35 |
| 28 if ($func eq "") | 36 if ($func eq "") |
| 29 » » » » { print "$file:$.:???:$n\n"; next; } | 37 » » » » { print "$file:$.:???:$n\n"; $bad = 1; next; } |
| 30 | 38 |
| 31 if ($n !~ /([^_]+)_F_(.+)$/) | 39 if ($n !~ /([^_]+)_F_(.+)$/) |
| 32 { | 40 { |
| 33 # print "check -$file:$.:$func:$n\n"; | 41 # print "check -$file:$.:$func:$n\n"; |
| 34 next; | 42 next; |
| 35 } | 43 } |
| 36 $lib=$1; | 44 $lib=$1; |
| 37 $n=$2; | 45 $n=$2; |
| 38 | 46 |
| 39 if ($lib ne $errlib) | 47 if ($lib ne $errlib) |
| 40 » » » » { print "$file:$.:$func:$n [${errlib}err]\n"; ne
xt; } | 48 » » » » { print "$file:$.:$func:$n [${errlib}err]\n"; $b
ad = 1; next; } |
| 41 | 49 |
| 42 $n =~ tr/A-Z/a-z/; | 50 $n =~ tr/A-Z/a-z/; |
| 43 if (($n ne $func) && ($errlib ne "SYS")) | 51 if (($n ne $func) && ($errlib ne "SYS")) |
| 44 » » » » { print "$file:$.:$func:$n\n"; next; } | 52 » » » » { print "$file:$.:$func:$n\n"; $bad = 1; next; } |
| 45 # print "$func:$1\n"; | 53 # print "$func:$1\n"; |
| 46 } | 54 } |
| 47 } | 55 } |
| 48 close(IN); | 56 close(IN); |
| 49 } | 57 } |
| 50 | 58 |
| 59 if ($bad && $err_strict) |
| 60 { |
| 61 print STDERR "FATAL: error discrepancy\n"; |
| 62 exit 1; |
| 63 } |
| 64 |
| OLD | NEW |