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